ARROW-14157: [C++] Refactor Abseil to its own macro#11261
ARROW-14157: [C++] Refactor Abseil to its own macro#11261coryan wants to merge 3 commits intoapache:masterfrom coryan:ARROW-14157-refactor-abseil-dependency
Conversation
We will need Abseil for the GCS C++ SDK (aka `google-cloud-cpp`), so split it to its own macro. Use the `abseil_ep` target as a sentinel to make the macro idempotent. Abseil creates many (over 100) libraries, each relatively small. These libraries depend on each other. Document how to extract this information using a shell command-line for future updates. We will not need all these libraries, but it is easier to describe all their dependencies that pick and choose which ones are used.
|
|
|
|
| "absl::config;absl::type_traits") | ||
| set_target_properties(absl::base | ||
| PROPERTIES INTERFACE_LINK_LIBRARIES | ||
| "absl::atomic_hook;absl::base_internal;absl::config;absl::core_headers;absl::dynamic_annotations;absl::log_severity;absl::raw_logging_internal;absl::spinlock_wait;absl::type_traits" |
There was a problem hiding this comment.
This list is very long.
How about using set_property(TARGET absl:... PROPERTY INTERFACE_LINK_LIBRARIES absl::... absl:: ...) https://cmake.org/cmake/help/latest/command/set_property.html#command:set_property ?
There was a problem hiding this comment.
Thanks, that is a good idea. Let me test that locally while the other builds run.
|
@github-actions crossbow submit -g nightly |
|
Revision: 1d83c28 Submitted crossbow builds: ursacomputing/crossbow @ actions-858 |
| set(ABSL_BUILD_BYPRODUCTS) | ||
| set(ABSL_LIBRARIES) | ||
|
|
||
| # Abseil produces the following libraries, each is fairly small, but there |
There was a problem hiding this comment.
For the record, since most of the declarations below could be generated by a script, perhaps they could be factored out into a separate CMake inclusion file? That would also reduce clutter in this file.
We will need Abseil for the GCS C++ SDK (aka `google-cloud-cpp`), so split it to its own macro. Use the `abseil_ep` target as a sentinel to make the macro idempotent. Abseil creates many (over 100) libraries, each relatively small. These libraries depend on each other. Document how to extract this information using a shell command-line for future updates. We will not need all these libraries, but it is easier to describe all their dependencies that pick and choose which ones are used. Closes apache#11261 from coryan/ARROW-14157-refactor-abseil-dependency Authored-by: Carlos O'Ryan <[email protected]> Signed-off-by: Sutou Kouhei <[email protected]>
We will need Abseil for the GCS C++ SDK (aka
google-cloud-cpp), sosplit it to its own macro. Use the
abseil_eptarget as a sentinel tomake the macro idempotent.
Abseil creates many (over 100) libraries, each relatively small. These
libraries depend on each other. Document how to extract this information
using a shell command-line for future updates. We will not need all
these libraries, but it is easier to describe all their dependencies
that pick and choose which ones are used.