This is an automated email from the ASF dual-hosted git repository. wesm pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push: new 36e26fe ARROW-4431: [C++] Fixes for gRPC vendored builds 36e26fe is described below commit 36e26fe473ab776982a52861bbc6875431abae7c Author: Wes McKinney <wesm+...@apache.org> AuthorDate: Thu Jan 31 11:04:36 2019 -0600 ARROW-4431: [C++] Fixes for gRPC vendored builds This enables Arrow Flight to build gRPC successfully from ExternalProject both with all dependencies being built from EP or from provided packages via _HOME variables. Author: Wes McKinney <wesm+...@apache.org> Closes #3527 from pitrou/grpc-vendored-fixes and squashes the following commits: fb8fdf33c <Wes McKinney> No more verbose build in CI d84b9190e <Wes McKinney> Restore all builds c778bece6 <Wes McKinney> Revert vendored Boost changes 65ac53d63 <Wes McKinney> Revert Boost link order d5b8f547d <Wes McKinney> Try removing SYSTEM 7563955c1 <Wes McKinney> Verbose build again 1880bfa59 <Wes McKinney> Fix Boost include dir dd4f1eb5e <Wes McKinney> debugging 369f0e520 <Wes McKinney> Use verbose makefile for debugging accaeb036 <Wes McKinney> verbose windows build for debugging 318181333 <Wes McKinney> Use BEFORE SYSTEM with vendored Boost headers 0a2f9673b <Wes McKinney> More tweaks / fixed f2db99a74 <Wes McKinney> Change Boost library include order ad994b16d <Wes McKinney> Fix brotli library locations after refactor 73405450e <Wes McKinney> Fix Brotli headers copy step 3140b3c6d <Wes McKinney> Quote thirdparty install prefixes, verbose thirdparty build in MSVC 024a2dca6 <Wes McKinney> Fixes for gRPC vendored builds --- .travis.yml | 1 + ci/cpp-msvc-build-main.bat | 2 + cpp/cmake_modules/ThirdpartyToolchain.cmake | 369 ++++++++++++++++++---------- cpp/src/arrow/flight/CMakeLists.txt | 4 +- cpp/src/arrow/flight/perf-server.cc | 2 + cpp/src/arrow/memory_pool.cc | 2 +- cpp/thirdparty/versions.txt | 4 +- 7 files changed, 254 insertions(+), 130 deletions(-) diff --git a/.travis.yml b/.travis.yml index 26d3892..c037cd5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -188,6 +188,7 @@ matrix: - ARROW_TRAVIS_GANDIVA=1 - ARROW_TRAVIS_GANDIVA_JAVA=1 - ARROW_TRAVIS_OPTIONAL_INSTALL=1 + - ARROW_TRAVIS_VERBOSE=0 - ARROW_BUILD_WARNING_LEVEL=CHECKIN # ARROW-3803: The Xcode 8.3 image has Boost libraries in /usr/local/lib # which can get loaded before the toolchain Boost libraries. These seem to diff --git a/ci/cpp-msvc-build-main.bat b/ci/cpp-msvc-build-main.bat index c36c6bd..ccd64e3 100644 --- a/ci/cpp-msvc-build-main.bat +++ b/ci/cpp-msvc-build-main.bat @@ -51,6 +51,8 @@ cmake -G "%GENERATOR%" %CMAKE_ARGS% ^ -DARROW_BUILD_STATIC=OFF ^ -DARROW_BUILD_TESTS=ON ^ -DARROW_BUILD_EXAMPLES=ON ^ + -DARROW_BUILD_EXAMPLES=ON ^ + -DARROW_VERBOSE_THIRDPARTY_BUILD=ON ^ -DARROW_CXXFLAGS="%ARROW_CXXFLAGS%" ^ -DCMAKE_CXX_FLAGS_RELEASE="/MD %CMAKE_CXX_FLAGS_RELEASE%" ^ -DARROW_PARQUET=ON ^ diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 606b476..ce5073f 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -17,6 +17,8 @@ add_custom_target(toolchain) +set(THIRDPARTY_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/arrow_thirdparty") + # ---------------------------------------------------------------------- # Toolchain linkage options @@ -151,6 +153,18 @@ else() set(ARROW_WITH_THRIFT OFF) endif() +if (ARROW_FLIGHT) + set(ARROW_WITH_GRPC ON) +endif() + +if (ARROW_FLIGHT OR ARROW_IPC) + set(ARROW_WITH_RAPIDJSON ON) +endif() + +if (ARROW_ORC OR ARROW_FLIGHT OR ARROW_GANDIVA) + set(ARROW_WITH_PROTOBUF ON) +endif() + # ---------------------------------------------------------------------- # Versions and URLs for toolchain builds, which also can be used to configure # offline builds @@ -191,6 +205,12 @@ else() set(BROTLI_SOURCE_URL "https://github.com/google/brotli/archive/${BROTLI_VERSION}.tar.gz") endif() +if (DEFINED ENV{ARROW_CARES_URL}) + set(CARES_SOURCE_URL "$ENV{ARROW_CARES_URL}") +else() + set(CARES_SOURCE_URL "https://c-ares.haxx.se/download/c-ares-${CARES_VERSION}.tar.gz") +endif() + if (DEFINED ENV{ARROW_DOUBLE_CONVERSION_URL}) set(DOUBLE_CONVERSION_SOURCE_URL "$ENV{ARROW_DOUBLE_CONVERSION_URL}") else() @@ -487,7 +507,7 @@ else() endif() endif() -message(STATUS "Boost include dir: " ${Boost_INCLUDE_DIRS}) +message(STATUS "Boost include dir: " ${Boost_INCLUDE_DIR}) message(STATUS "Boost libraries: " ${Boost_LIBRARIES}) if (NOT ARROW_BOOST_HEADER_ONLY) @@ -512,17 +532,17 @@ include_directories(SYSTEM ${Boost_INCLUDE_DIR}) # Google double-conversion if("${DOUBLE_CONVERSION_HOME}" STREQUAL "") - set(DOUBLE_CONVERSION_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/double-conversion_ep/src/double-conversion_ep") - set(DOUBLE_CONVERSION_HOME "${DOUBLE_CONVERSION_PREFIX}") - set(DOUBLE_CONVERSION_INCLUDE_DIR "${DOUBLE_CONVERSION_PREFIX}/include") - set(DOUBLE_CONVERSION_STATIC_LIB "${DOUBLE_CONVERSION_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}double-conversion${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(DOUBLE_CONVERSION_HOME "${THIRDPARTY_PREFIX}") + set(DOUBLE_CONVERSION_INCLUDE_DIR "${THIRDPARTY_PREFIX}/include") + set(DOUBLE_CONVERSION_STATIC_LIB "${THIRDPARTY_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}double-conversion${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(DOUBLE_CONVERSION_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - -DCMAKE_INSTALL_PREFIX=${DOUBLE_CONVERSION_PREFIX}) + set(DOUBLE_CONVERSION_CMAKE_ARGS + ${EP_COMMON_CMAKE_ARGS} + "-DCMAKE_INSTALL_PREFIX=${THIRDPARTY_PREFIX}") ExternalProject_Add(double-conversion_ep ${EP_LOG_OPTIONS} - INSTALL_DIR ${DOUBLE_CONVERSION_PREFIX} + INSTALL_DIR ${THIRDPARTY_PREFIX} URL ${DOUBLE_CONVERSION_SOURCE_URL} CMAKE_ARGS ${DOUBLE_CONVERSION_CMAKE_ARGS} BUILD_BYPRODUCTS "${DOUBLE_CONVERSION_STATIC_LIB}") @@ -552,12 +572,20 @@ message(STATUS "double-conversion static library: ${DOUBLE_CONVERSION_STATIC_LIB # ---------------------------------------------------------------------- # gflags -if(ARROW_BUILD_TESTS OR - ARROW_BUILD_BENCHMARKS OR - (ARROW_USE_GLOG AND GLOG_HOME)) +if (ARROW_BUILD_TESTS OR + ARROW_BUILD_BENCHMARKS OR + (ARROW_USE_GLOG AND GLOG_HOME) OR + (ARROW_WITH_GRPC AND NOT GRPC_HOME)) + set(ARROW_NEED_GFLAGS 1) +else() + set(ARROW_NEED_GFLAGS 0) +endif() + +if(ARROW_NEED_GFLAGS) # gflags (formerly Googleflags) command line parsing if("${GFLAGS_HOME}" STREQUAL "") - set(GFLAGS_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/gflags_ep-prefix/src/gflags_ep") + set(GFLAGS_CMAKE_CXX_FLAGS ${EP_CXX_FLAGS}) + set(GFLAGS_PREFIX "${THIRDPARTY_PREFIX}") set(GFLAGS_HOME "${GFLAGS_PREFIX}") set(GFLAGS_INCLUDE_DIR "${GFLAGS_PREFIX}/include") if(MSVC) @@ -567,7 +595,7 @@ if(ARROW_BUILD_TESTS OR endif() set(GFLAGS_VENDORED 1) set(GFLAGS_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - -DCMAKE_INSTALL_PREFIX=${GFLAGS_PREFIX} + "-DCMAKE_INSTALL_PREFIX=${GFLAGS_PREFIX}" -DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON -DBUILD_PACKAGING=OFF @@ -615,7 +643,7 @@ if(ARROW_BUILD_TESTS OR ARROW_BUILD_BENCHMARKS) -Wno-ignored-attributes) endif() - set(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/googletest_ep-prefix/src/googletest_ep") + set(GTEST_PREFIX "${THIRDPARTY_PREFIX}") set(GTEST_INCLUDE_DIR "${GTEST_PREFIX}/include") set(GTEST_STATIC_LIB "${GTEST_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}") @@ -623,8 +651,8 @@ if(ARROW_BUILD_TESTS OR ARROW_BUILD_BENCHMARKS) "${GTEST_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}") set(GTEST_VENDORED 1) set(GTEST_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - -DCMAKE_INSTALL_PREFIX=${GTEST_PREFIX} - -DCMAKE_CXX_FLAGS=${GTEST_CMAKE_CXX_FLAGS}) + "-DCMAKE_INSTALL_PREFIX=${GTEST_PREFIX}" + -DCMAKE_CXX_FLAGS=${GTEST_CMAKE_CXX_FLAGS}) if (MSVC AND NOT ARROW_USE_STATIC_CRT) set(GTEST_CMAKE_ARGS ${GTEST_CMAKE_ARGS} -Dgtest_force_shared_crt=ON) endif() @@ -679,14 +707,14 @@ if(ARROW_BUILD_BENCHMARKS) set(GBENCHMARK_CMAKE_CXX_FLAGS "${GBENCHMARK_CMAKE_CXX_FLAGS} -stdlib=libc++") endif() - set(GBENCHMARK_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/gbenchmark_ep/src/gbenchmark_ep-install") + set(GBENCHMARK_PREFIX "${THIRDPARTY_PREFIX}") set(GBENCHMARK_INCLUDE_DIR "${GBENCHMARK_PREFIX}/include") set(GBENCHMARK_STATIC_LIB "${GBENCHMARK_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}benchmark${CMAKE_STATIC_LIBRARY_SUFFIX}") set(GBENCHMARK_VENDORED 1) set(GBENCHMARK_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - -DCMAKE_INSTALL_PREFIX=${GBENCHMARK_PREFIX} - -DBENCHMARK_ENABLE_TESTING=OFF - -DCMAKE_CXX_FLAGS=${GBENCHMARK_CMAKE_CXX_FLAGS}) + "-DCMAKE_INSTALL_PREFIX=${GBENCHMARK_PREFIX}" + -DBENCHMARK_ENABLE_TESTING=OFF + -DCMAKE_CXX_FLAGS=${GBENCHMARK_CMAKE_CXX_FLAGS}) if (APPLE) set(GBENCHMARK_CMAKE_ARGS ${GBENCHMARK_CMAKE_ARGS} "-DBENCHMARK_USE_LIBCXX=ON") endif() @@ -712,21 +740,24 @@ if(ARROW_BUILD_BENCHMARKS) endif() endif() -if (ARROW_IPC) +if (ARROW_WITH_RAPIDJSON) # RapidJSON, header only dependency if("${RAPIDJSON_HOME}" STREQUAL "") + set(RAPIDJSON_HOME "${THIRDPARTY_PREFIX}") + set(RAPIDJSON_CMAKE_ARGS + -DRAPIDJSON_BUILD_DOC=OFF + -DRAPIDJSON_BUILD_EXAMPLES=OFF + -DRAPIDJSON_BUILD_TESTS=OFF + "-DCMAKE_INSTALL_PREFIX=${THIRDPARTY_PREFIX}") + ExternalProject_Add(rapidjson_ep + ${EP_LOG_OPTIONS} PREFIX "${CMAKE_BINARY_DIR}" URL ${RAPIDJSON_SOURCE_URL} URL_MD5 ${RAPIDJSON_SOURCE_MD5} - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - BUILD_IN_SOURCE 1 - ${EP_LOG_OPTIONS} - INSTALL_COMMAND "") + CMAKE_ARGS ${RAPIDJSON_CMAKE_ARGS}) - ExternalProject_Get_Property(rapidjson_ep SOURCE_DIR) - set(RAPIDJSON_INCLUDE_DIR "${SOURCE_DIR}/include") + set(RAPIDJSON_INCLUDE_DIR "${RAPIDJSON_HOME}/include") set(RAPIDJSON_VENDORED 1) add_dependencies(toolchain rapidjson_ep) else() @@ -738,8 +769,9 @@ if (ARROW_IPC) ## Flatbuffers if("${FLATBUFFERS_HOME}" STREQUAL "") - set(FLATBUFFERS_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/flatbuffers_ep-prefix/src/flatbuffers_ep-install") set(FLATBUFFERS_CMAKE_CXX_FLAGS ${EP_CXX_FLAGS}) + set(FLATBUFFERS_PREFIX "${THIRDPARTY_PREFIX}") + if (MSVC) set(FLATBUFFERS_CMAKE_CXX_FLAGS "/EHsc") endif() @@ -747,10 +779,10 @@ if (ARROW_IPC) # RELEASE build is required for `flatc` to be installed. set(FLATBUFFERS_BUILD_TYPE RELEASE) set(FLATBUFFERS_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - -DCMAKE_BUILD_TYPE=${FLATBUFFERS_BUILD_TYPE} - -DCMAKE_INSTALL_PREFIX=${FLATBUFFERS_PREFIX} - -DCMAKE_CXX_FLAGS=${FLATBUFFERS_CMAKE_CXX_FLAGS} - -DFLATBUFFERS_BUILD_TESTS=OFF) + -DCMAKE_BUILD_TYPE=${FLATBUFFERS_BUILD_TYPE} + -DCMAKE_INSTALL_PREFIX=${FLATBUFFERS_PREFIX} + -DCMAKE_CXX_FLAGS=${FLATBUFFERS_CMAKE_CXX_FLAGS} + -DFLATBUFFERS_BUILD_TESTS=OFF) ExternalProject_Add(flatbuffers_ep URL ${FLATBUFFERS_SOURCE_URL} @@ -785,7 +817,7 @@ if (ARROW_JEMALLOC) # find_package(jemalloc) set(ARROW_JEMALLOC_USE_SHARED OFF) - set(JEMALLOC_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/jemalloc_ep-prefix/src/jemalloc_ep/dist/") + set(JEMALLOC_PREFIX "${THIRDPARTY_PREFIX}") set(JEMALLOC_HOME "${JEMALLOC_PREFIX}") set(JEMALLOC_INCLUDE_DIR "${JEMALLOC_PREFIX}/include") set(JEMALLOC_SHARED_LIB "${JEMALLOC_PREFIX}/lib/libjemalloc${CMAKE_SHARED_LIBRARY_SUFFIX}") @@ -804,7 +836,8 @@ if (ARROW_JEMALLOC) # Don't use the include directory directly so that we can point to a path # that is unique to our codebase. - include_directories(SYSTEM "${CMAKE_CURRENT_BINARY_DIR}/jemalloc_ep-prefix/src/") + include_directories(SYSTEM "${CMAKE_CURRENT_BINARY_DIR}") + ADD_THIRDPARTY_LIB(jemalloc STATIC_LIB ${JEMALLOC_STATIC_LIB} SHARED_LIB ${JEMALLOC_SHARED_LIB} @@ -865,7 +898,7 @@ if (ARROW_WITH_ZLIB) ADD_THIRDPARTY_LIB(zlib SHARED_LIB ${ZLIB_SHARED_LIB}) set(ZLIB_LIBRARY zlib_shared) else() - set(ZLIB_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/zlib_ep/src/zlib_ep-install") + set(ZLIB_PREFIX "${THIRDPARTY_PREFIX}") set(ZLIB_HOME "${ZLIB_PREFIX}") set(ZLIB_INCLUDE_DIR "${ZLIB_PREFIX}/include") if (MSVC) @@ -879,8 +912,8 @@ if (ARROW_WITH_ZLIB) endif() set(ZLIB_STATIC_LIB "${ZLIB_PREFIX}/lib/${ZLIB_STATIC_LIB_NAME}") set(ZLIB_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - -DCMAKE_INSTALL_PREFIX=${ZLIB_PREFIX} - -DBUILD_SHARED_LIBS=OFF) + "-DCMAKE_INSTALL_PREFIX=${ZLIB_PREFIX}" + -DBUILD_SHARED_LIBS=OFF) ADD_THIRDPARTY_LIB(zlib STATIC_LIB ${ZLIB_STATIC_LIB}) set(ZLIB_LIBRARY zlib_static) @@ -901,7 +934,7 @@ if (ARROW_WITH_SNAPPY) # Snappy if("${SNAPPY_HOME}" STREQUAL "") - set(SNAPPY_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/snappy_ep/src/snappy_ep-install") + set(SNAPPY_PREFIX "${THIRDPARTY_PREFIX}") set(SNAPPY_HOME "${SNAPPY_PREFIX}") set(SNAPPY_INCLUDE_DIR "${SNAPPY_PREFIX}/include") if (MSVC) @@ -921,9 +954,9 @@ if (ARROW_WITH_SNAPPY) if (WIN32) set(SNAPPY_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - -DCMAKE_AR=${CMAKE_AR} - -DCMAKE_RANLIB=${CMAKE_RANLIB} - -DCMAKE_INSTALL_PREFIX=${SNAPPY_PREFIX}) + -DCMAKE_AR=${CMAKE_AR} + -DCMAKE_RANLIB=${CMAKE_RANLIB} + "-DCMAKE_INSTALL_PREFIX=${SNAPPY_PREFIX}") set(SNAPPY_UPDATE_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/cmake_modules/SnappyCMakeLists.txt ./CMakeLists.txt && @@ -969,7 +1002,7 @@ if (ARROW_WITH_BROTLI) # Brotli if("${BROTLI_HOME}" STREQUAL "") - set(BROTLI_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/brotli_ep/src/brotli_ep-install") + set(BROTLI_PREFIX "${THIRDPARTY_PREFIX}") set(BROTLI_HOME "${BROTLI_PREFIX}") set(BROTLI_INCLUDE_DIR "${BROTLI_PREFIX}/include") if (MSVC) @@ -977,13 +1010,13 @@ if (ARROW_WITH_BROTLI) else() set(BROTLI_LIB_DIR lib) endif() - set(BROTLI_STATIC_LIBRARY_ENC "${BROTLI_PREFIX}/${BROTLI_LIB_DIR}/${CMAKE_LIBRARY_ARCHITECTURE}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlienc${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(BROTLI_STATIC_LIBRARY_DEC "${BROTLI_PREFIX}/${BROTLI_LIB_DIR}/${CMAKE_LIBRARY_ARCHITECTURE}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlidec${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(BROTLI_STATIC_LIBRARY_COMMON "${BROTLI_PREFIX}/${BROTLI_LIB_DIR}/${CMAKE_LIBRARY_ARCHITECTURE}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlicommon${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(BROTLI_STATIC_LIBRARY_ENC "${BROTLI_PREFIX}/${BROTLI_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlienc${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(BROTLI_STATIC_LIBRARY_DEC "${BROTLI_PREFIX}/${BROTLI_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlidec${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(BROTLI_STATIC_LIBRARY_COMMON "${BROTLI_PREFIX}/${BROTLI_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlicommon${CMAKE_STATIC_LIBRARY_SUFFIX}") set(BROTLI_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - -DCMAKE_INSTALL_PREFIX=${BROTLI_PREFIX} - -DCMAKE_INSTALL_LIBDIR=lib/${CMAKE_LIBRARY_ARCHITECTURE} - -DBUILD_SHARED_LIBS=OFF) + "-DCMAKE_INSTALL_PREFIX=${BROTLI_PREFIX}" + -DCMAKE_INSTALL_LIBDIR=lib + -DBUILD_SHARED_LIBS=OFF) ExternalProject_Add(brotli_ep URL ${BROTLI_SOURCE_URL} @@ -996,7 +1029,7 @@ if (ARROW_WITH_BROTLI) ExternalProject_Get_Property(brotli_ep SOURCE_DIR) ExternalProject_Add_Step(brotli_ep headers_copy - COMMAND xcopy /E /I include ..\\..\\..\\brotli_ep\\src\\brotli_ep-install\\include /Y + COMMAND xcopy /E /I include ..\\..\\..\\arrow_thirdparty\\include /Y DEPENDEES build WORKING_DIRECTORY ${SOURCE_DIR}) endif() @@ -1094,16 +1127,16 @@ if (ARROW_WITH_ZSTD) # ZSTD if("${ZSTD_HOME}" STREQUAL "") - set(ZSTD_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/zstd_ep-install") + set(ZSTD_PREFIX "${THIRDPARTY_PREFIX}") set(ZSTD_INCLUDE_DIR "${ZSTD_PREFIX}/include") set(ZSTD_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_INSTALL_PREFIX=${ZSTD_PREFIX} - -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR} - -DZSTD_BUILD_PROGRAMS=off - -DZSTD_BUILD_SHARED=off - -DZSTD_BUILD_STATIC=on - -DZSTD_MULTITHREAD_SUPPORT=off) + "-DCMAKE_INSTALL_PREFIX=${ZSTD_PREFIX}" + -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR} + -DZSTD_BUILD_PROGRAMS=off + -DZSTD_BUILD_SHARED=off + -DZSTD_BUILD_STATIC=on + -DZSTD_MULTITHREAD_SUPPORT=off) if (MSVC) set(ZSTD_STATIC_LIB "${ZSTD_PREFIX}/${CMAKE_INSTALL_LIBDIR}/zstd_static.lib") @@ -1154,13 +1187,13 @@ endif() if (ARROW_GANDIVA) # re2 if ("${RE2_HOME}" STREQUAL "") - set (RE2_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/re2_ep-install") + set (RE2_PREFIX "${THIRDPARTY_PREFIX}") set (RE2_HOME "${RE2_PREFIX}") set (RE2_INCLUDE_DIR "${RE2_PREFIX}/include") set (RE2_STATIC_LIB "${RE2_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}re2${CMAKE_STATIC_LIBRARY_SUFFIX}") set(RE2_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - -DCMAKE_INSTALL_PREFIX=${RE2_PREFIX}) + "-DCMAKE_INSTALL_PREFIX=${RE2_PREFIX}") ExternalProject_Add(re2_ep ${EP_LOG_OPTIONS} @@ -1192,10 +1225,10 @@ endif () # ---------------------------------------------------------------------- # Protocol Buffers (required for ORC and Flight and Gandiva libraries) -if (ARROW_ORC OR ARROW_FLIGHT OR ARROW_GANDIVA) +if (ARROW_WITH_PROTOBUF) # protobuf if ("${PROTOBUF_HOME}" STREQUAL "") - set (PROTOBUF_PREFIX "${THIRDPARTY_DIR}/protobuf_ep-install") + set (PROTOBUF_PREFIX "${THIRDPARTY_PREFIX}") set (PROTOBUF_HOME "${PROTOBUF_PREFIX}") set (PROTOBUF_INCLUDE_DIR "${PROTOBUF_PREFIX}/include") set (PROTOBUF_STATIC_LIB "${PROTOBUF_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}protobuf${CMAKE_STATIC_LIBRARY_SUFFIX}") @@ -1240,53 +1273,135 @@ endif() # ---------------------------------------------------------------------- # Dependencies for Arrow Flight RPC -if (ARROW_FLIGHT) +if (ARROW_WITH_GRPC) + if ("${CARES_HOME}" STREQUAL "") + set(CARES_VENDORED 1) + set(CARES_PREFIX "${THIRDPARTY_PREFIX}") + set(CARES_HOME "${CARES_PREFIX}") + set(CARES_INCLUDE_DIR "${CARES_PREFIX}/include") + + # If you set -DCARES_SHARED=ON then the build system names the library + # libcares_static.a + set(CARES_STATIC_LIB "${CARES_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}cares${CMAKE_STATIC_LIBRARY_SUFFIX}") + + set(CARES_CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCARES_STATIC=ON + -DCARES_SHARED=OFF + "-DCMAKE_C_FLAGS=${EP_C_FLAGS}" + "-DCMAKE_INSTALL_PREFIX=${CARES_PREFIX}") + + ExternalProject_Add(cares_ep + ${EP_LOG_OPTIONS} + URL ${CARES_SOURCE_URL} + CMAKE_ARGS ${CARES_CMAKE_ARGS} + BUILD_BYPRODUCTS "${CARES_STATIC_LIB}") + else() + set(CARES_VENDORED 0) + find_package(c-ares REQUIRED + PATHS ${CARES_HOME} + NO_DEFAULT_PATH) + if(TARGET c-ares::cares) + get_property(CARES_STATIC_LIB TARGET c-ares::cares_static PROPERTY LOCATION) + endif() + endif() + message(STATUS "c-ares library: ${CARES_STATIC_LIB}") + + add_custom_target(grpc) + if ("${GRPC_HOME}" STREQUAL "") set(GRPC_VENDORED 1) set(GRPC_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/grpc_ep-prefix/src/grpc_ep-build") - set(GRPC_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/grpc_ep/src/grpc_ep-install") + set(GRPC_PREFIX "${THIRDPARTY_PREFIX}") set(GRPC_HOME "${GRPC_PREFIX}") set(GRPC_INCLUDE_DIR "${GRPC_PREFIX}/include") - set(GRPC_STATIC_LIBRARY_GPR "${GRPC_BUILD_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gpr${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(GRPC_STATIC_LIBRARY_GRPC "${GRPC_BUILD_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}grpc${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(GRPC_STATIC_LIBRARY_GRPCPP "${GRPC_BUILD_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}grpc++${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(GRPC_STATIC_LIBRARY_ADDRESS_SORTING "${GRPC_BUILD_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}address_sorting${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(GRPC_STATIC_LIBRARY_CARES "${GRPC_BUILD_DIR}/${CMAKE_CFG_INTDIR}/third_party/cares/cares/lib/${CMAKE_STATIC_LIBRARY_PREFIX}cares${CMAKE_STATIC_LIBRARY_SUFFIX}") set(GRPC_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - -DCMAKE_INSTALL_PREFIX=${GRPC_PREFIX} - -DBUILD_SHARED_LIBS=OFF) + "-DCMAKE_INSTALL_PREFIX=${GRPC_PREFIX}" + -DBUILD_SHARED_LIBS=OFF) + + set(GRPC_STATIC_LIBRARY_GPR "${GRPC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gpr${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(GRPC_STATIC_LIBRARY_GRPC "${GRPC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}grpc${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(GRPC_STATIC_LIBRARY_GRPCPP "${GRPC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}grpc++${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(GRPC_STATIC_LIBRARY_ADDRESS_SORTING "${GRPC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}address_sorting${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(GRPC_CPP_PLUGIN "${GRPC_PREFIX}/bin/grpc_cpp_plugin") + + set(GRPC_CMAKE_PREFIX "${THIRDPARTY_PREFIX}") + + add_custom_target(grpc_dependencies) + + if (CARES_VENDORED) + add_dependencies(grpc_dependencies cares_ep) + else() + set(GRPC_CMAKE_PREFIX "${GRPC_CMAKE_PREFIX};${CARES_HOME}") + endif() + + if (GFLAGS_VENDORED) + add_dependencies(grpc_dependencies gflags_ep) + else() + set(GRPC_CMAKE_PREFIX "${GRPC_CMAKE_PREFIX};${GFLAGS_HOME}") + endif() + + if (PROTOBUF_VENDORED) + add_dependencies(grpc_dependencies protobuf_ep) + else() + set(GRPC_CMAKE_PREFIX "${GRPC_CMAKE_PREFIX};${PROTOBUF_HOME}") + endif() + + # ZLIB is never vendored + if(NOT "${ZLIB_HOME}" STREQUAL "") + set(GRPC_CMAKE_PREFIX "${GRPC_CMAKE_PREFIX};${ZLIB_HOME}") + endif() + + if (RAPIDJSON_VENDORED) + add_dependencies(grpc_dependencies rapidjson_ep) + endif() + # Yuck, see https://stackoverflow.com/a/45433229/776560 + string(REPLACE ";" "|" GRPC_PREFIX_PATH_ALT_SEP "${GRPC_CMAKE_PREFIX}") + + set(GRPC_CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_PREFIX_PATH="${GRPC_PREFIX_PATH_ALT_SEP}" + "-DgRPC_CARES_PROVIDER=package" + "-DgRPC_GFLAGS_PROVIDER=package" + "-DgRPC_PROTOBUF_PROVIDER=package" + "-DgRPC_SSL_PROVIDER=package" + "-DgRPC_ZLIB_PROVIDER=package" + "-DCMAKE_CXX_FLAGS=${EP_CXX_FLAGS}" + "-DCMAKE_C_FLAGS=${EP_C_FLAGS}" + "-DCMAKE_INSTALL_PREFIX=${GRPC_PREFIX}" + -DCMAKE_INSTALL_LIBDIR=lib + -DBUILD_SHARED_LIBS=OFF) + + # XXX the gRPC git checkout is huge and takes a long time + # Ideally, we should be able to use the tarballs, but they don't contain + # vendored dependencies such as c-ares... ExternalProject_Add(grpc_ep - GIT_REPOSITORY "https://github.com/grpc/grpc" - GIT_TAG ${GRPC_VERSION} - BUILD_BYPRODUCTS "${GRPC_STATIC_LIBRARY_GPR}" "${GRPC_STATIC_LIBRARY_GRPC}" "${GRPC_STATIC_LIBRARY_GRPCPP}" - ${GRPC_BUILD_BYPRODUCTS} - ${EP_LOG_OPTIONS} + URL ${GRPC_SOURCE_URL} + LIST_SEPARATOR | + BUILD_BYPRODUCTS + ${GRPC_STATIC_LIBRARY_GPR} + ${GRPC_STATIC_LIBRARY_GRPC} + ${GRPC_STATIC_LIBRARY_GRPCPP} + ${GRPC_STATIC_LIBRARY_ADDRESS_SORTING} + ${GRPC_CPP_PLUGIN} CMAKE_ARGS ${GRPC_CMAKE_ARGS} ${EP_LOG_OPTIONS}) + add_dependencies(grpc_ep grpc_dependencies) + set(GPR_STATIC_LIB "${GRPC_STATIC_LIBRARY_GPR}") set(GRPC_STATIC_LIB "${GRPC_STATIC_LIBRARY_GRPC}") set(GRPCPP_STATIC_LIB "${GRPC_STATIC_LIBRARY_GRPCPP}") set(GRPC_ADDRESS_SORTING_STATIC_LIB "${GRPC_STATIC_LIBRARY_ADDRESS_SORTING}") - # XXX(wesm): relying on vendored c-ares provided by gRPC for the time being - set(CARES_STATIC_LIB "${GRPC_STATIC_LIBRARY_CARES}") - set(GRPC_CPP_PLUGIN "${GRPC_BUILD_DIR}/${CMAKE_CFG_INTDIR}/grpc_cpp_plugin") + + add_dependencies(grpc grpc_ep) + add_dependencies(toolchain grpc) else() find_package(gRPC REQUIRED) set(GRPC_VENDORED 0) endif() - # If we built gRPC ourselves, we should use its c-ares. - if ("${CARES_STATIC_LIB}" STREQUAL "") - if (NOT "${CARES_HOME}" STREQUAL "") - set(CARES_STATIC_LIB "${CARES_HOME}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}cares_static${CMAKE_STATIC_LIBRARY_SUFFIX}") - elseif (c-ares_FOUND) - get_property(CARES_STATIC_LIB TARGET c-ares::cares_static PROPERTY LOCATION) - endif() - endif() - message(STATUS "Found the c-ares library: ${CARES_STATIC_LIB}") - if ("${GRPC_CPP_PLUGIN}" STREQUAL "") message(SEND_ERROR "Please set GRPC_CPP_PLUGIN.") endif() @@ -1315,7 +1430,7 @@ endif() if (ARROW_ORC) # orc if ("${ORC_HOME}" STREQUAL "") - set(ORC_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/orc_ep-install") + set(ORC_PREFIX "${THIRDPARTY_PREFIX}") set(ORC_HOME "${ORC_PREFIX}") set(ORC_INCLUDE_DIR "${ORC_PREFIX}/include") set(ORC_STATIC_LIB "${ORC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}orc${CMAKE_STATIC_LIBRARY_SUFFIX}") @@ -1333,18 +1448,18 @@ if (ARROW_ORC) # ${LZ4_HOME}/include, which forces us to specify the include directory # manually as well. set (ORC_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - -DCMAKE_INSTALL_PREFIX=${ORC_PREFIX} - -DCMAKE_CXX_FLAGS=${ORC_CMAKE_CXX_FLAGS} - -DBUILD_LIBHDFSPP=OFF - -DBUILD_JAVA=OFF - -DBUILD_TOOLS=OFF - -DBUILD_CPP_TESTS=OFF - -DINSTALL_VENDORED_LIBS=OFF - -DPROTOBUF_HOME=${PROTOBUF_HOME} - -DLZ4_HOME=${LZ4_HOME} - -DLZ4_INCLUDE_DIR=${LZ4_INCLUDE_DIR} - -DSNAPPY_HOME=${SNAPPY_HOME} - -DZLIB_HOME=${ZLIB_HOME}) + "-DCMAKE_INSTALL_PREFIX=${ORC_PREFIX}" + -DCMAKE_CXX_FLAGS=${ORC_CMAKE_CXX_FLAGS} + -DBUILD_LIBHDFSPP=OFF + -DBUILD_JAVA=OFF + -DBUILD_TOOLS=OFF + -DBUILD_CPP_TESTS=OFF + -DINSTALL_VENDORED_LIBS=OFF + -DPROTOBUF_HOME=${PROTOBUF_HOME} + -DLZ4_HOME=${LZ4_HOME} + -DLZ4_INCLUDE_DIR=${LZ4_INCLUDE_DIR} + -DSNAPPY_HOME=${SNAPPY_HOME} + -DZLIB_HOME=${ZLIB_HOME}) ExternalProject_Add(orc_ep URL ${ORC_SOURCE_URL} @@ -1390,25 +1505,25 @@ if (ARROW_WITH_THRIFT) find_package(Thrift) if (NOT THRIFT_FOUND) - set(THRIFT_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/thrift_ep/src/thrift_ep-install") + set(THRIFT_PREFIX "${THIRDPARTY_PREFIX}") set(THRIFT_HOME "${THRIFT_PREFIX}") set(THRIFT_INCLUDE_DIR "${THRIFT_PREFIX}/include") set(THRIFT_COMPILER "${THRIFT_PREFIX}/bin/thrift") set(THRIFT_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - -DCMAKE_INSTALL_PREFIX=${THRIFT_PREFIX} - -DCMAKE_INSTALL_RPATH=${THRIFT_PREFIX}/lib - -DBUILD_SHARED_LIBS=OFF - -DBUILD_TESTING=OFF - -DBUILD_EXAMPLES=OFF - -DBUILD_TUTORIALS=OFF - -DWITH_QT4=OFF - -DWITH_C_GLIB=OFF - -DWITH_JAVA=OFF - -DWITH_PYTHON=OFF - -DWITH_HASKELL=OFF - -DWITH_CPP=ON - -DWITH_STATIC_LIB=ON - -DWITH_LIBEVENT=OFF) + "-DCMAKE_INSTALL_PREFIX=${THRIFT_PREFIX}" + -DCMAKE_INSTALL_RPATH=${THRIFT_PREFIX}/lib + -DBUILD_SHARED_LIBS=OFF + -DBUILD_TESTING=OFF + -DBUILD_EXAMPLES=OFF + -DBUILD_TUTORIALS=OFF + -DWITH_QT4=OFF + -DWITH_C_GLIB=OFF + -DWITH_JAVA=OFF + -DWITH_PYTHON=OFF + -DWITH_HASKELL=OFF + -DWITH_CPP=ON + -DWITH_STATIC_LIB=ON + -DWITH_LIBEVENT=OFF) # Thrift also uses boost. Forward important boost settings if there were ones passed. if (DEFINED BOOST_ROOT) @@ -1444,7 +1559,7 @@ if (NOT THRIFT_FOUND) if (MSVC) set(WINFLEXBISON_VERSION 2.4.9) - set(WINFLEXBISON_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/winflexbison_ep/src/winflexbison_ep-install") + set(WINFLEXBISON_PREFIX "${THIRDPARTY_PREFIX}") ExternalProject_Add(winflexbison_ep URL https://github.com/lexxmark/winflexbison/releases/download/v.${WINFLEXBISON_VERSION}/win_flex_bison-${WINFLEXBISON_VERSION}.zip URL_HASH MD5=a2e979ea9928fbf8567e995e9c0df765 @@ -1524,9 +1639,9 @@ endif() # ARROW_HIVESERVER2 if (ARROW_USE_GLOG) if("${GLOG_HOME}" STREQUAL "") - set(GLOG_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/glog_ep-prefix/src/glog_ep") - set(GLOG_INCLUDE_DIR "${GLOG_BUILD_DIR}/include") - set(GLOG_STATIC_LIB "${GLOG_BUILD_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}glog${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(GLOG_PREFIX "${THIRDPARTY_PREFIX}") + set(GLOG_INCLUDE_DIR "${GLOG_PREFIX}/include") + set(GLOG_STATIC_LIB "${GLOG_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}glog${CMAKE_STATIC_LIBRARY_SUFFIX}") set(GLOG_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") set(GLOG_CMAKE_C_FLAGS "${EP_C_FLAGS} -fPIC") if (Threads::Threads) @@ -1542,13 +1657,13 @@ if (ARROW_USE_GLOG) endif() set(GLOG_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - -DCMAKE_INSTALL_PREFIX=${GLOG_BUILD_DIR} - -DBUILD_SHARED_LIBS=OFF - -DBUILD_TESTING=OFF - -DWITH_GFLAGS=OFF - -DCMAKE_CXX_FLAGS_${UPPERCASE_BUILD_TYPE}=${GLOG_CMAKE_CXX_FLAGS} - -DCMAKE_C_FLAGS_${UPPERCASE_BUILD_TYPE}=${GLOG_CMAKE_C_FLAGS} - -DCMAKE_CXX_FLAGS=${GLOG_CMAKE_CXX_FLAGS}) + "-DCMAKE_INSTALL_PREFIX=${GLOG_PREFIX}" + -DBUILD_SHARED_LIBS=OFF + -DBUILD_TESTING=OFF + -DWITH_GFLAGS=OFF + -DCMAKE_CXX_FLAGS_${UPPERCASE_BUILD_TYPE}=${GLOG_CMAKE_CXX_FLAGS} + -DCMAKE_C_FLAGS_${UPPERCASE_BUILD_TYPE}=${GLOG_CMAKE_C_FLAGS} + -DCMAKE_CXX_FLAGS=${GLOG_CMAKE_CXX_FLAGS}) message(STATUS "Glog version: ${GLOG_VERSION}") ExternalProject_Add(glog_ep URL ${GLOG_SOURCE_URL} diff --git a/cpp/src/arrow/flight/CMakeLists.txt b/cpp/src/arrow/flight/CMakeLists.txt index f59ea3c5..b8b4d8d 100644 --- a/cpp/src/arrow/flight/CMakeLists.txt +++ b/cpp/src/arrow/flight/CMakeLists.txt @@ -45,7 +45,7 @@ set(FLIGHT_GENERATED_PROTO_FILES "${CMAKE_CURRENT_BINARY_DIR}/Flight.grpc.pb.cc" "${CMAKE_CURRENT_BINARY_DIR}/Flight.grpc.pb.h") -set(PROTO_DEPENDS ${FLIGHT_PROTO} ${PROTOBUF_LIBRARY}) +set(PROTO_DEPENDS ${FLIGHT_PROTO} ${PROTOBUF_LIBRARY} grpc) add_custom_command( OUTPUT ${FLIGHT_GENERATED_PROTO_FILES} @@ -127,6 +127,7 @@ if (ARROW_BUILD_BENCHMARKS) perf.pb.cc) target_link_libraries(flight-perf-server arrow_flight_static + arrow_testing_static ${ARROW_FLIGHT_STATIC_LINK_LIBS} gflags_static ${GTEST_LIBRARY}) @@ -136,6 +137,7 @@ if (ARROW_BUILD_BENCHMARKS) perf.pb.cc) target_link_libraries(flight-benchmark arrow_flight_static + arrow_testing_static ${ARROW_FLIGHT_STATIC_LINK_LIBS} gflags_static ${GTEST_LIBRARY}) diff --git a/cpp/src/arrow/flight/perf-server.cc b/cpp/src/arrow/flight/perf-server.cc index ce2ec7b..add5442 100644 --- a/cpp/src/arrow/flight/perf-server.cc +++ b/cpp/src/arrow/flight/perf-server.cc @@ -69,6 +69,8 @@ class PerfDataStream : public FlightDataStream { batch_ = RecordBatch::Make(schema, batch_length_, arrays_); } + std::shared_ptr<Schema> schema() override { return schema_; } + Status Next(IpcPayload* payload) override { if (records_sent_ >= total_records_) { // Signal that iteration is over diff --git a/cpp/src/arrow/memory_pool.cc b/cpp/src/arrow/memory_pool.cc index 3e0366a..103771b 100644 --- a/cpp/src/arrow/memory_pool.cc +++ b/cpp/src/arrow/memory_pool.cc @@ -32,7 +32,7 @@ // Needed to support jemalloc 3 and 4 #define JEMALLOC_MANGLE // Explicitly link to our version of jemalloc -#include "jemalloc_ep/dist/include/jemalloc/jemalloc.h" +#include "arrow_thirdparty/include/jemalloc/jemalloc.h" #endif namespace arrow { diff --git a/cpp/thirdparty/versions.txt b/cpp/thirdparty/versions.txt index a2393b6..00cd31e 100644 --- a/cpp/thirdparty/versions.txt +++ b/cpp/thirdparty/versions.txt @@ -25,12 +25,13 @@ BOOST_VERSION=1.67.0 BROTLI_VERSION=v0.6.0 +CARES_VERSION=1.15.0 DOUBLE_CONVERSION_VERSION=v3.1.1 FLATBUFFERS_VERSION=02a7807dd8d26f5668ffbbec0360dc107bbfabd5 GBENCHMARK_VERSION=v1.4.1 GFLAGS_VERSION=v2.2.0 GLOG_VERSION=v0.3.5 -GRPC_VERSION=v1.14.1 +GRPC_VERSION=v1.18.0 GTEST_VERSION=1.8.0 JEMALLOC_VERSION=17c897976c60b0e6e4f4a365c751027244dada7a LZ4_VERSION=v1.7.5 @@ -50,6 +51,7 @@ ZSTD_VERSION=v1.3.7 DEPENDENCIES=( "ARROW_BOOST_URL boost-${BOOST_VERSION}.tar.gz https://dl.bintray.com/boostorg/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION//./_}.tar.gz" "ARROW_BROTLI_URL brotli-${BROTLI_VERSION}.tar.gz https://github.com/google/brotli/archive/${BROTLI_VERSION}.tar.gz" + "ARROW_CARES_URL cares-${CARES_VERSION}.tar.gz https://c-ares.haxx.se/download/c-ares-$CARES_VERSION.tar.gz" "ARROW_DOUBLE_CONVERSION_URL double-conversion-${DOUBLE_CONVERSION_VERSION}.tar.gz https://github.com/google/double-conversion/archive/${DOUBLE_CONVERSION_VERSION}.tar.gz" "ARROW_FLATBUFFERS_URL flatbuffers-${FLATBUFFERS_VERSION}.tar.gz https://github.com/google/flatbuffers/archive/${FLATBUFFERS_VERSION}.tar.gz" "ARROW_GBENCHMARK_URL gbenchmark-${GBENCHMARK_VERSION}.tar.gz https://github.com/google/benchmark/archive/${GBENCHMARK_VERSION}.tar.gz"