mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-09-25 04:09:36 +03:00
The TEST_INCLUDE_FILE(S) directory properties were written verbatim into CTestTestfile.cmake, so a $<CONFIG>-parameterized include path could not select a per-configuration script and failed at ctest time. Evaluate generator expressions per include entry in cmLocalGenerator::GenerateTestFiles(): * Entries without a generator expression are emitted unchanged. * On single-config generators a genex entry is evaluated once and emitted as one unconditional include. * On multi-config generators it is evaluated for every configuration; a config-independent result collapses to one unconditional include, otherwise each non-empty per-config result is guarded by a CTEST_CONFIGURATION_TYPE branch, mirroring add_test(). An entry that evaluates to empty adds no include. Promote cmScriptGenerator::CreateConfigTest to a public static helper so the include guards reuse the exact add_test() config-test encoding; the instance overloads now delegate to it. Evaluated results are quoted via cmScriptGenerator::Quote, while plain entries keep their raw serialization. Fixes: #27941
20 lines
831 B
CMake
20 lines
831 B
CMake
# ctest -C Debug: the Debug per-config include and the Debug-only conditional
|
|
# include both run; the Release per-config include does not.
|
|
if(NOT actual_stdout MATCHES "plain_test")
|
|
string(APPEND RunCMake_TEST_FAILED "plain_test missing with -C Debug\n")
|
|
endif()
|
|
if(NOT actual_stdout MATCHES "indep_test")
|
|
string(APPEND RunCMake_TEST_FAILED "indep_test missing with -C Debug\n")
|
|
endif()
|
|
if(NOT actual_stdout MATCHES "config_Debug")
|
|
string(APPEND RunCMake_TEST_FAILED "config_Debug missing with -C Debug\n")
|
|
endif()
|
|
if(NOT actual_stdout MATCHES "dbgonly_test")
|
|
string(APPEND RunCMake_TEST_FAILED "dbgonly_test missing with -C Debug\n")
|
|
endif()
|
|
if(RunCMake_GENERATOR_IS_MULTI_CONFIG)
|
|
if(actual_stdout MATCHES "config_Release")
|
|
string(APPEND RunCMake_TEST_FAILED "config_Release ran under -C Debug\n")
|
|
endif()
|
|
endif()
|