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]

Reply via email to