google / prefab

Prefab is a tool for generating build system integrations for prebuilt C/C++ libraries.
https://google.github.io/prefab/
Apache License 2.0
210 stars 32 forks source link

[FR] allow generation even when libraries are missing #146

Closed DanAlbert closed 3 years ago

DanAlbert commented 3 years ago

Feature was submitted in e6fe0aa17f88a5c5d34e75db0ec1cdffe2f99d6c, just filling out the FR here for visibility.

The Android library detection requires the library to be present on disk before prefab is run. The directory contents are used to determine whether the library is static or shared.

This is a problem for Android Studio because it needs to run the CMake configuration step for all modules before it can build any module (gradle sync requires the information from the configuration step to provide most IDE features), so prefab needs to run for every module up front. If one module exposes a prefab package to another, the libraries will not have been built before prefab runs, and prefab fails.