62 lines
1.4 KiB
CMake
62 lines
1.4 KiB
CMake
|
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}")
|