mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-07-30 17:36:08 +08: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
21 lines
735 B
ReStructuredText
21 lines
735 B
ReStructuredText
TEST_INCLUDE_FILE
|
|
-----------------
|
|
|
|
.. deprecated:: 3.10
|
|
|
|
Use the :prop_dir:`TEST_INCLUDE_FILES` directory property instead, which
|
|
supports specifying multiple files.
|
|
|
|
The ``TEST_INCLUDE_FILE`` directory property specifies a CMake script that is
|
|
included and processed when ``ctest`` is run on the directory.
|
|
|
|
If both the ``TEST_INCLUDE_FILE`` and :prop_dir:`TEST_INCLUDE_FILES` directory
|
|
properties are set, the script specified in ``TEST_INCLUDE_FILE`` is included
|
|
first, followed by the scripts listed in ``TEST_INCLUDE_FILES``.
|
|
|
|
.. versionadded:: 4.5
|
|
|
|
The include path may use :manual:`generator expressions
|
|
<cmake-generator-expressions(7)>`, with the same per-configuration semantics
|
|
as :prop_dir:`TEST_INCLUDE_FILES`.
|