Add TEST_INCLUDE_FILES

Add new directory property TEST_INCLUDE_FILES. This supersedes
TEST_INCLUDE_FILE, though the latter is of course retained for
compatibility.

Basically, this is a list rather than a single file. This allows the
feature to be used by generic utilities without conflicting with local
use.
This commit is contained in:
Matthew Woehlke 2017-07-07 11:20:08 -04:00
parent e40e8f5c42
commit ed5bde30f7
5 changed files with 30 additions and 2 deletions

View File

@ -83,7 +83,7 @@ Properties on Directories
/prop_dir/RULE_LAUNCH_LINK
/prop_dir/SOURCE_DIR
/prop_dir/SUBDIRECTORIES
/prop_dir/TEST_INCLUDE_FILE
/prop_dir/TEST_INCLUDE_FILES
/prop_dir/VARIABLES
/prop_dir/VS_GLOBAL_SECTION_POST_section
/prop_dir/VS_GLOBAL_SECTION_PRE_section
@ -435,6 +435,7 @@ Deprecated Properties on Directories
:maxdepth: 1
/prop_dir/COMPILE_DEFINITIONS_CONFIG
/prop_dir/TEST_INCLUDE_FILE
Deprecated Properties on Targets

View File

@ -1,7 +1,9 @@
TEST_INCLUDE_FILE
-----------------
Deprecated. Use :prop_dir:`TEST_INCLUDE_FILES` instead.
A cmake file that will be included when ctest is run.
If you specify TEST_INCLUDE_FILE, that file will be included and
If you specify ``TEST_INCLUDE_FILE``, that file will be included and
processed when ctest is run on the directory.

View File

@ -0,0 +1,7 @@
TEST_INCLUDE_FILES
------------------
A list of cmake files that will be included when ctest is run.
If you specify ``TEST_INCLUDE_FILES``, those files will be included and
processed when ctest is run on the directory.

View File

@ -0,0 +1,7 @@
test_include_files
------------------
* A :prop_dir:`TEST_INCLUDE_FILES` directory property was added to
list any number of files to be included when running tests with
:manual:`ctest(1)`. This generalizes the :prop_dir:`TEST_INCLUDE_FILE`
property.

View File

@ -259,6 +259,17 @@ void cmLocalGenerator::GenerateTestFiles()
fout << "include(\"" << testIncludeFile << "\")" << std::endl;
}
const char* testIncludeFiles =
this->Makefile->GetProperty("TEST_INCLUDE_FILES");
if (testIncludeFiles) {
std::vector<std::string> includesList;
cmSystemTools::ExpandListArgument(testIncludeFiles, includesList);
for (std::vector<std::string>::const_iterator i = includesList.begin();
i != includesList.end(); ++i) {
fout << "include(\"" << *i << "\")" << std::endl;
}
}
// Ask each test generator to write its code.
std::vector<cmTestGenerator*> const& testers =
this->Makefile->GetTestGenerators();