diff --git a/unbench/CMakeLists.txt b/unbench/CMakeLists.txt index acf0647..f257e35 100644 --- a/unbench/CMakeLists.txt +++ b/unbench/CMakeLists.txt @@ -7,8 +7,8 @@ project(flat.hpp.unbench) # boost # -find_package(Boost REQUIRED - COMPONENTS container) +find_package(Boost + OPTIONAL_COMPONENTS container) # # google benchmark @@ -33,8 +33,16 @@ endif() file(GLOB UNBENCH_SOURCES "*.cpp" "*.hpp") add_executable(${PROJECT_NAME} ${UNBENCH_SOURCES}) + target_link_libraries(${PROJECT_NAME} - Boost::container benchmark_main flat.hpp) + +if(Boost_CONTAINER_FOUND) + target_link_libraries(${PROJECT_NAME} + Boost::container) + target_compile_definitions(${PROJECT_NAME} + PRIVATE BOOST_CONTAINER_FOUND) +endif() + add_test(${PROJECT_NAME} ${PROJECT_NAME}) diff --git a/unbench/map_insert_bench.cpp b/unbench/map_insert_bench.cpp index 87ba572..3343f41 100644 --- a/unbench/map_insert_bench.cpp +++ b/unbench/map_insert_bench.cpp @@ -10,7 +10,9 @@ using namespace flat_hpp_unbench; #include using namespace flat_hpp; -#include +#ifdef BOOST_CONTAINER_FOUND +# include +#endif namespace { @@ -26,6 +28,7 @@ namespace } } +#ifdef BOOST_CONTAINER_FOUND template < typename Value > void boost_flat_map_insert(benchmark::State& state) { std::vector v; @@ -37,6 +40,7 @@ namespace } } } +#endif template < typename Value > void std_map_insert(benchmark::State& state) { @@ -67,9 +71,11 @@ BENCHMARK_TEMPLATE(flat_map_insert, vec4) ->ComputeStatistics("min", min_bench_statistics) ->DenseRange(1,401,50); -BENCHMARK_TEMPLATE(boost_flat_map_insert, vec4) - ->ComputeStatistics("min", min_bench_statistics) - ->DenseRange(1,401,50); +#ifdef BOOST_CONTAINER_FOUND + BENCHMARK_TEMPLATE(boost_flat_map_insert, vec4) + ->ComputeStatistics("min", min_bench_statistics) + ->DenseRange(1,401,50); +#endif BENCHMARK_TEMPLATE(std_map_insert, vec4) ->ComputeStatistics("min", min_bench_statistics) diff --git a/unbench/set_insert_bench.cpp b/unbench/set_insert_bench.cpp index f9296e4..7d888e4 100644 --- a/unbench/set_insert_bench.cpp +++ b/unbench/set_insert_bench.cpp @@ -10,7 +10,9 @@ using namespace flat_hpp_unbench; #include using namespace flat_hpp; -#include +#ifdef BOOST_CONTAINER_FOUND +# include +#endif namespace { @@ -26,6 +28,7 @@ namespace } } +#ifdef BOOST_CONTAINER_FOUND template < typename Key > void boost_flat_set_insert(benchmark::State& state) { std::vector v; @@ -37,6 +40,7 @@ namespace } } } +#endif template < typename Key > void std_set_insert(benchmark::State& state) { @@ -67,9 +71,11 @@ BENCHMARK_TEMPLATE(flat_set_insert, vec4) ->ComputeStatistics("min", min_bench_statistics) ->DenseRange(1,401,50); -BENCHMARK_TEMPLATE(boost_flat_set_insert, vec4) - ->ComputeStatistics("min", min_bench_statistics) - ->DenseRange(1,401,50); +#ifdef BOOST_CONTAINER_FOUND + BENCHMARK_TEMPLATE(boost_flat_set_insert, vec4) + ->ComputeStatistics("min", min_bench_statistics) + ->DenseRange(1,401,50); +#endif BENCHMARK_TEMPLATE(std_set_insert, vec4) ->ComputeStatistics("min", min_bench_statistics)