Feature Request P2
Status Update
Comments
da...@google.com <da...@google.com> #2
It would be very useful if there was a way to tell prefab to package all the exported targets provided by a CMake project.
What do you mean by exported? The reason it doesn't automatically package all CMake outputs is because it shouldn't be packaging tests.
sf...@google.com <sf...@google.com> #3
Exported as in:
Which is generally used for the subset of targets that are expected to be used by consumers (not tests or testonly libraries).
da...@google.com <da...@google.com> #4
That could potentially work as long as CMake exposes that info in a machine
readable format. Based on the docs it sounds like it would create a .cmake
file, which I think it would be a mistake to try to parse.
On Fri, Apr 8, 2022, 10:34 sfreilich <buganizer-system+sfreilich@google.com>
wrote:
readable format. Based on the docs it sounds like it would create a .cmake
file, which I think it would be a mistake to try to parse.
On Fri, Apr 8, 2022, 10:34 sfreilich <buganizer-system+sfreilich@google.com>
wrote:
sf...@google.com <sf...@google.com> #5
Yeah, CMake Server doesn't seem to output that information, which is frustrating.
sf...@google.com <sf...@google.com> #6
Being able to specify patterns of target names to include might also work. In the case of Abseil, I want modules for every CMake library named absl_*, and listing them individually is a pain.
Description
Prefab packaging requires specifying each CMake target. This works when a project creates a single monolithic library target, but not when the project is broken down into granular libraries. Currently, this is an obstacle for me when trying to add Prefab packaging for Abseil for AndroidX, since the Abseil build is broken down into lots of granular libraries.
(And that project has specifically rejected the idea of having a monolitic libabsl library:https://github.com/abseil/abseil-cpp/issues/367 )
It would be very useful if there was a way to tell prefab to package all the exported targets provided by a CMake project.