google / google/prefab

[FR] Model runtime-only dependencies

Open
#159 9 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Kotlin
Stars
236
Forks
33
PR merge metrics
No merged PRs in 30d

Description

**Is your feature request related to a problem? Please describe.**
I want to package 2 shared libraries that depend on each other (`LIB_A` -> `LIB_B`).
Right now, this can be modelled by adding `":LIB_B"` to `export_libraries` of the `module.json` of `LIB_A`.

But the generated prefab `xxxConfig.cmake` contains:
```cmake
set_target_properties(LIB_A
INTERFACE_LINK_LIBRARIES "LIB_B"
)
```

This last line is unwanted: it causes every target that links to `LIB_A` to also link to `LIB_B`.

**Describe the solution you'd like**
Add a field to `module.json` that lists the dependencies, such that the Android build systems knows what extra modules are required.

**Describe alternatives you've considered**
Add the extra dependencies to `export_libraries` in `module.json`, but this results in an unwanted link.

**Additional context**
I came across this when modelling SDL_image: `libpng.so` depends on `libz.so`.
When needing `libpng.so`, you should not need to link to `libz.so` yourself.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.