mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-30 18:29:37 -06:00
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
10 lines
212 B
C++
10 lines
212 B
C++
#if !defined(CFG_DEBUG) && !defined(CFG_OTHER)
|
|
# error "Neither CFG_DEBUG or CFG_OTHER is defined."
|
|
#endif
|
|
#ifdef CFG_DEBUG
|
|
# include "main_debug.cpp"
|
|
#endif
|
|
#ifdef CFG_OTHER
|
|
# include "main_other.cpp"
|
|
#endif
|