cmake/Help/prop_dir/TEST_INCLUDE_FILE.rst
Daksh Mamodiya 63316be823 TEST_INCLUDE_FILES: Evaluate generator expressions in include paths
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
2026-07-23 18:58:04 +02:00

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`.