mirror of
https://github.com/ArthurSonzogni/Diagon.git
synced 2026-08-29 16:40:45 +08:00
112 lines
2.9 KiB
CMake
112 lines
2.9 KiB
CMake
# Include source files and the generated files
|
|
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Environment variable available in C++ source
|
|
#-------------------------------------------------------------------------------
|
|
|
|
set(test_directory ${CMAKE_SOURCE_DIR}/test)
|
|
execute_process(
|
|
COMMAND
|
|
git rev-list --count HEAD
|
|
WORKING_DIRECTORY
|
|
${CMAKE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE
|
|
git_version
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
configure_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/environment.h.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/environment.h
|
|
)
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
add_subdirectory(screen)
|
|
add_subdirectory(translator/line_number_ascii)
|
|
add_subdirectory(translator/line_number_unicode)
|
|
add_subdirectory(translator/planar_graph)
|
|
add_subdirectory(translator/sequence)
|
|
|
|
if (Web)
|
|
|
|
# Emscripten options
|
|
string(APPEND CMAKE_CXX_FLAGS " -Os")
|
|
string(APPEND CMAKE_CXX_FLAGS " -s WASM=1")
|
|
|
|
string(APPEND CMAKE_CXX_FLAGS " -s DEMANGLE_SUPPORT=1")
|
|
string(APPEND CMAKE_CXX_FLAGS " --js-opts 3")
|
|
string(APPEND CMAKE_CXX_FLAGS " --llvm-lto 3")
|
|
string(APPEND CMAKE_CXX_FLAGS " --llvm-opts 3")
|
|
string(APPEND CMAKE_CXX_FLAGS " -s ASSERTIONS=2")
|
|
string(APPEND CMAKE_CXX_FLAGS " --closure 1")
|
|
string(APPEND CMAKE_CXX_FLAGS " --no-heap-copy")
|
|
string(APPEND CMAKE_CXX_FLAGS " -s EXPORTED_FUNCTIONS='[\"_translate\"]'")
|
|
string(APPEND CMAKE_CXX_FLAGS " -s EXTRA_EXPORTED_RUNTIME_METHODS='[\"ccall\",\" cwrap\"]'")
|
|
|
|
configure_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/index.html
|
|
${CMAKE_CURRENT_BINARY_DIR}/index.html
|
|
)
|
|
|
|
configure_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/style.css
|
|
${CMAKE_CURRENT_BINARY_DIR}/style.css
|
|
COPYONLY)
|
|
|
|
configure_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/tools.json
|
|
${CMAKE_CURRENT_BINARY_DIR}/tools.json
|
|
COPYONLY)
|
|
|
|
configure_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../tools/webserver/run_web_server.sh
|
|
${CMAKE_CURRENT_BINARY_DIR}/run_web_server.sh
|
|
COPYONLY)
|
|
|
|
add_executable(main.js
|
|
main_webassembly.cpp
|
|
translator/Translator.cpp
|
|
)
|
|
target_link_libraries(main.js
|
|
translator_line_number_ascii
|
|
translator_line_number_unicode
|
|
translator_planar_graph
|
|
translator_sequence
|
|
screen
|
|
antlr4_static
|
|
)
|
|
|
|
else()
|
|
|
|
add_executable(main
|
|
main.cpp
|
|
translator/Translator.cpp
|
|
)
|
|
target_link_libraries(main
|
|
translator_line_number_ascii
|
|
translator_line_number_unicode
|
|
translator_planar_graph
|
|
translator_sequence
|
|
screen
|
|
antlr4_static
|
|
)
|
|
|
|
add_executable(input_output_test
|
|
translator/Translator.cpp
|
|
input_output_test.cpp
|
|
)
|
|
target_link_libraries(input_output_test
|
|
translator_line_number_ascii
|
|
translator_line_number_unicode
|
|
translator_planar_graph
|
|
translator_sequence
|
|
antlr4_static
|
|
screen
|
|
stdc++fs
|
|
)
|
|
|
|
endif()
|