diff options
Diffstat (limited to 'benches/CMakeLists.txt')
| -rw-r--r-- | benches/CMakeLists.txt | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/benches/CMakeLists.txt b/benches/CMakeLists.txt new file mode 100644 index 0000000..d096f4b --- /dev/null +++ b/benches/CMakeLists.txt @@ -0,0 +1,55 @@ +set(BENCHMARK_ENABLE_GTEST_TESTS OFF CACHE BOOL "" FORCE) +set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE) +set(BENCHMARK_USE_BUNDLED_GTEST OFF CACHE BOOL "" FORCE) + +add_subdirectory("${cm_benchesdir}/gbench" EXCLUDE_FROM_ALL) + +set(ABSL_PROPAGATE_CXX_STD ON CACHE BOOL "" FORCE) +set(ABSL_BUILD_TESTING OFF CACHE BOOL "" FORCE) +add_subdirectory("${cm_benchesdir}/abseil" EXCLUDE_FROM_ALL) + +set(cm_bench_targets + cheesemap_bench + tidwall_bench + unordered_map_bench + abseil_bench +) + +foreach(target_name IN LISTS cm_bench_targets) + add_executable(${target_name} "${cm_benchesdir}/${target_name}.cpp") + + target_include_directories(${target_name} + PRIVATE + "${cm_topdir}" + "${cm_benchesdir}" + ) + + target_compile_options(${target_name} + PRIVATE + -Wall -Wextra -Werror + $<$<BOOL:${CM_ENABLE_NATIVE}>:-march=native> + ) + + if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") + target_compile_options(${target_name} PRIVATE -O3) + endif() + + target_link_libraries(${target_name} + PRIVATE + benchmark::benchmark_main + ) + + set_target_properties(${target_name} PROPERTIES + CXX_STANDARD 20 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS ON + ) +endforeach() + +target_link_libraries(cheesemap_bench PRIVATE cheesemap) + +set(cm_tidwalldir "${cm_benchesdir}/tidwall") +target_include_directories(tidwall_bench PRIVATE "${cm_tidwalldir}") +target_sources(tidwall_bench PRIVATE "${cm_tidwalldir}/hashmap.c") + +target_link_libraries(abseil_bench PRIVATE absl::flat_hash_map) |
