cmake_minimum_required(VERSION 3.20) project(lock_free_allocator LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # Main test / benchmark binary. add_executable(test_allocator test_allocator.cpp) target_link_libraries(test_allocator PRIVATE pthread) # ThreadSanitizer build (opt-in via -DENABLE_TSAN=ON). option(ENABLE_TSAN "Build with ThreadSanitizer" OFF) if(ENABLE_TSAN) target_compile_options(test_allocator PRIVATE -fsanitize=thread -g -O1) target_link_options(test_allocator PRIVATE -fsanitize=thread) endif() # AddressSanitizer build (opt-in via -DENABLE_ASAN=ON). option(ENABLE_ASAN "Build with AddressSanitizer" OFF) if(ENABLE_ASAN) target_compile_options(test_allocator PRIVATE -fsanitize=address -g -O1) target_link_options(test_allocator PRIVATE -fsanitize=address) endif()