Skip to content
  • Stephen Kelly's avatar
    Introduce the INTERFACE_LINK_LIBRARIES property. · d0a76ea0
    Stephen Kelly authored
    This property replaces the properties which
    match (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?, and is enabled
    for IMPORTED targets, and for non-IMPORTED targets only with a policy.
    
    For static libraries, the INTERFACE_LINK_LIBRARIES property is
    also used as the source of transitive usage requirements content.
    Static libraries still require users to link to all entries in
    their LINK_LIBRARIES, but usage requirements such as INCLUDE_DIRECTORIES
    COMPILE_DEFINITIONS and COMPILE_OPTIONS can be restricted to only
    certain interface libraries.
    
    Because the INTERFACE_LINK_LIBRARIES property is populated unconditionally,
    we need to compare the evaluated result of it with the link implementation
    to determine whether to issue the policy warning for static libraries. For
    shared libraries, the policy warning is issued if the contents of
    the INTERFACE_LINK_LIBRARIES property differs from the contents of the
    relevant config-specific old LINK_INTERFACE_LIBRARIES property.
    d0a76ea0