fxos/CMakeLists.txt

62 lines
1.4 KiB
CMake
Raw Normal View History

2021-03-16 17:53:37 +01:00
cmake_minimum_required(VERSION 3.16)
project(fxos LANGUAGES C CXX)
find_package(BISON 3.7)
find_package(FLEX 2.6)
add_compile_options(-Wall -Wextra -D_GNU_SOURCE -std=c++17 -O2)
#---
# fxos core
#---
flex_target(LoadAsm lib/load-asm.l "${CMAKE_CURRENT_BINARY_DIR}/load-asm.yy.cpp" COMPILE_FLAGS -s)
flex_target(LoadHeader lib/load-header.l "${CMAKE_CURRENT_BINARY_DIR}/load-header.yy.cpp" COMPILE_FLAGS -s)
flex_target(LoadSymbols lib/load-symbols.l "${CMAKE_CURRENT_BINARY_DIR}/load-symbols.yy.cpp" COMPILE_FLAGS -s)
flex_target(LoadTarget lib/load-target.l "${CMAKE_CURRENT_BINARY_DIR}/load-target.yy.cpp" COMPILE_FLAGS -s)
set(fxos_core_SOURCES
lib/disassembly.cpp
lib/domains/relconst.cpp
lib/lang.cpp
lib/library.cpp
lib/log.cpp
lib/memory.cpp
lib/os.cpp
lib/passes/cfg.cpp
lib/passes/pcrel.cpp
lib/passes/print.cpp
lib/passes/syscall.cpp
lib/semantics.cpp
lib/symbols.cpp
lib/util.cpp
lib/vspace.cpp)
add_library(fxos-core ${fxos_core_SOURCES}
${FLEX_LoadAsm_OUTPUTS} ${FLEX_LoadHeader_OUTPUTS}
${FLEX_LoadSymbols_OUTPUTS} ${FLEX_LoadTarget_OUTPUTS})
target_include_directories(fxos-core PUBLIC include)
#---
# fxos shell
#---
#bison_target()
set(fxos_shell_SOURCES
fxos/disassembly.cpp
fxos/info.cpp
fxos/library.cpp
fxos/main.cpp)
add_executable(fxos ${fxos_shell_SOURCES})
target_link_libraries(fxos fxos-core)
#---
# Install
#---
install(TARGETS fxos DESTINATION "${CMAKE_INSTALL_BINDIR}")