You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ko...@apache.org on 2020/06/13 04:37:23 UTC
[arrow] branch master updated: ARROW-9119: [C++] Add support for
building with system static gRPC
This is an automated email from the ASF dual-hosted git repository.
kou 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 0c73ea6 ARROW-9119: [C++] Add support for building with system static gRPC
0c73ea6 is described below
commit 0c73ea63de706e80daa48b0f580374c918ef1655
Author: Sutou Kouhei <ko...@clear-code.com>
AuthorDate: Sat Jun 13 13:36:50 2020 +0900
ARROW-9119: [C++] Add support for building with system static gRPC
Closes #7422 from kou/cpp-grpc-static
Authored-by: Sutou Kouhei <ko...@clear-code.com>
Signed-off-by: Sutou Kouhei <ko...@clear-code.com>
---
cpp/cmake_modules/DefineOptions.cmake | 8 ++-
cpp/cmake_modules/FindgRPCAlt.cmake | 102 +++++++++++++++++++++++++++------
dev/tasks/python-wheels/osx-build.sh | 1 +
dev/tasks/python-wheels/travis.osx.yml | 4 --
4 files changed, 91 insertions(+), 24 deletions(-)
diff --git a/cpp/cmake_modules/DefineOptions.cmake b/cpp/cmake_modules/DefineOptions.cmake
index 02e1c5b..f916781 100644
--- a/cpp/cmake_modules/DefineOptions.cmake
+++ b/cpp/cmake_modules/DefineOptions.cmake
@@ -277,12 +277,14 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
define_option(ARROW_BOOST_USE_SHARED "Rely on boost shared libraries where relevant" ON)
- define_option(ARROW_PROTOBUF_USE_SHARED
- "Rely on Protocol Buffers shared libraries where relevant" ON)
-
define_option(ARROW_GFLAGS_USE_SHARED "Rely on GFlags shared libraries where relevant"
ON)
+ define_option(ARROW_GRPC_USE_SHARED "Rely on gRPC shared libraries where relevant" ON)
+
+ define_option(ARROW_PROTOBUF_USE_SHARED
+ "Rely on Protocol Buffers shared libraries where relevant" ON)
+
define_option(ARROW_ZSTD_USE_SHARED "Rely on zstd shared libraries where relevant" ON)
define_option(ARROW_WITH_BACKTRACE "Build with backtrace support" ON)
diff --git a/cpp/cmake_modules/FindgRPCAlt.cmake b/cpp/cmake_modules/FindgRPCAlt.cmake
index 5e381df..a860147 100644
--- a/cpp/cmake_modules/FindgRPCAlt.cmake
+++ b/cpp/cmake_modules/FindgRPCAlt.cmake
@@ -12,24 +12,74 @@
# limitations under the License.
unset(GRPC_ALT_VERSION)
+
+if(ARROW_GRPC_USE_SHARED)
+ set(GRPC_GPR_LIB_NAMES)
+ set(GRPC_GRPC_LIB_NAMES)
+ set(GRPC_GRPCPP_LIB_NAMES)
+ set(GRPC_ADDRESS_SORTING_LIB_NAMES)
+ set(GRPC_UPB_LIB_NAMES)
+ if(CMAKE_IMPORT_LIBRARY_SUFFIX)
+ list(APPEND GRPC_GPR_LIB_NAMES
+ "${CMAKE_IMPORT_LIBRARY_PREFIX}gpr${CMAKE_IMPORT_LIBRARY_SUFFIX}")
+ list(APPEND GRPC_GRPC_LIB_NAMES
+ "${CMAKE_IMPORT_LIBRARY_PREFIX}grpc${CMAKE_IMPORT_LIBRARY_SUFFIX}")
+ list(APPEND GRPC_GRPCPP_LIB_NAMES
+ "${CMAKE_IMPORT_LIBRARY_PREFIX}grpc++${CMAKE_IMPORT_LIBRARY_SUFFIX}")
+ list(
+ APPEND GRPC_ADDRESS_SORTING_LIB_NAMES
+ "${CMAKE_IMPORT_LIBRARY_PREFIX}address_sorting${CMAKE_IMPORT_LIBRARY_SUFFIX}"
+ )
+ list(APPEND GRPC_UPB_LIB_NAMES
+ "${CMAKE_IMPORT_LIBRARY_PREFIX}upb${CMAKE_IMPORT_LIBRARY_SUFFIX}")
+ endif()
+ list(APPEND GRPC_GPR_LIB_NAMES
+ "${CMAKE_SHARED_LIBRARY_PREFIX}gpr${CMAKE_SHARED_LIBRARY_SUFFIX}")
+ list(APPEND GRPC_GRPC_LIB_NAMES
+ "${CMAKE_SHARED_LIBRARY_PREFIX}grpc${CMAKE_SHARED_LIBRARY_SUFFIX}")
+ list(APPEND GRPC_GRPCPP_LIB_NAMES
+ "${CMAKE_SHARED_LIBRARY_PREFIX}grpc++${CMAKE_SHARED_LIBRARY_SUFFIX}")
+ list(
+ APPEND GRPC_ADDRESS_SORTING_LIB_NAMES
+ "${CMAKE_SHARED_LIBRARY_PREFIX}address_sorting${CMAKE_SHARED_LIBRARY_SUFFIX}")
+ list(APPEND GRPC_UPB_LIB_NAMES
+ "${CMAKE_SHARED_LIBRARY_PREFIX}upb${CMAKE_SHARED_LIBRARY_SUFFIX}")
+else()
+ set(GRPC_GPR_LIB_NAMES
+ "${CMAKE_STATIC_LIBRARY_PREFIX}gpr${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(GRPC_GRPC_LIB_NAMES
+ "${CMAKE_STATIC_LIBRARY_PREFIX}grpc${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(GRPC_GRPCPP_LIB_NAMES
+ "${CMAKE_STATIC_LIBRARY_PREFIX}grpc++${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(GRPC_ADDRESS_SORTING_LIB_NAMES
+ "${CMAKE_STATIC_LIBRARY_PREFIX}address_sorting${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(GRPC_UPB_LIB_NAMES
+ "${CMAKE_STATIC_LIBRARY_PREFIX}upb${CMAKE_STATIC_LIBRARY_SUFFIX}")
+endif()
+
if(gRPC_ROOT)
- find_library(GRPC_GPR_LIB gpr
+ find_library(GRPC_GPR_LIB
+ NAMES ${GRPC_GPR_LIB_NAMES}
PATHS ${gRPC_ROOT}
PATH_SUFFIXES ${LIB_PATH_SUFFIXES}
NO_DEFAULT_PATH)
- find_library(GRPC_GRPC_LIB grpc
+ find_library(GRPC_GRPC_LIB
+ NAMES ${GRPC_GRPC_LIB_NAMES}
PATHS ${gRPC_ROOT}
PATH_SUFFIXES ${LIB_PATH_SUFFIXES}
NO_DEFAULT_PATH)
- find_library(GRPC_GRPCPP_LIB grpc++
+ find_library(GRPC_GRPCPP_LIB
+ NAMES ${GRPC_GRPCPP_LIB_NAMES}
PATHS ${gRPC_ROOT}
PATH_SUFFIXES ${LIB_PATH_SUFFIXES}
NO_DEFAULT_PATH)
- find_library(GRPC_ADDRESS_SORTING_LIB address_sorting
+ find_library(GRPC_ADDRESS_SORTING_LIB
+ NAMES ${GRPC_ADDRESS_SORTING_LIB_NAMES}
PATHS ${gRPC_ROOT}
PATH_SUFFIXES ${LIB_PATH_SUFFIXES}
NO_DEFAULT_PATH)
- find_library(GRPC_UPB_LIB upb
+ find_library(GRPC_UPB_LIB
+ NAMES ${GRPC_UPB_LIB_NAMES}
PATHS ${gRPC_ROOT}
PATH_SUFFIXES ${LIB_PATH_SUFFIXES}
NO_DEFAULT_PATH)
@@ -49,23 +99,28 @@ else()
list(APPEND GRPC_PC_LIBRARY_DIRS "${GRPC_PC_LIBDIR}")
message(STATUS "${GRPC_PC_LIBRARY_DIRS}")
- find_library(GRPC_GPR_LIB gpr
+ find_library(GRPC_GPR_LIB
+ NAMES ${GRPC_GPR_LIB_NAMES}
PATHS ${GRPC_PC_LIBRARY_DIRS}
PATH_SUFFIXES ${LIB_PATH_SUFFIXES}
NO_DEFAULT_PATH)
- find_library(GRPC_GRPC_LIB grpc
+ find_library(GRPC_GRPC_LIB
+ NAMES ${GRPC_GRPC_LIB_NAMES}
PATHS ${GRPC_PC_LIBRARY_DIRS}
PATH_SUFFIXES ${LIB_PATH_SUFFIXES}
NO_DEFAULT_PATH)
- find_library(GRPC_GRPCPP_LIB grpc++
+ find_library(GRPC_GRPCPP_LIB
+ NAMES ${GRPC_GRPCPP_LIB_NAMES}
PATHS ${GRPC_PC_LIBRARY_DIRS}
PATH_SUFFIXES ${LIB_PATH_SUFFIXES}
NO_DEFAULT_PATH)
- find_library(GRPC_ADDRESS_SORTING_LIB address_sorting
+ find_library(GRPC_ADDRESS_SORTING_LIB
+ NAMES ${GRPC_ADDRESS_SORTING_LIB_NAMES}
PATHS ${GRPC_PC_LIBRARY_DIRS}
PATH_SUFFIXES ${LIB_PATH_SUFFIXES}
NO_DEFAULT_PATH)
- find_library(GRPC_UPB_LIB upb
+ find_library(GRPC_UPB_LIB
+ NAMES ${GRPC_UPB_LIB_NAMES}
PATHS ${GRPC_PC_LIBRARY_DIRS}
PATH_SUFFIXES ${LIB_PATH_SUFFIXES}
NO_DEFAULT_PATH)
@@ -74,12 +129,21 @@ else()
NO_DEFAULT_PATH
PATH_SUFFIXES "bin")
else()
- find_library(GRPC_GPR_LIB gpr PATH_SUFFIXES ${LIB_PATH_SUFFIXES})
- find_library(GRPC_GRPC_LIB grpc PATH_SUFFIXES ${LIB_PATH_SUFFIXES})
- find_library(GRPC_GRPCPP_LIB grpc++ PATH_SUFFIXES ${LIB_PATH_SUFFIXES})
- find_library(GRPC_ADDRESS_SORTING_LIB address_sorting
+ find_library(GRPC_GPR_LIB
+ NAMES ${GRPC_GPR_LIB_NAMES}
+ PATH_SUFFIXES ${LIB_PATH_SUFFIXES})
+ find_library(GRPC_GRPC_LIB
+ NAMES ${GRPC_GRPC_LIB_NAMES}
+ PATH_SUFFIXES ${LIB_PATH_SUFFIXES})
+ find_library(GRPC_GRPCPP_LIB
+ NAMES ${GRPC_GRPCPP_LIB_NAMES}
+ PATH_SUFFIXES ${LIB_PATH_SUFFIXES})
+ find_library(GRPC_ADDRESS_SORTING_LIB
+ NAMES ${GRPC_ADDRESS_SORTING_LIB_NAMES}
+ PATH_SUFFIXES ${LIB_PATH_SUFFIXES})
+ find_library(GRPC_UPB_LIB
+ NAMES ${GRPC_UPB_LIB_NAMES}
PATH_SUFFIXES ${LIB_PATH_SUFFIXES})
- find_library(GRPC_UPB_LIB upb PATH_SUFFIXES ${LIB_PATH_SUFFIXES})
find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin PATH_SUFFIXES "bin")
find_path(GRPC_INCLUDE_DIR NAMES grpc/grpc.h PATH_SUFFIXES ${INCLUDE_PATH_SUFFIXES})
endif()
@@ -106,8 +170,12 @@ if(gRPCAlt_FOUND)
add_library(gRPC::grpc UNKNOWN IMPORTED)
set_target_properties(gRPC::grpc
- PROPERTIES IMPORTED_LOCATION "${GRPC_GRPC_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${GRPC_INCLUDE_DIR}")
+ PROPERTIES IMPORTED_LOCATION
+ "${GRPC_GRPC_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES
+ "${GRPC_INCLUDE_DIR}"
+ INTERFACE_LINK_LIBRARIES
+ "OpenSSL::SSL;OpenSSL::Crypto")
set(_GRPCPP_LINK_LIBRARIES "gRPC::grpc;gRPC::gpr")
diff --git a/dev/tasks/python-wheels/osx-build.sh b/dev/tasks/python-wheels/osx-build.sh
index a23dd3e..677b04f 100755
--- a/dev/tasks/python-wheels/osx-build.sh
+++ b/dev/tasks/python-wheels/osx-build.sh
@@ -70,6 +70,7 @@ function build_wheel {
-DARROW_HDFS=ON \
-DARROW_FLIGHT=ON \
-DARROW_GANDIVA=${BUILD_ARROW_GANDIVA} \
+ -DARROW_GRPC_USE_SHARED=OFF \
-DARROW_JEMALLOC=ON \
-DARROW_ORC=OFF \
-DARROW_PARQUET=ON \
diff --git a/dev/tasks/python-wheels/travis.osx.yml b/dev/tasks/python-wheels/travis.osx.yml
index 7e0d32a..be6072d 100644
--- a/dev/tasks/python-wheels/travis.osx.yml
+++ b/dev/tasks/python-wheels/travis.osx.yml
@@ -45,10 +45,6 @@ before_install:
bison
flex
- # remove shared grpc libraries installed by brew to make sure
- # we are linked against the static ones.
- - rm -f /usr/local/opt/grpc/lib/*.dylib
-
# source utilities required for wheel builds
- export CONFIG_PATH=`pwd`/arrow/dev/tasks/python-wheels/osx-build.sh
- source multibuild/common_utils.sh