Skip to content

Commit e89b6c5

Browse files
committed
build(benches): Replaced add_subdirectory with ExternalProject_Add for "benchmark" dependency
1 parent 82f8085 commit e89b6c5

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

benches/CMakeLists.txt

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,31 @@
11
set(CMAKE_CXX_STANDARD 23)
22

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)
1029

1130
macro(add_bench_executable bench_name)
1231
add_executable(${bench_name} ${ARGN} bench_utils.h bench_data.h)

0 commit comments

Comments
 (0)