Skip to content
  • Brad King's avatar
    Add INTERFACE libraries to generated buildsystem if they have SOURCES · 43919131
    Brad King authored
    INTERFACE libraries were created with the intention of collecting usage
    requirements for use by other targets via `target_link_libraries`.
    Therefore they were not allowed to have SOURCES and were not included in
    the generated buildsystem.  In practice, this has become limiting:
    
    * Header-only libraries do have sources, they just do not compile.
      Developers should be able to edit those sources (the header files)
      in their IDE.
    
    * Header-only libraries may need to generate some of their header
      files via custom commands.
    
    Some projects work around these limitations by pairing each interface
    library with an `add_custom_target` that makes the header files and
    custom commands appear in the generated buildsystem and in IDEs.
    
    Lift such limitations by allowing INTERFACE libraries to have SOURCES.
    For those with sources, add a corresponding build target to the
    generated buildsystem.
    
    Fixes: #19145
    43919131