mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 02:08:27 +08: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
|