cmake_minimum_required(VERSION 3.1)
+# Customize the build by passing "-D<option_name>=ON|OFF" in the command line.
+option(build_cord "Build cord library" ON)
+option(build_tests "Build tests" OFF)
option(enable_threads "TODO" OFF) #TODO Support it
option(enable_parallel_mark "Parallelize marking and free list construction" ON)
option(enable_thread_local_alloc "Turn on thread-local allocation optimization" ON)
add_library(gcmt-dll SHARED ${SRC})
-add_subdirectory(cord)
+if (build_cord)
+ add_subdirectory(cord)
+endif()
-add_subdirectory(tests)
+if (build_tests)
+ add_subdirectory(tests)
+endif()
# TODO add_library(cord ...)
-add_executable(cordtest cordbscs.c cordprnt.c cordxtra.c
- tests/cordtest.c)
-set_target_properties(cordtest PROPERTIES COMPILE_DEFINITIONS GC_NOT_DLL)
-target_link_libraries(cordtest gc-lib)
-add_test(NAME cordtest COMMAND cordtest)
+if (build_tests)
+ add_executable(cordtest cordbscs.c cordprnt.c cordxtra.c
+ tests/cordtest.c)
+ set_target_properties(cordtest PROPERTIES COMPILE_DEFINITIONS GC_NOT_DLL)
+ target_link_libraries(cordtest gc-lib)
+ add_test(NAME cordtest COMMAND cordtest)
-if (WIN32)
- add_executable(de cordbscs.c cordxtra.c
- tests/de.c tests/de_win.c)
- set_target_properties(de PROPERTIES WIN32_EXECUTABLE TRUE)
- set_target_properties(de PROPERTIES COMPILE_DEFINITIONS GC_NOT_DLL)
- target_link_libraries(de gc-lib)
- target_link_libraries(de gdi32)
+ if (WIN32)
+ add_executable(de cordbscs.c cordxtra.c
+ tests/de.c tests/de_win.c)
+ set_target_properties(de PROPERTIES WIN32_EXECUTABLE TRUE)
+ set_target_properties(de PROPERTIES COMPILE_DEFINITIONS GC_NOT_DLL)
+ target_link_libraries(de gc-lib)
+ target_link_libraries(de gdi32)
+ endif(WIN32)
endif()