fxos/CMakeLists.txt

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

72 lines
1.4 KiB
CMake
Raw Permalink Normal View History

2021-03-16 17:53:37 +01:00
cmake_minimum_required(VERSION 3.16)
project(fxos LANGUAGES C CXX)
find_package(FLEX 2.6)
2022-03-27 13:57:36 +02:00
add_compile_options(
-Wall -Wextra -D_GNU_SOURCE -std=c++17 -O2
2022-03-27 13:57:36 +02:00
-fmacro-prefix-map=${CMAKE_CURRENT_SOURCE_DIR}/=)
2021-03-16 17:53:37 +01:00
#---
# fxos core
#---
2022-03-27 13:12:53 +02:00
flex_target(LoadAsm lib/load-asm.l
"${CMAKE_CURRENT_BINARY_DIR}/load-asm.yy.cpp" COMPILE_FLAGS -s)
2021-03-16 17:53:37 +01:00
set(fxos_core_SOURCES
lib/AbstractMemory.cpp
2021-03-16 17:53:37 +01:00
lib/disassembly.cpp
lib/lang.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
2022-03-27 13:12:53 +02:00
lib/vspace.cpp
lib/ai/RelConst.cpp
2022-03-27 13:12:53 +02:00
lib/util/Buffer.cpp
2022-03-27 13:57:36 +02:00
lib/util/log.cpp
2022-03-27 13:12:53 +02:00
lib/util/Timer.cpp)
2021-03-16 17:53:37 +01:00
add_library(fxos-core ${fxos_core_SOURCES} ${FLEX_LoadAsm_OUTPUTS})
2021-03-16 17:53:37 +01:00
target_include_directories(fxos-core PUBLIC include)
#---
# fxos shell
#---
2022-03-27 13:12:53 +02:00
flex_target(Lexer shell/lexer.l
"${CMAKE_CURRENT_BINARY_DIR}/lexer.yy.cpp" COMPILE_FLAGS -s)
2021-03-16 17:53:37 +01:00
set(fxos_shell_SOURCES
shell/main.cpp
shell/parser.cpp
shell/session.cpp
shell/theme.cpp
2022-04-14 13:30:43 +02:00
shell/dot.cpp
shell/a.cpp
shell/d.cpp
shell/e.cpp
shell/g.cpp
shell/h.cpp
shell/i.cpp
2022-04-14 13:30:43 +02:00
shell/m.cpp
shell/s.cpp
shell/v.cpp
${FLEX_Lexer_OUTPUTS}
)
2021-03-16 17:53:37 +01:00
add_executable(fxos ${fxos_shell_SOURCES})
target_include_directories(fxos PRIVATE shell)
target_link_libraries(fxos fxos-core -lreadline -lfmt)
2021-03-16 17:53:37 +01:00
#---
# Install
#---
install(TARGETS fxos DESTINATION "${CMAKE_INSTALL_BINDIR}")