rapids-cmake icon indicating copy to clipboard operation
rapids-cmake copied to clipboard

[FEA] have `BUILD` and `INSTALL` export sets understand static linking

Open robertmaynard opened this issue 3 years ago • 0 comments

Is your feature request related to a problem? Please describe. Currently the build and install export sets don't understand that static linking means that PRIVATE dependencies are required to consume an exported library.

This generally means that all projects using rapids-cmake don't properly export dependencies when built statically, since they only track dependencies that are required to use the library when built 'shared' ( .so )

Describe the solution you'd like The optimal solution would be to have CMake do the following:

  • Associate imported targets with the find_package call that created them
  • Allow projects to generate the collection of find_package calls need by the link rules of the exported targets

If this becomes unreasonable to implement in CMake itself, we can do the following in rapids-cmake:

  • Add the PUBLIC and PRIVATE keywords to rapids_find_package and rapids_cpm_find.
  • Extend rapids_export with a INCLUDE_PRIVATE flag that will be set when building statically.

robertmaynard avatar Mar 24 '22 18:03 robertmaynard