Prepare for firstGeq to be safe on foreign threads

This commit is contained in:
2024-05-03 16:17:06 -07:00
parent 99760176a6
commit 971aabea6e
5 changed files with 281 additions and 98 deletions

View File

@@ -60,14 +60,31 @@ set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "")
add_subdirectory(third_party)
add_executable(versioned_map_main VersionedMap.cpp)
add_executable(versioned_map_main VersionedMap.cpp RootSet.cpp)
target_include_directories(versioned_map_main
PRIVATE ${CMAKE_SOURCE_DIR}/include)
target_link_libraries(versioned_map_main PRIVATE nanobench xxhash)
target_compile_definitions(versioned_map_main PRIVATE ENABLE_MAIN)
add_library(versioned_map VersionedMap.cpp)
add_library(versioned_map VersionedMap.cpp RootSet.cpp)
target_link_libraries(versioned_map PRIVATE xxhash)
target_compile_options(versioned_map PRIVATE -fno-exceptions)
target_include_directories(versioned_map PUBLIC ${CMAKE_SOURCE_DIR}/include)
set_target_properties(versioned_map PROPERTIES LINKER_LANGUAGE C)
include(CTest)
if(BUILD_TESTING)
add_executable(rootset_test RootSet.cpp)
target_compile_definitions(rootset_test PRIVATE ENABLE_ROOTSET_TESTS)
target_compile_options(rootset_test PRIVATE -fsanitize=address,undefined
-UNDEBUG)
target_link_options(rootset_test PRIVATE -fsanitize=address,undefined)
add_test(NAME rootset_test COMMAND rootset_test)
add_executable(rootset_test_tsan RootSet.cpp)
target_compile_definitions(rootset_test_tsan PRIVATE ENABLE_ROOTSET_TESTS)
target_compile_options(rootset_test_tsan PRIVATE -fsanitize=thread -UNDEBUG)
target_link_options(rootset_test_tsan PRIVATE -fsanitize=thread)
add_test(NAME rootset_test_tsan COMMAND rootset_test)
endif()