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 914a6e2 ARROW-9255: [C++] Use CMake to build bundled Protobuf with
CMake >= 3.7
914a6e2 is described below
commit 914a6e213d2ef9502210ed74d8ba06d62c97f528
Author: Sutou Kouhei <[email protected]>
AuthorDate: Sun Jun 28 13:47:43 2020 +0900
ARROW-9255: [C++] Use CMake to build bundled Protobuf with CMake >= 3.7
Closes #7564 from kou/cpp-protobuf-cmake
Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
---
cpp/cmake_modules/ThirdpartyToolchain.cmake | 58 ++++++++++++++++++++---------
1 file changed, 40 insertions(+), 18 deletions(-)
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake
b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index 30650e0..e117692 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -1239,29 +1239,51 @@ macro(build_protobuf)
PROTOC_STATIC_LIB
"${PROTOBUF_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}protoc${CMAKE_STATIC_LIBRARY_SUFFIX}"
)
+ set(Protobuf_PROTOC_LIBRARY "${PROTOC_STATIC_LIB}")
set(PROTOBUF_COMPILER "${PROTOBUF_PREFIX}/bin/protoc")
- set(PROTOBUF_CONFIGURE_ARGS
- "AR=${CMAKE_AR}"
- "RANLIB=${CMAKE_RANLIB}"
- "CC=${CMAKE_C_COMPILER}"
- "CXX=${CMAKE_CXX_COMPILER}"
- "--disable-shared"
- "--prefix=${PROTOBUF_PREFIX}"
- "CFLAGS=${EP_C_FLAGS}"
- "CXXFLAGS=${EP_CXX_FLAGS}")
- set(PROTOBUF_BUILD_COMMAND ${MAKE} ${MAKE_BUILD_ARGS})
- if(CMAKE_OSX_SYSROOT)
- list(APPEND PROTOBUF_CONFIGURE_ARGS "SDKROOT=${CMAKE_OSX_SYSROOT}")
- list(APPEND PROTOBUF_BUILD_COMMAND "SDKROOT=${CMAKE_OSX_SYSROOT}")
+
+ if(CMAKE_VERSION VERSION_LESS 3.7)
+ set(PROTOBUF_CONFIGURE_ARGS
+ "AR=${CMAKE_AR}"
+ "RANLIB=${CMAKE_RANLIB}"
+ "CC=${CMAKE_C_COMPILER}"
+ "CXX=${CMAKE_CXX_COMPILER}"
+ "--disable-shared"
+ "--prefix=${PROTOBUF_PREFIX}"
+ "CFLAGS=${EP_C_FLAGS}"
+ "CXXFLAGS=${EP_CXX_FLAGS}")
+ set(PROTOBUF_BUILD_COMMAND ${MAKE} ${MAKE_BUILD_ARGS})
+ if(CMAKE_OSX_SYSROOT)
+ list(APPEND PROTOBUF_CONFIGURE_ARGS "SDKROOT=${CMAKE_OSX_SYSROOT}")
+ list(APPEND PROTOBUF_BUILD_COMMAND "SDKROOT=${CMAKE_OSX_SYSROOT}")
+ endif()
+ set(PROTOBUF_EXTERNAL_PROJECT_ADD_ARGS
+ CONFIGURE_COMMAND
+ "./configure"
+ ${PROTOBUF_CONFIGURE_ARGS}
+ BUILD_COMMAND
+ ${PROTOBUF_BUILD_COMMAND})
+ else()
+ set(PROTOBUF_CMAKE_ARGS
+ ${EP_COMMON_CMAKE_ARGS}
+ -DBUILD_SHARED_LIBS=OFF
+ -DCMAKE_INSTALL_LIBDIR=lib
+ "-DCMAKE_INSTALL_PREFIX=${PROTOBUF_PREFIX}"
+ -Dprotobuf_BUILD_TESTS=OFF
+ -Dprotobuf_DEBUG_POSTFIX=)
+ if(ZLIB_ROOT)
+ list(APPEND PROTOBUF_CMAKE_ARGS "-DZLIB_ROOT=${ZLIB_ROOT}")
+ endif()
+ set(PROTOBUF_EXTERNAL_PROJECT_ADD_ARGS CMAKE_ARGS ${PROTOBUF_CMAKE_ARGS}
SOURCE_SUBDIR
+ "cmake")
endif()
externalproject_add(protobuf_ep
- CONFIGURE_COMMAND "./configure"
${PROTOBUF_CONFIGURE_ARGS}
- BUILD_COMMAND ${PROTOBUF_BUILD_COMMAND}
- BUILD_IN_SOURCE 1
- URL ${PROTOBUF_SOURCE_URL}
+ ${PROTOBUF_EXTERNAL_PROJECT_ADD_ARGS}
BUILD_BYPRODUCTS "${PROTOBUF_STATIC_LIB}"
"${PROTOBUF_COMPILER}"
- ${EP_LOG_OPTIONS})
+ ${EP_LOG_OPTIONS}
+ BUILD_IN_SOURCE 1
+ URL ${PROTOBUF_SOURCE_URL})
file(MAKE_DIRECTORY "${PROTOBUF_INCLUDE_DIR}")