Skip to content

Commit

Permalink
cmake: add a path to fetchcontent google benchmark. add flag MDSPAN_U…
Browse files Browse the repository at this point in the history
…SE_SYSTEM_BENCHMARK defaulted to On (to preserve previous behavior) to use a system-provided library instead
  • Loading branch information
nmm0 committed Feb 14, 2025
1 parent ebfc8f5 commit 045e290
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ option(MDSPAN_ENABLE_SYCL "Enable SYCL tests/benchmarks/examples if tests/benchm
option(MDSPAN_ENABLE_HIP "Enable HIP tests/benchmarks/examples if tests/benchmarks/examples are enabled." Off)
option(MDSPAN_ENABLE_OPENMP "Enable OpenMP benchmarks if benchmarks are enabled." On)
option(MDSPAN_USE_SYSTEM_GTEST "Use system-installed GoogleTest library for tests." Off)
option(MDSPAN_USE_SYSTEM_BENCHMARK "Use system-installed Google Benchmark library for benchmarks." On)
option(MDSPAN_INSTALL_STDMODE_HEADERS "Whether to install headers to emulate standard library headers and namespaces" Off)

# Option to override which C++ standard to use
Expand Down
15 changes: 14 additions & 1 deletion benchmarks/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,20 @@ function(mdspan_add_benchmark EXENAME)
target_compile_definitions(${EXENAME} PRIVATE MDSPAN_USE_PAREN_OPERATOR=1)
endfunction()

find_package(benchmark REQUIRED)
if(MDSPAN_USE_SYSTEM_BENCHMARK)
find_package(benchmark REQUIRED)
else()
set(BENCHMARK_ENABLE_TESTING OFF)
include(FetchContent)

fetchcontent_declare(
benchmark
GIT_REPOSITORY https://github.com/google/benchmark.git
GIT_TAG v1.9.1
)

fetchcontent_makeavailable(benchmark)
endif()

function(mdspan_add_cuda_benchmark EXENAME)
add_executable(${EXENAME} ${EXENAME}.cu)
Expand Down

0 comments on commit 045e290

Please sign in to comment.