From 9b55600a3bb50d95d6c47e0339f861448ca18c30 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 9 May 2023 14:38:32 -0400 Subject: CMakeLists file --- CMakeLists.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 CMakeLists.txt (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..72ee9a4 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,54 @@ +cmake_minimum_required(VERSION 3.13) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED True) + +set(namespace "de") +project("Practical Dynamic Extension" VERSION 0.1.0) + +set(debug true) +set(tests True) +set(bench True) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin") + +if (debug) + add_compile_options(-g -O0) + add_compile_options(-fsanitize=address) + add_link_options(-fsanitize=address) + add_compile_options(-fsanitize=undefined) + add_link_options(-fsanitize=undefined) +else() + add_compile_options(-O3) +endif() + + +# Test build instructions +if (tests) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/tests") + file(MAKE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests/data") + add_compile_options(-Iinclude) + + add_executable(pagedfile_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/pagedfile_tests.cpp) + target_link_libraries(pagedfile_tests PUBLIC gsl check subunit pthread) + target_include_directories(pagedfile_tests PRIVATE include) + + add_executable(wirs_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/wirs_tests.cpp) + target_link_libraries(wirs_tests PUBLIC gsl check subunit pthread) + target_include_directories(wirs_tests PRIVATE include) + + add_executable(internal_level_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/internal_level_tests.cpp) + target_link_libraries(internal_level_tests PUBLIC gsl check subunit pthread) + target_include_directories(internal_level_tests PRIVATE include) + + add_executable(mutable_buffer_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/mutable_buffer_tests.cpp) + target_link_libraries(mutable_buffer_tests PUBLIC gsl check subunit pthread) + target_include_directories(mutable_buffer_tests PRIVATE include) + +endif() + +# Benchmark build instructions +if (bench) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/benchmarks") + +endif() -- cgit v1.2.3