kou commented on code in PR #48250:
URL: https://github.com/apache/arrow/pull/48250#discussion_r2572723570
##########
cpp/cmake_modules/ThirdpartyToolchain.cmake:
##########
@@ -2852,52 +2852,24 @@ function(build_re2)
set(RE2_VENDORED
TRUE
PARENT_SCOPE)
- set(RE2_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/re2_fc-install")
- set(RE2_PREFIX
- "${RE2_PREFIX}"
- PARENT_SCOPE)
fetchcontent_declare(re2
URL ${RE2_SOURCE_URL}
- URL_HASH "SHA256=${ARROW_RE2_BUILD_SHA256_CHECKSUM}")
+ URL_HASH "SHA256=${ARROW_RE2_BUILD_SHA256_CHECKSUM}"
+ EXCLUDE_FROM_ALL)
Review Comment:
Could you use `${FC_DECLARE_COMMON_OPTIONS}` instead like
https://github.com/apache/arrow/blob/5aa7dd15b0235ed93fcdad20cd8f6f07b89de265/cpp/cmake_modules/ThirdpartyToolchain.cmake#L1770-L1774
?
##########
cpp/cmake_modules/ThirdpartyToolchain.cmake:
##########
@@ -2852,52 +2852,24 @@ function(build_re2)
set(RE2_VENDORED
TRUE
PARENT_SCOPE)
- set(RE2_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/re2_fc-install")
- set(RE2_PREFIX
- "${RE2_PREFIX}"
- PARENT_SCOPE)
fetchcontent_declare(re2
URL ${RE2_SOURCE_URL}
- URL_HASH "SHA256=${ARROW_RE2_BUILD_SHA256_CHECKSUM}")
+ URL_HASH "SHA256=${ARROW_RE2_BUILD_SHA256_CHECKSUM}"
+ EXCLUDE_FROM_ALL)
prepare_fetchcontent()
# Unity build causes some build errors
set(CMAKE_UNITY_BUILD OFF)
- fetchcontent_makeavailable(re2)
-
- # This custom target ensures re2 is built before we install
- add_custom_target(re2_built DEPENDS re2::re2)
-
- add_custom_command(OUTPUT "${re2_BINARY_DIR}/cmake_install.cmake.saved"
- COMMAND ${CMAKE_COMMAND} -E copy_if_different
- "${re2_BINARY_DIR}/cmake_install.cmake"
- "${re2_BINARY_DIR}/cmake_install.cmake.saved"
- COMMAND ${CMAKE_COMMAND} -E echo
- "# RE2 install disabled to prevent double
installation with Arrow"
- > "${re2_BINARY_DIR}/cmake_install.cmake"
- DEPENDS re2_built
- COMMENT "Disabling RE2 install to prevent double
installation"
- VERBATIM)
- add_custom_target(re2_install_disabled ALL
- DEPENDS "${re2_BINARY_DIR}/cmake_install.cmake.saved")
+ # Disable install rules for RE2 so it is not installed on our Linux-packages.
+ set(CMAKE_SKIP_INSTALL_RULES ON)
Review Comment:
Can we use
https://github.com/apache/arrow/blob/5aa7dd15b0235ed93fcdad20cd8f6f07b89de265/cpp/cmake_modules/ThirdpartyToolchain.cmake#L1818-L1820
instead of this?
##########
cpp/cmake_modules/ThirdpartyToolchain.cmake:
##########
@@ -3265,289 +3192,125 @@ macro(build_grpc)
PC_PACKAGE_NAMES
libcares)
- message(STATUS "Building gRPC from source")
+ list(APPEND CMAKE_MESSAGE_INDENT "gRPC: ")
+ message(STATUS "Building gRPC from source using FetchContent")
+ set(GRPC_VENDORED
+ TRUE
+ PARENT_SCOPE)
- set(GRPC_BUILD_DIR
"${CMAKE_CURRENT_BINARY_DIR}/grpc_ep-prefix/src/grpc_ep-build")
- set(GRPC_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/grpc_ep-install")
- set(GRPC_HOME "${GRPC_PREFIX}")
- set(GRPC_INCLUDE_DIR "${GRPC_PREFIX}/include")
+ fetchcontent_declare(grpc
+ URL ${GRPC_SOURCE_URL}
+ URL_HASH "SHA256=${ARROW_GRPC_BUILD_SHA256_CHECKSUM}")
- 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_STATIC_LIBRARY_GRPCPP_REFLECTION
-
"${GRPC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}grpc++_reflection${CMAKE_STATIC_LIBRARY_SUFFIX}"
- )
- set(GRPC_STATIC_LIBRARY_UPB
-
"${GRPC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}upb${CMAKE_STATIC_LIBRARY_SUFFIX}"
- )
- set(GRPC_CPP_PLUGIN
"${GRPC_PREFIX}/bin/grpc_cpp_plugin${CMAKE_EXECUTABLE_SUFFIX}")
+ prepare_fetchcontent()
- set(GRPC_CMAKE_PREFIX)
+ if(PROTOBUF_VENDORED)
+ set(_gRPC_PROTOBUF_LIBRARIES
+ "protobuf::libprotobuf"
+ CACHE STRING "" FORCE)
Review Comment:
Can we use normal variable not cache variable for all gRPC related variables?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]