cmake_minimum_required(VERSION 3.16) project(BinaryTable) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # Add the binary table library add_library(binary_table binary_table.h binary_table.cpp ) # Main executable add_executable(main main.cpp) target_link_libraries(main binary_table) # Test executable add_executable(test test.cpp) target_link_libraries(test binary_table) # Debug executables add_executable(debug_multi_key debug/debug_multi_key.cpp) target_link_libraries(debug_multi_key binary_table) add_executable(debug_alloc debug/debug_alloc.cpp) target_link_libraries(debug_alloc binary_table) add_executable(debug_address_table debug/debug_address_table.cpp) target_link_libraries(debug_address_table binary_table) add_executable(debug_step_by_step debug/debug_step_by_step.cpp) target_link_libraries(debug_step_by_step binary_table) add_executable(debug_simple debug/debug_simple.cpp) target_link_libraries(debug_simple binary_table) # Enable compiler warnings if(MSVC) target_compile_options(binary_table PRIVATE /W4) target_compile_options(main PRIVATE /W4) else() target_compile_options(binary_table PRIVATE -Wall -Wextra -pedantic) target_compile_options(main PRIVATE -Wall -Wextra -pedantic) endif() add_executable(debug_detailed debug_detailed.cpp) target_link_libraries(debug_detailed binary_table) add_executable(debug_simple_fixed debug_simple_fixed.cpp) target_link_libraries(debug_simple_fixed binary_table)