summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDouglas Rumbaugh <dbr4@psu.edu>2023-05-09 14:38:32 -0400
committerDouglas Rumbaugh <dbr4@psu.edu>2023-05-09 14:38:32 -0400
commit9b55600a3bb50d95d6c47e0339f861448ca18c30 (patch)
treebadf648db441e0fbdad0cac5a135a4befe4a4eec
parentd6184f363bfc90bf626a86b66f62074f37c139f4 (diff)
downloaddynamic-extension-9b55600a3bb50d95d6c47e0339f861448ca18c30.tar.gz
CMakeLists file
-rw-r--r--CMakeLists.txt54
1 files changed, 54 insertions, 0 deletions
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()