Skip to content
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

Add absl. #1061

Closed
wants to merge 1 commit into from
Closed

Add absl. #1061

wants to merge 1 commit into from

Conversation

DanAlbert
Copy link
Member

absl doesn't provide an AAR, and the AGP DSL for creating one can't describe the package correctly (it can't seem to find the libraries at all, and even if it could, it can't describe a single header directory shared by multiple libraries). Without that support, the only remaining option is to vendor it into the tree and include it directly in any CMake project that uses it. The downside of doing it this was is that absl will be rebuilt for every module rather than shared among them.

An alternative would be importing android-base for AOSP, but that's a rather large porting task.

Another alternative would be doing none of this and writing our own, much simpler subsets of those libraries. Mostly we want CHECK, LOG, and DISALLOW_COPY_AND_ASSIGN. libbase's logging.cpp has quite a few dependencies on other parts of libbase (file, parseint, strings, threads) and it quickly becomes a large project to import, but maybe those are only needed by APIs we don't actually care about.

absl doesn't provide an AAR, and the AGP DSL for creating one can't
describe the package correctly (it can't seem to find the libraries at
all, and even if it could, it can't describe a single header directory
shared by multiple libraries). Without that support, the only remaining
option is to vendor it into the tree and include it directly in any
CMake project that uses it. The downside of doing it this was is that
absl will be rebuilt for every module rather than shared among them.

An alternative would be importing android-base for AOSP, but that's a
rather large porting task.

Another alternative would be doing none of this and writing our own,
much simpler subsets of those libraries. Mostly we want `CHECK`, `LOG`,
and `DISALLOW_COPY_AND_ASSIGN`. libbase's logging.cpp has quite a few
dependencies on other parts of libbase (file, parseint, strings,
threads) and it quickly becomes a large project to import, but maybe
those are only needed by APIs we don't actually care about.
@DanAlbert
Copy link
Member Author

Closing in favor of #1062.

@DanAlbert DanAlbert closed this Jun 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant