diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index e2ceee1..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,163 +0,0 @@ -cmake_minimum_required(VERSION 3.25) - -project(aplwc - VERSION 0.0.1 - LANGUAGES C -) - -set(CMAKE_C_STANDARD 90) -set(CMAKE_C_STANDARD_REQUIRED ON) -set(CMAKE_C_EXTENSIONS OFF) - -set(GENERATED_HEADERS_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated_headers") -file(MAKE_DIRECTORY "${GENERATED_HEADERS_DIR}") - -add_library(common INTERFACE) -target_include_directories(common INTERFACE - "src/include" -) -target_compile_options(common INTERFACE - $<$<CONFIG:Debug>: - -O0 - -Wall - -Wextra - -Wpedantic - -Werror - -fsanitize=address,undefined - -DAPLWC_BUILD_TYPE_DEBUG - > - - $<$<CONFIG:Coverage>: - -O0 - -g - --coverage - -fcondition-coverage - -DAPLWC_BUILD_TYPE_COVERAGE - -DNDEBUG - > - - $<$<CONFIG:Release>: - -DAPLWC_BUILD_TYPE_RELEASE - > -) -target_link_options(common INTERFACE - $<$<CONFIG:Debug>: - -fsanitize=address,undefined - > - - $<$<CONFIG:Coverage>: - --coverage - -fcondition-coverage - > -) - -add_library(aplwc - ${GENERATED_HEADERS_DIR}/boot.h - ${GENERATED_HEADERS_DIR}/unicode_tables.h - src/lib/eval.c - src/lib/main.c - src/lib/memory.c - src/lib/module.c - src/lib/string.c - src/lib/symtab.c - src/lib/syntax.c - src/lib/unicode.c -) -target_link_libraries(aplwc PRIVATE common) -target_include_directories(aplwc PRIVATE "${GENERATED_HEADERS_DIR}") - -add_custom_command( - OUTPUT "${GENERATED_HEADERS_DIR}/boot.h" - COMMAND xxd -i -n boot_src "${CMAKE_CURRENT_SOURCE_DIR}/src/lib/boot.aplwc" "${GENERATED_HEADERS_DIR}/boot.h" - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/lib/boot.aplwc" - COMMENT "Generate boot.h from boot.aplwc" -) - -file(GLOB UNICODE_FILES CONFIGURE_DEPENDS "src/unicode/*.txt") - -add_custom_command( - OUTPUT "${GENERATED_HEADERS_DIR}/unicode_tables.h" - DEPENDS ${UNICODE_FILES} - COMMENT "Generate unicode_tables.h from the unicode files" -) - -add_executable(aplwc-repl - src/bin/main.c - src/bin/util.c -) -target_link_libraries(aplwc-repl PRIVATE common aplwc) - -enable_testing() -file(GLOB TEST_SOURCES CONFIGURE_DEPENDS "tests/*.c") -foreach(source ${TEST_SOURCES}) - get_filename_component(name "${source}" NAME_WE) - set(test_bin "testbin-${name}") - add_executable("${test_bin}" "${source}") - target_link_libraries("${test_bin}" PRIVATE common aplwc) - - if("${name}" STREQUAL "aplwc_read" OR "${name}" STREQUAL "aplwc_eval") - file(GLOB GOOD_INPUTS CONFIGURE_DEPENDS "tests/${name}/good/*.txt") - file(GLOB BAD_INPUTS CONFIGURE_DEPENDS "tests/${name}/bad/*.txt") - foreach(input ${GOOD_INPUTS}) - add_test(NAME "${name} ${input}" COMMAND "${test_bin}" "${input}") - endforeach() - foreach(input ${BAD_INPUTS}) - add_test(NAME "${name} ${input}" COMMAND "${test_bin}" "${input}") - set_tests_properties("${name} ${input}" PROPERTIES - WILL_FAIL TRUE - ) - endforeach() - else() - add_test(NAME "${name}" COMMAND "${test_bin}") - endif() -endforeach() - -file(GLOB TEST_SCRIPTS_GOOD CONFIGURE_DEPENDS "tests/scripts/good/*.aplwc") -foreach(script ${TEST_SCRIPTS_GOOD}) - add_test(NAME "${script}" COMMAND "${script}") - set_tests_properties("${script}" PROPERTIES - ENVIRONMENT "PATH=$<TARGET_FILE_DIR:aplwc-repl>" - ) - - add_test(NAME "aplwc-repl ${script}" COMMAND "aplwc-repl" "${script}") - set_tests_properties("aplwc-repl ${script}" PROPERTIES - ENVIRONMENT "PATH=$<TARGET_FILE_DIR:aplwc-repl>" - ) - - add_test(NAME "simfail ${script}" COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tests/scripts/simfail.sh" "${script}") - set_tests_properties("simfail ${script}" PROPERTIES - ENVIRONMENT "PATH=$<TARGET_FILE_DIR:aplwc-repl>" - ) -endforeach() - -file(GLOB TEST_SCRIPTS_BAD CONFIGURE_DEPENDS "tests/scripts/bad/*.aplwc") -foreach(script ${TEST_SCRIPTS_BAD}) - add_test(NAME "aplwc-repl ${script}" COMMAND "aplwc-repl" "${script}") - set_tests_properties("aplwc-repl ${script}" PROPERTIES - ENVIRONMENT "PATH=$<TARGET_FILE_DIR:aplwc-repl>" - WILL_FAIL TRUE - ) -endforeach() - -file(GLOB TEST_SCRIPTS_GOOD CONFIGURE_DEPENDS "tests/scripts/good/*.sh") -foreach(script ${TEST_SCRIPTS_GOOD}) - add_test(NAME "${script}" COMMAND "${script}") - set_tests_properties("${script}" PROPERTIES - ENVIRONMENT "PATH=$<TARGET_FILE_DIR:aplwc-repl>" - ) - add_test(NAME "simfail ${script}" COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tests/scripts/simfail.sh" "${script}") - set_tests_properties("simfail ${script}" PROPERTIES - ENVIRONMENT "PATH=$<TARGET_FILE_DIR:aplwc-repl>" - ) -endforeach() - -file(GLOB TEST_SCRIPTS_BAD CONFIGURE_DEPENDS "tests/scripts/bad/*.sh") -foreach(script ${TEST_SCRIPTS_BAD}) - add_test(NAME "${script}" COMMAND "${script}") - set_tests_properties("${script}" PROPERTIES - ENVIRONMENT "PATH=$<TARGET_FILE_DIR:aplwc-repl>" - WILL_FAIL TRUE - ) -endforeach() - -add_test(NAME "aplwc-repl" COMMAND "aplwc-repl" "-x") |