• Stephen Kelly's avatar
    Create make rules for INTERFACE_LIBRARY targets. · b04f3b9a
    Stephen Kelly authored and Brad King's avatar Brad King committed
    The result is that the depends of the target are created.
     add_library(somelib foo.cpp)
     add_library(anotherlib EXCLUDE_FROM_ALL foo.cpp)
     add_library(extra EXCLUDE_FROM_ALL foo.cpp)
     target_link_libraries(anotherlib extra)
     add_library(iface INTERFACE)
     target_link_libraries(iface INTERFACE anotherlib)
    Executing 'make iface' will result in the anotherlib and extra targets
    being made.
    Adding a regular executable to the INTERFACE of an INTERFACE_LIBRARY
    will not result in the executable being built with 'make iface' because
    of the logic in cmComputeTargetDepends::AddTargetDepend.
    So far, this is implemented only for the Makefile generator. Other
    generators will follow if this feature is possible for them.
    Make INTERFACE_LIBRARY targets part of the all target by default.
    Test this by building the all target and making the expected library
cmComputeTargetDepends.cxx 20.6 KB