Sfoglia il codice sorgente

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.
Matthew Woehlke 8 anni fa
parent
commit
ed5bde30f7

+ 2 - 1
Help/manual/cmake-properties.7.rst

@@ -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

+ 3 - 1
Help/prop_dir/TEST_INCLUDE_FILE.rst

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

+ 7 - 0
Help/prop_dir/TEST_INCLUDE_FILES.rst

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

+ 7 - 0
Help/release/dev/test_include_files.rst

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

+ 11 - 0
Source/cmLocalGenerator.cxx

@@ -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();