Make INTERFACE libraries first-class buildsystem targets
When first introduced, INTERFACE libraries were meant only for collections of usage requirements. Since then several more use cases have come up, such as header-only libraries. We should make INTERFACE libraries first-class buildsystem targets that can be built and installed, e.g. with custom commands and PUBLIC_HEADER files. The remaining distinction from other library types is that they have no compiled/linked artifacts.
Tasks include:
-
Teach generators to produce buildsystem targets for INTERFACE libraries (e.g. make my_iface
) (!5078 (merged)) -
Remove whitelist restriction on setting properties (!5078 (merged)) -
Enable headers installation(Done in #15234 (closed)) -
Allow sources to be added (!5078 (merged)) -
Allow custom commands (!5078 (merged)) -
Implement #18608 (closed) (!5078 (merged))
Edited by Brad King