Skip to content
  • Brad King's avatar
    INTERFACE_SOURCES: Fix per-config link libs on multi-config generators · 6c5d4522
    Brad King authored
    In multi-config generators we memoize the computed set of source files
    for a target to avoid repeating the computation when the set does not
    depend on the configuration.  We already track whether generator
    expressions in `SOURCES` or `INTERFACE_SOURCES` reference the
    configuration (`$<CONFIG:...>`).  However, we previously forgot to track
    whether the set of libraries whose `INTERFACE_SOURCES` are considered
    depends on the configuration.  This caused multi-config generators to
    use the first configuration's set of sources for all configurations
    in cases such as
    
        target_link_libraries(tgt PRIVATE $<$<CONFIG:Debug>:iface_debug>)
    
    where the `iface_debug` target has `INTERFACE_SOURCES`.
    
    Fix this by also tracking config-dependence of the list of libraries for
    evaluation of the list of source files.
    
    Fixes: #20683
    6c5d4522