|
1 | 1 | set(CMAKE_CXX_STANDARD 23) |
2 | 2 |
|
3 | | -set(ORIGINAL_CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}") |
4 | | -set(CMAKE_BUILD_TYPE Release) |
5 | | -set(BENCHMARK_ENABLE_INSTALL OFF) |
6 | | -set(BENCHMARK_ENABLE_TESTING OFF) |
7 | | -set(BENCHMARK_ENABLE_LTO ON) |
8 | | -add_subdirectory(deps/benchmark) |
9 | | -set(CMAKE_BUILD_TYPE "${ORIGINAL_CMAKE_BUILD_TYPE}") |
| 3 | +include(ExternalProject) |
| 4 | + |
| 5 | +set(BENCHMARK_BUILD_DIR "${CMAKE_BINARY_DIR}/benches/deps/benchmark") |
| 6 | + |
| 7 | +ExternalProject_Add(benchmark |
| 8 | + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/deps/benchmark" |
| 9 | + BINARY_DIR "${BENCHMARK_BUILD_DIR}" |
| 10 | + CMAKE_ARGS |
| 11 | + -DCMAKE_BUILD_TYPE=Release |
| 12 | + "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}" |
| 13 | + -DBENCHMARK_ENABLE_INSTALL=OFF |
| 14 | + -DBENCHMARK_ENABLE_TESTING=OFF |
| 15 | + -DBENCHMARK_ENABLE_LTO=ON |
| 16 | + INSTALL_COMMAND "" |
| 17 | +) |
| 18 | + |
| 19 | +add_library(benchmark::benchmark STATIC IMPORTED) |
| 20 | + |
| 21 | +set_target_properties(benchmark::benchmark PROPERTIES |
| 22 | + IMPORTED_LOCATION |
| 23 | + "${BENCHMARK_BUILD_DIR}/src/libbenchmark.a" |
| 24 | + INTERFACE_INCLUDE_DIRECTORIES |
| 25 | + "${CMAKE_CURRENT_SOURCE_DIR}/deps/benchmark/include" |
| 26 | +) |
| 27 | + |
| 28 | +add_dependencies(benchmark::benchmark benchmark) |
10 | 29 |
|
11 | 30 | macro(add_bench_executable bench_name) |
12 | 31 | add_executable(${bench_name} ${ARGN} bench_utils.h bench_data.h) |
|
0 commit comments