Skip to content
  • Brad King's avatar
    CMP0022: Plain target_link_libraries must populate link interface · ef10b87c
    Brad King authored
    The CMP0022 NEW behavior is that the INTERFACE_LINK_LIBRARIES property
    exactly defines the link interface.  The plain target_link_libraries
    signature says linking is transitive by default, so it should populate
    the property.
    
    Teach the target_link_libraries plain signature to populate the
    INTERFACE_LINK_LIBRARIES regardless of the CMP0022 setting.  Refactor
    the cmTarget::ComputeLinkInterface checks that warn when the policy is
    not set to compare the new property to either the explicitly set old
    link interface properties or the link implementation fallback for all
    linkable target types, not just static libraries.
    
    This fixes a regression in 2.8.12.0 that caused target_link_libraries to
    not implement transitive linking in the plain signature once the policy
    CMP0022 is set to NEW.
    ef10b87c