Skip to content

cmGeneratorExpressionNode: implement `COMPILE_ONLY` genex

Ben Boeckel requested to merge ben.boeckel/cmake:compile-only-genex into master

This generator expression is the inverse of LINK_ONLY and only coveys usage requirements for the purposes of compilation. Its intended use is to avoid needing to export targets that do not have link usage requirements (e.g., header-only libraries) when used by another target.

It will also be used to represent private usage requirements on exported C++ module-containing targets in the future.

Eventually there should be logic to collapse nesting of $<COMPILE_ONLY> and $<LINK_ONLY> when generating instances of either. A TODO is left in the code for this case.

See: #15415

Merge request reports