From f6a1819f0763cb4e4797076a544277bbef3fb9c4 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Mon, 18 Feb 2019 07:10:10 +0100 Subject: [PATCH] ARROW-4609: [C++] Use google benchmark from toolchain Change linker statement to use Threads::Threads Change-Id: I81df95bde48a48bed221dac814836a417c9b16ff --- ci/conda_env_cpp.yml | 1 + cpp/cmake_modules/FindGBenchmark.cmake | 4 ++-- cpp/cmake_modules/ThirdpartyToolchain.cmake | 7 ++++++- cpp/src/arrow/util/CMakeLists.txt | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ci/conda_env_cpp.yml b/ci/conda_env_cpp.yml index fbe45769a72..f7f0a9a21f2 100644 --- a/ci/conda_env_cpp.yml +++ b/ci/conda_env_cpp.yml @@ -17,6 +17,7 @@ # ARROW-4056: The conda-forge boost 1.69.0 seems to break the Parquet unit # tests with Xcode 8.3. Root cause not yet determined +benchmark boost-cpp=1.68.0 brotli bzip2 diff --git a/cpp/cmake_modules/FindGBenchmark.cmake b/cpp/cmake_modules/FindGBenchmark.cmake index 3e46a60f5e6..88196f0b557 100644 --- a/cpp/cmake_modules/FindGBenchmark.cmake +++ b/cpp/cmake_modules/FindGBenchmark.cmake @@ -33,8 +33,8 @@ if( NOT "$ENV{GBENCHMARK_HOME}" STREQUAL "") file( TO_CMAKE_PATH "$ENV{GBENCHMARK_HOME}" _native_path ) list( APPEND _gbenchmark_roots ${_native_path} ) -elseif ( GBenchmark_HOME ) - list( APPEND _gbenchmark_roots ${GBenchmark_HOME} ) +elseif ( GBENCHMARK_HOME ) + list( APPEND _gbenchmark_roots ${GBENCHMARK_HOME} ) endif() # Try the parameterized roots, if they exist diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 7b99440ce36..0a4b3f66c91 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -38,6 +38,7 @@ if (NOT "$ENV{ARROW_BUILD_TOOLCHAIN}" STREQUAL "") set(GFLAGS_HOME "$ENV{ARROW_BUILD_TOOLCHAIN}") set(GLOG_HOME "$ENV{ARROW_BUILD_TOOLCHAIN}") set(GRPC_HOME "$ENV{ARROW_BUILD_TOOLCHAIN}") + set(GBENCHMARK_HOME "$ENV{ARROW_BUILD_TOOLCHAIN}") # Using gtest from the toolchain breaks AppVeyor and # trusty builds if (NOT MSVC) @@ -107,6 +108,10 @@ if (DEFINED ENV{GRPC_HOME}) set(GRPC_HOME "$ENV{GRPC_HOME}") endif() +if (DEFINED ENV{GBENCHMARK_HOME}) + set(GBENCHMARK_HOME "$ENV{GBENCHMARK_HOME}") +endif() + if (DEFINED ENV{GTEST_HOME}) set(GTEST_HOME "$ENV{GTEST_HOME}") endif() @@ -761,7 +766,7 @@ if(ARROW_BUILD_TESTS OR ARROW_BUILD_BENCHMARKS) endif() if(ARROW_BUILD_BENCHMARKS) - if("$ENV{GBENCHMARK_HOME}" STREQUAL "") + if("${GBENCHMARK_HOME}" STREQUAL "") if(CMAKE_VERSION VERSION_LESS 3.6) message(FATAL_ERROR "Building gbenchmark from source requires at least CMake 3.6") endif() diff --git a/cpp/src/arrow/util/CMakeLists.txt b/cpp/src/arrow/util/CMakeLists.txt index 56d5801bc0d..fa2a00b2683 100644 --- a/cpp/src/arrow/util/CMakeLists.txt +++ b/cpp/src/arrow/util/CMakeLists.txt @@ -33,7 +33,7 @@ if(ARROW_BUILD_BENCHMARKS) elseif(MSVC) target_link_libraries(arrow_benchmark_main gbenchmark_static Shlwapi.lib) else() - target_link_libraries(arrow_benchmark_main gbenchmark_static pthread) + target_link_libraries(arrow_benchmark_main gbenchmark_static Threads::Threads) endif() # TODO(wesm): Some benchmarks include gtest.h