Skip to content

Filter built ABIs so the library compiles when building for select ABIs #284

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

Merged
merged 1 commit into from
Apr 11, 2024

Conversation

j-piasecki
Copy link
Collaborator

Details

The library is always being built for all available ABIs even when the app it's being used in is only built for one. This causes it to fail on linking stage if React Native is built from source, since relevant .so files from React Native core don't exist. This PR adds relevant filters.

Manual Tests

Run yarn build:android from the example app.

Copy link
Collaborator

@tomekzaw tomekzaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was a tough one 😄

@j-piasecki j-piasecki merged commit c2951fb into main Apr 11, 2024
@j-piasecki j-piasecki deleted the @jpiasecki/fix-android-build-one-abi branch April 11, 2024 11:04
satya164 added a commit to callstack/react-native-builder-bob that referenced this pull request May 16, 2024
<!-- Please provide enough information so that others can review your
pull request. -->
<!-- Keep pull requests small and focused on a single change. -->

### Summary

In the native template `abiFilters` is missing from
`externalNativeBuild` block. This means that the library would be built
for every available ABI when building the application, even if the
application itself is being built for a specific one. This is not that
problematic (besides taking more time) when using React Native aar, but
when building RN from source the core `.so` files will be built for that
specific ABI. In case the library depends on a `.so` file, it would fail
at the linking stage due to missing `.so` for the remaining ABIs.

### Test plan
See
- Expensify/App#40102
- Expensify/react-native-live-markdown#284
- https://github.com/margelo/react-native-quick-sqlite/pull/41

---------

Co-authored-by: Satyajit Sahoo <satyajit.happy@gmail.com>
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.

2 participants