Skip to content

Commit 2fea818

Browse files
rokkou
authored andcommitted
ARROW-14708: [C++] Adding missing abseil dependencies to enable static flight build
Closes #11889 from rok/ARROW-14708 Authored-by: Rok <[email protected]> Signed-off-by: Sutou Kouhei <[email protected]>
1 parent 5772d65 commit 2fea818

File tree

4 files changed

+40
-12
lines changed

4 files changed

+40
-12
lines changed

cpp/cmake_modules/ThirdpartyToolchain.cmake

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3412,6 +3412,14 @@ macro(build_absl_once)
34123412
absl::raw_logging_internal
34133413
absl::strings
34143414
absl::time_zone)
3415+
if(APPLE)
3416+
# This is due to upstream absl::cctz issue
3417+
# https://github.com/abseil/abseil-cpp/issues/283
3418+
find_library(CoreFoundation CoreFoundation)
3419+
set_property(TARGET absl::time
3420+
APPEND
3421+
PROPERTY INTERFACE_LINK_LIBRARIES ${CoreFoundation})
3422+
endif()
34153423
set_property(TARGET absl::type_traits PROPERTY INTERFACE_LINK_LIBRARIES absl::config)
34163424
set_property(TARGET absl::utility
34173425
PROPERTY INTERFACE_LINK_LIBRARIES absl::base_internal absl::config
@@ -3584,13 +3592,28 @@ macro(build_grpc)
35843592
INTERFACE_INCLUDE_DIRECTORIES "${GRPC_INCLUDE_DIR}")
35853593

35863594
set(GRPC_GPR_ABSL_LIBRARIES
3595+
absl::bad_optional_access
35873596
absl::base
3588-
absl::statusor
3589-
absl::status
35903597
absl::cord
3598+
absl::debugging_internal
3599+
absl::demangle_internal
3600+
absl::graphcycles_internal
3601+
absl::int128
3602+
absl::malloc_internal
3603+
absl::raw_logging_internal
3604+
absl::spinlock_wait
3605+
absl::stacktrace
3606+
absl::status
3607+
absl::statusor
35913608
absl::strings
3609+
absl::strings_internal
3610+
absl::str_format_internal
3611+
absl::symbolize
35923612
absl::synchronization
3593-
absl::time)
3613+
absl::throw_delegate
3614+
absl::time
3615+
absl::time_zone)
3616+
35943617
add_library(gRPC::gpr STATIC IMPORTED)
35953618
set_target_properties(gRPC::gpr
35963619
PROPERTIES IMPORTED_LOCATION "${GRPC_STATIC_LIBRARY_GPR}"

cpp/examples/arrow/CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,12 @@ if(ARROW_FLIGHT)
4242
message(FATAL_ERROR "Statically built gRPC requires ARROW_BUILD_STATIC=ON")
4343
else()
4444
set(FLIGHT_EXAMPLES_LINK_LIBS arrow_flight_static)
45-
set(GRPC_REFLECTION_LINK_LIBS -Wl,--whole-archive gRPC::grpc++_reflection
46-
-Wl,--no-whole-archive)
45+
if(APPLE)
46+
set(GRPC_REFLECTION_LINK_LIBS -Wl,-force_load gRPC::grpc++_reflection)
47+
else()
48+
set(GRPC_REFLECTION_LINK_LIBS -Wl,--whole-archive gRPC::grpc++_reflection
49+
-Wl,--no-whole-archive)
50+
endif()
4751
endif()
4852

4953
set(FLIGHT_EXAMPLE_GENERATED_PROTO_FILES

cpp/src/arrow/ArrowConfig.cmake.in

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ set(ARROW_LIBRARY_PATH_SUFFIXES "@ARROW_LIBRARY_PATH_SUFFIXES@")
3838
set(ARROW_INCLUDE_PATH_SUFFIXES "@ARROW_INCLUDE_PATH_SUFFIXES@")
3939
set(ARROW_SYSTEM_DEPENDENCIES "@ARROW_SYSTEM_DEPENDENCIES@")
4040
set(ARROW_BUNDLED_STATIC_LIBS "@ARROW_BUNDLED_STATIC_LIBS@")
41+
set(ARROW_STATIC_INSTALL_INTERFACE_LIBS "@ARROW_STATIC_INSTALL_INTERFACE_LIBS@")
4142

4243
include("${CMAKE_CURRENT_LIST_DIR}/ArrowOptions.cmake")
4344

@@ -79,11 +80,12 @@ if(NOT (TARGET arrow_shared OR TARGET arrow_static))
7980
PROPERTIES
8081
IMPORTED_LOCATION
8182
"${arrow_lib_dir}/${CMAKE_STATIC_LIBRARY_PREFIX}arrow_bundled_dependencies${CMAKE_STATIC_LIBRARY_SUFFIX}"
82-
)
83-
83+
INTERFACE_LINK_LIBRARIES
84+
"${ARROW_STATIC_INSTALL_INTERFACE_LIBS}"
85+
)
8486
get_property(arrow_static_interface_link_libraries
85-
TARGET arrow_static
86-
PROPERTY INTERFACE_LINK_LIBRARIES)
87+
TARGET arrow_static
88+
PROPERTY INTERFACE_LINK_LIBRARIES)
8789
set_target_properties(
8890
arrow_static PROPERTIES INTERFACE_LINK_LIBRARIES
8991
"${arrow_static_interface_link_libraries};arrow_bundled_dependencies")

cpp/src/arrow/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -563,10 +563,9 @@ add_arrow_lib(arrow
563563
${ARROW_SHARED_PRIVATE_LINK_LIBS}
564564
STATIC_LINK_LIBS
565565
${ARROW_STATIC_LINK_LIBS}
566+
${ARROW_STATIC_INSTALL_INTERFACE_LIBS}
566567
SHARED_INSTALL_INTERFACE_LIBS
567-
${ARROW_SHARED_INSTALL_INTERFACE_LIBS}
568-
STATIC_INSTALL_INTERFACE_LIBS
569-
${ARROW_STATIC_INSTALL_INTERFACE_LIBS})
568+
${ARROW_SHARED_INSTALL_INTERFACE_LIBS})
570569

571570
add_dependencies(arrow ${ARROW_LIBRARIES})
572571

0 commit comments

Comments
 (0)