New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARROW-14157: [C++] Refactor Abseil to its own macro #11261
ARROW-14157: [C++] Refactor Abseil to its own macro #11261
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, that is a good idea. Let me test that locally while the other builds run.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
@github-actions crossbow submit -g nightly |
Revision: 1d83c28 Submitted crossbow builds: ursacomputing/crossbow @ actions-858 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 <coryan@google.com> Signed-off-by: Sutou Kouhei <kou@clear-code.com>
We will need Abseil for the GCS C++ SDK (aka
google-cloud-cpp
), sosplit it to its own macro. Use the
abseil_ep
target 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.