Kaynağa Gözat

Add Google Benchmark to the CMake build (#1670)

Gil 7 yıl önce
ebeveyn
işleme
b5c4e0706c

+ 8 - 0
CMakeLists.txt

@@ -70,6 +70,14 @@ add_alias(GTest::Main gtest_main)
 add_alias(GMock::GMock gmock)
 
 
+# Benchmark
+set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Firestore disabled")
+set(BENCHMARK_ENABLE_EXCEPTIONS OFF CACHE BOOL "Firestore disabled")
+set(BENCHMARK_ENABLE_INSTALL OFF CACHE BOOL "Firestore disabled")
+set(BENCHMARK_ENABLE_GTEST_TESTS OFF CACHE BOOL "Firestore disabled")
+add_external_subdirectory(benchmark)
+
+
 # Abseil-cpp
 # Force disable Abseil's tests, which don't compile under VS2017.
 set(old_build_testing ${BUILD_TESTING})

+ 1 - 0
cmake/external/CMakeLists.txt

@@ -23,6 +23,7 @@ set(
   CACHE PATH "Where to store downloaded files"
 )
 
+include(benchmark)
 include(googletest)
 include(grpc)
 include(leveldb)

+ 37 - 0
cmake/external/benchmark.cmake

@@ -0,0 +1,37 @@
+# Copyright 2018 Google
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+include(ExternalProject)
+
+if(TARGET benchmark)
+  return()
+endif()
+
+set(commit v1.4.1)
+
+ExternalProject_Add(
+  benchmark
+
+  DOWNLOAD_DIR ${FIREBASE_DOWNLOAD_DIR}
+  DOWNLOAD_NAME benchmark-${commit}.tar.gz
+  URL https://github.com/google/benchmark/archive/${commit}.tar.gz
+  URL_HASH SHA256=f8e525db3c42efc9c7f3bc5176a8fa893a9a9920bbd08cef30fb56a51854d60d
+
+  PREFIX ${PROJECT_BINARY_DIR}
+
+  CONFIGURE_COMMAND ""
+  BUILD_COMMAND     ""
+  INSTALL_COMMAND   ""
+  TEST_COMMAND      ""
+)