summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt163
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")