From 5567ed01e5f5f5e67d5c4680a13c2358680172dd Mon Sep 17 00:00:00 2001 From: kitattyor Date: Sat, 17 Oct 2020 20:59:04 +0800 Subject: [PATCH] Download googlebenchmark if not found; requires cmake 3.11 --- bench/CMakeLists.txt | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/bench/CMakeLists.txt b/bench/CMakeLists.txt index 25a94558..5a53a252 100644 --- a/bench/CMakeLists.txt +++ b/bench/CMakeLists.txt @@ -9,7 +9,24 @@ if(NOT TARGET spdlog) endif() find_package(Threads REQUIRED) -find_package(benchmark CONFIG REQUIRED) +find_package(benchmark CONFIG) +if (NOT benchmark_FOUND) + message(STATUS "Using CMake Version ${CMAKE_VERSION}") + if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.11.0") + # User can fetch googlebenchmark + message(STATUS "Downloading GoogleBenchmark") + include(FetchContent) + set(BENCHMARK_ENABLE_GTEST_TESTS OFF CACHE INTERNAL "") + # Do not build and run googlebenchmark tests + FetchContent_Declare(googlebenchmark + GIT_REPOSITORY https://github.com/google/benchmark.git + GIT_TAG v1.5.2) + + FetchContent_MakeAvailable(googlebenchmark) + else() + message(FATAL_ERROR "GoogleBenchmark is missing. Use CMake >= 3.11 or download it") + endif() +endif() add_executable(bench bench.cpp) spdlog_enable_warnings(bench)