浏览代码

Merge topic 'prop-GENERATED-visibility'

071f0d6f98 CMP0163: Make GENERATED source file property globally visible
00c6573d86 cmSetPropertyCommand: Refactor checks for CMP0118
e04af1e9c2 cmGetSorceFilePropertyCommand: Simplify string comparisons

Acked-by: Kitware Robot <[email protected]>
Merge-request: !9308
Brad King 1 年之前
父节点
当前提交
f852f33c69
共有 100 个文件被更改,包括 2128 次插入64 次删除
  1. 1 0
      Help/manual/cmake-policies.7.rst
  2. 6 0
      Help/policy/CMP0118.rst
  3. 37 0
      Help/policy/CMP0163.rst
  4. 5 0
      Help/prop_sf/GENERATED.rst
  5. 1 1
      Help/prop_tgt/SOURCES.rst
  6. 6 0
      Help/release/dev/prop-GENERATED-visibility.rst
  7. 56 0
      Source/cmGetPropertyCommand.cxx
  8. 43 8
      Source/cmGetSourceFilePropertyCommand.cxx
  9. 4 0
      Source/cmPolicies.h
  10. 68 46
      Source/cmSetPropertyCommand.cxx
  11. 20 9
      Source/cmSourceFile.cxx
  12. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1-result.txt
  13. 10 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1-stderr.txt
  14. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1.cmake
  15. 42 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test10-stderr.txt
  16. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test10.cmake
  17. 55 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test11-stderr.txt
  18. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test11.cmake
  19. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test12-result.txt
  20. 51 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test12-stderr.txt
  21. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test12.cmake
  22. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test13-result.txt
  23. 64 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test13-stderr.txt
  24. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test13.cmake
  25. 42 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test14-stderr.txt
  26. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test14.cmake
  27. 55 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test15-stderr.txt
  28. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test15.cmake
  29. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test16-result.txt
  30. 27 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test16-stderr.txt
  31. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test16.cmake
  32. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1b-result.txt
  33. 10 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1b-stderr.txt
  34. 6 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1b.cmake
  35. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2-stderr.txt
  36. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2.cmake
  37. 3 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2a.cmake
  38. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2b-stderr.txt
  39. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2b.cmake
  40. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2c-stderr.txt
  41. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2c.cmake
  42. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2d-stderr.txt
  43. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2d.cmake
  44. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test3-result.txt
  45. 79 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test3-stderr.txt
  46. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test3.cmake
  47. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test3b-result.txt
  48. 79 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test3b-stderr.txt
  49. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test3b.cmake
  50. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test4-result.txt
  51. 167 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test4-stderr.txt
  52. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test4.cmake
  53. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test4b-result.txt
  54. 135 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test4b-stderr.txt
  55. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test4b.cmake
  56. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test5-result.txt
  57. 126 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test5-stderr.txt
  58. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test5.cmake
  59. 36 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test6-stderr.txt
  60. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test6.cmake
  61. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test7-result.txt
  62. 74 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test7-stderr.txt
  63. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test7.cmake
  64. 36 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test8-stderr.txt
  65. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test8.cmake
  66. 36 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test8b-stderr.txt
  67. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test8b.cmake
  68. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9-result.txt
  69. 74 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9-stderr.txt
  70. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9.cmake
  71. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9b-result.txt
  72. 61 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9b-stderr.txt
  73. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9b.cmake
  74. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1-result.txt
  75. 10 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1-stderr.txt
  76. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1.cmake
  77. 42 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test10-stderr.txt
  78. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test10.cmake
  79. 55 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test11-stderr.txt
  80. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test11.cmake
  81. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test12-result.txt
  82. 51 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test12-stderr.txt
  83. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test12.cmake
  84. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test13-result.txt
  85. 64 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test13-stderr.txt
  86. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test13.cmake
  87. 42 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test14-stderr.txt
  88. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test14.cmake
  89. 55 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test15-stderr.txt
  90. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test15.cmake
  91. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test16-result.txt
  92. 27 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test16-stderr.txt
  93. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test16.cmake
  94. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1b-result.txt
  95. 10 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1b-stderr.txt
  96. 6 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1b.cmake
  97. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test2-stderr.txt
  98. 7 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test2.cmake
  99. 3 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test2a.cmake
  100. 1 0
      Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test2b-stderr.txt

+ 1 - 0
Help/manual/cmake-policies.7.rst

@@ -57,6 +57,7 @@ Policies Introduced by CMake 3.30
 .. toctree::
    :maxdepth: 1
 
+   CMP0163: The GENERATED source file property is now visible in all directories. </policy/CMP0163>
    CMP0162: Visual Studio generators add UseDebugLibraries indicators by default. </policy/CMP0162>
 
 Policies Introduced by CMake 3.29

+ 6 - 0
Help/policy/CMP0118.rst

@@ -24,6 +24,12 @@ The ``NEW`` behavior of this policy is to allow generated files to be used
 in other directories without explicitly turning on the ``GENERATED`` property
 for those directories.
 
+.. versionadded:: 3.30
+
+  Policy :policy:`CMP0163` additionally makes the :prop_sf:`GENERATED` source
+  file property visible to :command:`get_property` and
+  :command:`get_source_file_property` calls in other directories.
+
 .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.20
 .. |WARNS_OR_DOES_NOT_WARN| replace::
    warns about setting the ``GENERATED`` property to a non-boolean value

+ 37 - 0
Help/policy/CMP0163.rst

@@ -0,0 +1,37 @@
+CMP0163
+-------
+
+.. versionadded:: 3.30
+
+The :prop_sf:`GENERATED` source file property is now visible in all directories.
+
+In CMake 3.29 and below, the :prop_sf:`GENERATED` source file property,
+like other source file properties, was scoped in every directory separately.
+Although policy :policy:`CMP0118` allowed sources marked ``GENERATED`` in one
+directory to be used in other directories without manually marking them as
+``GENERATED`` again, the ``GENERATED`` property was still not visible to
+:command:`get_property` and :command:`get_source_file_property` calls.
+
+Whether or not a source file is generated is an all-or-nothing global
+property of the source: a source is either generated or it is not.
+CMake 3.30 and above prefer to treat the :prop_sf:`GENERATED` source file
+property as globally scoped.  Once it is set in one directory, it is
+immediately visible to :command:`get_property` and
+:command:`get_source_file_property` calls in other directories.
+This policy provides compatibility for projects that have not been
+updated for this behavior.
+
+The ``OLD`` behavior of this policy is for the ``GENERATED`` source file
+property to be visible only in the directories in which it is set.  The
+``NEW`` behavior of this policy is to allow the ``GENERATED`` source file
+property to be visible in all directories once set in any directory.
+Furthermore, the ``NEW`` behavior of this policy implies the ``NEW``
+behavior of policy :policy:`CMP0118`: the ``GENERATED`` property may
+be set only to boolean values, and may not be turned off once turned on.
+
+.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.30
+.. |WARNS_OR_DOES_NOT_WARN| replace::
+   does *not* warn
+.. include:: STANDARD_ADVICE.txt
+
+.. include:: DEPRECATED.txt

+ 5 - 0
Help/prop_sf/GENERATED.rst

@@ -10,6 +10,11 @@ Is this source file generated as part of the build or CMake process.
    Additionally, it may now be set only to boolean values, and may not be
    turned off once turned on.  See policy :policy:`CMP0118`.
 
+.. versionchanged:: 3.30
+   Whether or not a source file is generated is an all-or-nothing global
+   property of the source.  Consequently, the ``GENERATED`` source file
+   property is now visible in all directories.  See policy :policy:`CMP0163`.
+
 Tells the internal CMake engine that a source file is generated by an outside
 process such as another build step, or the execution of CMake itself.
 This information is then used to exempt the file from any existence or

+ 1 - 1
Help/prop_tgt/SOURCES.rst

@@ -18,7 +18,7 @@ evaluate to an absolute path. Not doing so is considered undefined behavior.
 Paths that are for files generated by the build will be treated
 as relative to the build directory of the target, if the path is not
 already specified as an absolute path.  Note that whether a file is seen as
-generated may be affected by policy :policy:`CMP0118`.
+generated may be affected by policies :policy:`CMP0118` and :policy:`CMP0163`.
 
 If a path does not start with a generator expression, is not an
 absolute path and is not a generated file, it will be treated as relative to

+ 6 - 0
Help/release/dev/prop-GENERATED-visibility.rst

@@ -0,0 +1,6 @@
+prop-GENERATED-visibility
+-------------------------
+
+* The :prop_sf:`GENERATED` source file property is now visible in all
+  directories.  See policy :policy:`CMP0163`.  Policy :policy:`CMP0118`'s
+  documentation has been revised to describe its actual effects.

+ 56 - 0
Source/cmGetPropertyCommand.cxx

@@ -3,6 +3,10 @@
 #include "cmGetPropertyCommand.h"
 
 #include <cstddef>
+#include <functional>
+
+#include <cm/string_view>
+#include <cmext/string_view>
 
 #include "cmExecutionStatus.h"
 #include "cmGlobalGenerator.h"
@@ -267,6 +271,38 @@ bool cmGetPropertyCommand(std::vector<std::string> const& args,
   return true;
 }
 
+namespace GetPropertyCommand {
+bool GetSourceFilePropertyGENERATED(
+  const std::string& name, cmMakefile& mf,
+  const std::function<bool(bool)>& storeResult)
+{
+  // Globally set as generated?
+  // Note: If the given "name" only contains a filename or a relative path
+  //       the file's location is ambiguous. In general, one would expect
+  //       it in the source-directory, because that is where source files
+  //       are located normally. However, generated files are normally
+  //       generated in the build-directory. Therefore, we first check for
+  //       a generated file in the build-directory before we check for a
+  //       generated file in the source-directory.
+  {
+    auto file =
+      cmSystemTools::CollapseFullPath(name, mf.GetCurrentBinaryDirectory());
+    if (mf.GetGlobalGenerator()->IsGeneratedFile(file)) {
+      return storeResult(true);
+    }
+  }
+  {
+    auto file =
+      cmSystemTools::CollapseFullPath(name, mf.GetCurrentSourceDirectory());
+    if (mf.GetGlobalGenerator()->IsGeneratedFile(file)) {
+      return storeResult(true);
+    }
+  }
+  // Skip checking the traditional/local property.
+  return storeResult(false);
+}
+}
+
 namespace {
 
 // Implementation of result storage.
@@ -405,12 +441,32 @@ bool HandleSourceMode(cmExecutionStatus& status, const std::string& name,
     return false;
   }
 
+  // Special handling for GENERATED property.
+  // Note: Only, if CMP0163 is set to NEW!
+  if (propertyName == "GENERATED"_s) {
+    auto& mf = status.GetMakefile();
+    auto cmp0163 = directory_makefile.GetPolicyStatus(cmPolicies::CMP0163);
+    bool const cmp0163new =
+      cmp0163 != cmPolicies::OLD && cmp0163 != cmPolicies::WARN;
+    if (cmp0163new) {
+      return GetPropertyCommand::GetSourceFilePropertyGENERATED(
+        name, mf, [infoType, &variable, &mf](bool isGenerated) -> bool {
+          // Set the value on the original Makefile scope, not the scope of the
+          // requested directory.
+          return StoreResult(infoType, mf, variable,
+                             (isGenerated) ? cmValue("1") : cmValue("0"));
+        });
+    }
+  }
+
   // Get the source file.
   const std::string source_file_absolute_path =
     SetPropertyCommand::MakeSourceFilePathAbsoluteIfNeeded(
       status, name, source_file_paths_should_be_absolute);
   if (cmSourceFile* sf =
         directory_makefile.GetOrCreateSource(source_file_absolute_path)) {
+    // Set the value on the original Makefile scope, not the scope of the
+    // requested directory.
     return StoreResult(infoType, status.GetMakefile(), variable,
                        sf->GetPropertyForUser(propertyName));
   }

+ 43 - 8
Source/cmGetSourceFilePropertyCommand.cxx

@@ -2,12 +2,24 @@
    file Copyright.txt or https://cmake.org/licensing for details.  */
 #include "cmGetSourceFilePropertyCommand.h"
 
+#include <functional>
+
+#include <cm/string_view>
+#include <cmext/string_view>
+
 #include "cmExecutionStatus.h"
 #include "cmMakefile.h"
+#include "cmPolicies.h"
 #include "cmSetPropertyCommand.h"
 #include "cmSourceFile.h"
 #include "cmValue.h"
 
+namespace GetPropertyCommand {
+bool GetSourceFilePropertyGENERATED(
+  const std::string& name, cmMakefile& mf,
+  const std::function<bool(bool)>& storeResult);
+}
+
 bool cmGetSourceFilePropertyCommand(std::vector<std::string> const& args,
                                     cmExecutionStatus& status)
 {
@@ -23,11 +35,11 @@ bool cmGetSourceFilePropertyCommand(std::vector<std::string> const& args,
   bool source_file_target_option_enabled = false;
 
   int property_arg_index = 2;
-  if (args[2] == "DIRECTORY" && args_size == 5) {
+  if (args[2] == "DIRECTORY"_s && args_size == 5) {
     property_arg_index = 4;
     source_file_directory_option_enabled = true;
     source_file_directories.push_back(args[3]);
-  } else if (args[2] == "TARGET_DIRECTORY" && args_size == 5) {
+  } else if (args[2] == "TARGET_DIRECTORY"_s && args_size == 5) {
     property_arg_index = 4;
     source_file_target_option_enabled = true;
     source_file_target_directories.push_back(args[3]);
@@ -44,23 +56,44 @@ bool cmGetSourceFilePropertyCommand(std::vector<std::string> const& args,
   }
 
   std::string const& var = args[0];
+  std::string const& propName = args[property_arg_index];
   bool source_file_paths_should_be_absolute =
     source_file_directory_option_enabled || source_file_target_option_enabled;
+  cmMakefile& directory_makefile = *source_file_directory_makefiles[0];
+
+  // Special handling for GENERATED property.
+  // Note: Only, if CMP0163 is set to NEW!
+  if (propName == "GENERATED"_s) {
+    auto& mf = status.GetMakefile();
+    auto cmp0163 = directory_makefile.GetPolicyStatus(cmPolicies::CMP0163);
+    bool const cmp0163new =
+      cmp0163 != cmPolicies::OLD && cmp0163 != cmPolicies::WARN;
+    if (cmp0163new) {
+      return GetPropertyCommand::GetSourceFilePropertyGENERATED(
+        args[1], mf, [&var, &mf](bool isGenerated) -> bool {
+          // Set the value on the original Makefile scope, not the scope of the
+          // requested directory.
+          mf.AddDefinition(var, (isGenerated) ? cmValue("1") : cmValue("0"));
+          return true;
+        });
+    }
+  }
+
+  // Get the source file.
   std::string const file =
     SetPropertyCommand::MakeSourceFilePathAbsoluteIfNeeded(
       status, args[1], source_file_paths_should_be_absolute);
-  cmMakefile& mf = *source_file_directory_makefiles[0];
-  cmSourceFile* sf = mf.GetSource(file);
+  cmSourceFile* sf = directory_makefile.GetSource(file);
 
   // for the location we must create a source file first
-  if (!sf && args[property_arg_index] == "LOCATION") {
-    sf = mf.CreateSource(file);
+  if (!sf && propName == "LOCATION"_s) {
+    sf = directory_makefile.CreateSource(file);
   }
 
   if (sf) {
     cmValue prop = nullptr;
-    if (!args[property_arg_index].empty()) {
-      prop = sf->GetPropertyForUser(args[property_arg_index]);
+    if (!propName.empty()) {
+      prop = sf->GetPropertyForUser(propName);
     }
     if (prop) {
       // Set the value on the original Makefile scope, not the scope of the
@@ -70,6 +103,8 @@ bool cmGetSourceFilePropertyCommand(std::vector<std::string> const& args,
     }
   }
 
+  // Set the value on the original Makefile scope, not the scope of the
+  // requested directory.
   status.GetMakefile().AddDefinition(var, "NOTFOUND");
   return true;
 }

+ 4 - 0
Source/cmPolicies.h

@@ -497,6 +497,10 @@ class cmMakefile;
   SELECT(                                                                     \
     POLICY, CMP0162,                                                          \
     "Visual Studio generators add UseDebugLibraries indicators by default.",  \
+    3, 30, 0, cmPolicies::WARN)                                               \
+  SELECT(                                                                     \
+    POLICY, CMP0163,                                                          \
+    "The GENERATED source file property is now visible in all directories.",  \
     3, 30, 0, cmPolicies::WARN)
 
 #define CM_SELECT_ID(F, A1, A2, A3, A4, A5, A6) F(A1)

+ 68 - 46
Source/cmSetPropertyCommand.cxx

@@ -6,6 +6,8 @@
 #include <sstream>
 #include <unordered_set>
 
+#include <cm/string_view>
+
 #include "cmExecutionStatus.h"
 #include "cmGlobalGenerator.h"
 #include "cmInstalledFile.h"
@@ -281,12 +283,60 @@ bool HandleAndValidateSourceFilePropertyGENERATED(
   cmSourceFile* sf, std::string const& propertyValue, PropertyOp op)
 {
   const auto& mf = *sf->GetLocation().GetMakefile();
-  auto policyStatus = mf.GetPolicyStatus(cmPolicies::CMP0118);
 
-  const bool policyWARN = policyStatus == cmPolicies::WARN;
-  const bool policyNEW = policyStatus != cmPolicies::OLD && !policyWARN;
+  auto isProblematic = [&mf, &propertyValue,
+                        op](cm::string_view policy) -> bool {
+    if (!cmIsOn(propertyValue) && !cmIsOff(propertyValue)) {
+      mf.IssueMessage(
+        MessageType::AUTHOR_ERROR,
+        cmStrCat("Policy ", policy,
+                 " is set to NEW and the following non-boolean value given "
+                 "for property 'GENERATED' is therefore not allowed:\n",
+                 propertyValue, "\nReplace it with a boolean value!\n"));
+      return true;
+    }
+    if (cmIsOff(propertyValue)) {
+      mf.IssueMessage(
+        MessageType::AUTHOR_ERROR,
+        cmStrCat("Unsetting the 'GENERATED' property is not allowed under ",
+                 policy, "!\n"));
+      return true;
+    }
+    if (op == PropertyOp::Append || op == PropertyOp::AppendAsString) {
+      mf.IssueMessage(
+        MessageType::AUTHOR_ERROR,
+        cmStrCat(
+          "Policy ", policy,
+          " is set to NEW and appending to the 'GENERATED' property is "
+          "therefore not allowed. Only setting it to \"1\" is allowed!\n"));
+      return true;
+    }
+    return false;
+  };
+
+  const auto cmp0163PolicyStatus = mf.GetPolicyStatus(cmPolicies::CMP0163);
+  const bool cmp0163PolicyNEW = cmp0163PolicyStatus != cmPolicies::OLD &&
+    cmp0163PolicyStatus != cmPolicies::WARN;
+  if (cmp0163PolicyNEW) {
+    if (!isProblematic("CMP0163")) {
+      sf->MarkAsGenerated();
+    }
+    return true;
+  }
+
+  const auto cmp0118PolicyStatus = mf.GetPolicyStatus(cmPolicies::CMP0118);
+  const bool cmp0118PolicyWARN = cmp0118PolicyStatus == cmPolicies::WARN;
+  const bool cmp0118PolicyNEW =
+    cmp0118PolicyStatus != cmPolicies::OLD && !cmp0118PolicyWARN;
+
+  if (cmp0118PolicyNEW) {
+    if (!isProblematic("CMP0118")) {
+      sf->MarkAsGenerated();
+    }
+    return true;
+  }
 
-  if (policyWARN) {
+  if (cmp0118PolicyWARN) {
     if (!cmIsOn(propertyValue) && !cmIsOff(propertyValue)) {
       mf.IssueMessage(
         MessageType::AUTHOR_WARNING,
@@ -312,50 +362,22 @@ bool HandleAndValidateSourceFilePropertyGENERATED(
                  "\nAppending to property 'GENERATED' will not be allowed "
                  "under policy CMP0118!\n"));
     }
-  } else if (policyNEW) {
-    if (!cmIsOn(propertyValue) && !cmIsOff(propertyValue)) {
-      mf.IssueMessage(
-        MessageType::AUTHOR_ERROR,
-        cmStrCat(
-          "Policy CMP0118 is set to NEW and the following non-boolean value "
-          "given for property 'GENERATED' is therefore not allowed:\n",
-          propertyValue, "\nReplace it with a boolean value!\n"));
-      return true;
-    }
-    if (cmIsOff(propertyValue)) {
-      mf.IssueMessage(
-        MessageType::AUTHOR_ERROR,
-        "Unsetting the 'GENERATED' property is not allowed under CMP0118!\n");
-      return true;
-    }
-    if (op == PropertyOp::Append || op == PropertyOp::AppendAsString) {
-      mf.IssueMessage(MessageType::AUTHOR_ERROR,
-                      "Policy CMP0118 is set to NEW and appending to the "
-                      "'GENERATED' property is therefore not allowed. Only "
-                      "setting it to \"1\" is allowed!\n");
-      return true;
-    }
   }
 
-  // Set property.
-  if (!policyNEW) {
-    // Do it the traditional way.
-    switch (op) {
-      case PropertyOp::Append:
-        sf->AppendProperty("GENERATED", propertyValue, false);
-        break;
-      case PropertyOp::AppendAsString:
-        sf->AppendProperty("GENERATED", propertyValue, true);
-        break;
-      case PropertyOp::Remove:
-        sf->RemoveProperty("GENERATED");
-        break;
-      case PropertyOp::Set:
-        sf->SetProperty("GENERATED", propertyValue);
-        break;
-    }
-  } else {
-    sf->MarkAsGenerated();
+  // Set property the traditional way.
+  switch (op) {
+    case PropertyOp::Append:
+      sf->AppendProperty("GENERATED", propertyValue, false);
+      break;
+    case PropertyOp::AppendAsString:
+      sf->AppendProperty("GENERATED", propertyValue, true);
+      break;
+    case PropertyOp::Remove:
+      sf->RemoveProperty("GENERATED");
+      break;
+    case PropertyOp::Set:
+      sf->SetProperty("GENERATED", propertyValue);
+      break;
   }
   return true;
 }

+ 20 - 9
Source/cmSourceFile.cxx

@@ -123,7 +123,8 @@ bool cmSourceFile::FindFullPath(std::string* error,
 {
   // If the file is generated compute the location without checking on disk.
   // Note: We also check for a locally set GENERATED property, because
-  //       it might have been set before policy CMP0118 was set to NEW.
+  //       it might have been set before policy CMP0118 (or CMP0163) was set
+  //       to NEW.
   if (this->GetIsGenerated(CheckScope::GlobalAndLocal)) {
     // The file is either already a full path or is relative to the
     // build directory for the target.
@@ -146,9 +147,12 @@ bool cmSourceFile::FindFullPath(std::string* error,
   std::vector<std::string> exts =
     makefile->GetCMakeInstance()->GetAllExtensions();
   auto cmp0115 = makefile->GetPolicyStatus(cmPolicies::CMP0115);
+  auto cmp0163 = makefile->GetPolicyStatus(cmPolicies::CMP0163);
   auto cmp0118 = makefile->GetPolicyStatus(cmPolicies::CMP0118);
+  bool const cmp0163new =
+    cmp0163 != cmPolicies::OLD && cmp0163 != cmPolicies::WARN;
   bool const cmp0118new =
-    cmp0118 != cmPolicies::OLD && cmp0118 != cmPolicies::WARN;
+    cmp0163new || (cmp0118 != cmPolicies::OLD && cmp0118 != cmPolicies::WARN);
 
   // Tries to find the file in a given directory
   auto findInDir = [this, &exts, &lPath, cmp0115, cmp0115Warning, cmp0118new,
@@ -156,6 +160,7 @@ bool cmSourceFile::FindFullPath(std::string* error,
     // Compute full path
     std::string const fullPath = cmSystemTools::CollapseFullPath(lPath, dir);
     // Try full path
+    // Is this file globally marked as generated? Then mark so locally.
     if (cmp0118new &&
         makefile->GetGlobalGenerator()->IsGeneratedFile(fullPath)) {
       this->IsGenerated = true;
@@ -172,6 +177,7 @@ bool cmSourceFile::FindFullPath(std::string* error,
       for (std::string const& ext : exts) {
         if (!ext.empty()) {
           std::string extPath = cmStrCat(fullPath, '.', ext);
+          // Is this file globally marked as generated? Then mark so locally.
           if (cmp0118new &&
               makefile->GetGlobalGenerator()->IsGeneratedFile(extPath)) {
             this->IsGenerated = true;
@@ -357,14 +363,19 @@ cmValue cmSourceFile::GetPropertyForUser(const std::string& prop)
 
   // Special handling for GENERATED property.
   if (prop == propGENERATED) {
-    // We need to check policy CMP0118 in order to determine if we need to
-    // possibly consider the value of a locally set GENERATED property, too.
-    auto policyStatus =
+    // We need to check policy CMP0163 and CMP0118 in order to determine if we
+    // need to possibly consider the value of a locally set GENERATED property,
+    // too.
+    auto cmp0163 =
+      this->Location.GetMakefile()->GetPolicyStatus(cmPolicies::CMP0163);
+    auto cmp0118 =
       this->Location.GetMakefile()->GetPolicyStatus(cmPolicies::CMP0118);
-    if (this->GetIsGenerated(
-          (policyStatus == cmPolicies::WARN || policyStatus == cmPolicies::OLD)
-            ? CheckScope::GlobalAndLocal
-            : CheckScope::Global)) {
+    bool const cmp0163new =
+      cmp0163 != cmPolicies::OLD && cmp0163 != cmPolicies::WARN;
+    bool const cmp0118new = cmp0163new ||
+      (cmp0118 != cmPolicies::OLD && cmp0118 != cmPolicies::WARN);
+    if (this->GetIsGenerated((!cmp0118new) ? CheckScope::GlobalAndLocal
+                                           : CheckScope::Global)) {
       return cmValue(propTRUE);
     }
     return cmValue(propFALSE);

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1-result.txt

@@ -0,0 +1 @@
+1

+ 10 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1-stderr.txt

@@ -0,0 +1,10 @@
+^prop: `0`
+CMake Error at CMP0163-Common-Test1\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1-build/GeneratedMain\.txt
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test1\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Generate step failed\.  Build files cannot be regenerated correctly\.$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 42 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test10-stderr.txt

@@ -0,0 +1,42 @@
+^Generated_source0\.txt: # 1a # GENERATED = `1`
+Generated_source0\.txt: # 1b # GENERATED = `1`
+Generated_source0\.txt: # 2a # GENERATED = `1`
+Generated_source0\.txt: # 2b # GENERATED = `1`
+Generated_source0\.txt: # 3a # GENERATED = `0`
+Generated_source0\.txt: # 3b # GENERATED = `0`
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `1`
+Generated_source4\.txt: # 1b # GENERATED = `1`
+Generated_source4\.txt: # 2a # GENERATED = `1`
+Generated_source4\.txt: # 2b # GENERATED = `1`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `1`
+Generated_source5\.txt: # 1b # GENERATED = `1`
+Generated_source5\.txt: # 2a # GENERATED = `1`
+Generated_source5\.txt: # 2b # GENERATED = `1`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `1`
+Generated_source6\.txt: # 1b # GENERATED = `1`
+Generated_source6\.txt: # 2a # GENERATED = `1`
+Generated_source6\.txt: # 2b # GENERATED = `1`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test10.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 55 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test11-stderr.txt

@@ -0,0 +1,55 @@
+^(CMake Warning \(dev\) at subdir-Common-Test11/CMakeLists\.txt:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+(CMake Warning \(dev\) at CMP0163-Common-Test11\.cmake:[0-9]+ \(add_subdirectory\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test11\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++)+)+
+Generated_source0\.txt: # 1a # GENERATED = `1`
+Generated_source0\.txt: # 1b # GENERATED = `1`
+Generated_source0\.txt: # 2a # GENERATED = `1`
+Generated_source0\.txt: # 2b # GENERATED = `1`
+Generated_source0\.txt: # 3a # GENERATED = `0`
+Generated_source0\.txt: # 3b # GENERATED = `0`
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `1`
+Generated_source4\.txt: # 1b # GENERATED = `1`
+Generated_source4\.txt: # 2a # GENERATED = `1`
+Generated_source4\.txt: # 2b # GENERATED = `1`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `1`
+Generated_source5\.txt: # 1b # GENERATED = `1`
+Generated_source5\.txt: # 2a # GENERATED = `1`
+Generated_source5\.txt: # 2b # GENERATED = `1`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `1`
+Generated_source6\.txt: # 1b # GENERATED = `1`
+Generated_source6\.txt: # 2a # GENERATED = `1`
+Generated_source6\.txt: # 2b # GENERATED = `1`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test11.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test12-result.txt

@@ -0,0 +1 @@
+1

+ 51 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test12-stderr.txt

@@ -0,0 +1,51 @@
+^CMake Error at subdir-Common-Test12/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom[4-6]' was not created in this directory\.
++
+CMake Error at subdir-Common-Test12/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom[4-6]' was not created in this directory\.
++
+CMake Error at subdir-Common-Test12/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom[4-6]' was not created in this directory\.
++
+Generated_source0\.txt: # 1a # GENERATED = `1`
+Generated_source0\.txt: # 1b # GENERATED = `1`
+Generated_source0\.txt: # 2a # GENERATED = `1`
+Generated_source0\.txt: # 2b # GENERATED = `1`
+Generated_source0\.txt: # 3a # GENERATED = `0`
+Generated_source0\.txt: # 3b # GENERATED = `0`
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `1`
+Generated_source4\.txt: # 1b # GENERATED = `1`
+Generated_source4\.txt: # 2a # GENERATED = `1`
+Generated_source4\.txt: # 2b # GENERATED = `1`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `1`
+Generated_source5\.txt: # 1b # GENERATED = `1`
+Generated_source5\.txt: # 2a # GENERATED = `1`
+Generated_source5\.txt: # 2b # GENERATED = `1`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `1`
+Generated_source6\.txt: # 1b # GENERATED = `1`
+Generated_source6\.txt: # 2a # GENERATED = `1`
+Generated_source6\.txt: # 2b # GENERATED = `1`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test12.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test13-result.txt

@@ -0,0 +1 @@
+1

+ 64 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test13-stderr.txt

@@ -0,0 +1,64 @@
+^CMake Error at subdir-Common-Test13/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom[4-6]' was not created in this directory\.
++
+CMake Error at subdir-Common-Test13/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom[4-6]' was not created in this directory\.
++
+CMake Error at subdir-Common-Test13/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom[4-6]' was not created in this directory\.
++
+(CMake Warning \(dev\) at subdir-Common-Test13/CMakeLists\.txt:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+(CMake Warning \(dev\) at CMP0163-Common-Test13\.cmake:[0-9]+ \(add_subdirectory\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test13\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++)+)+
+Generated_source0\.txt: # 1a # GENERATED = `1`
+Generated_source0\.txt: # 1b # GENERATED = `1`
+Generated_source0\.txt: # 2a # GENERATED = `1`
+Generated_source0\.txt: # 2b # GENERATED = `1`
+Generated_source0\.txt: # 3a # GENERATED = `0`
+Generated_source0\.txt: # 3b # GENERATED = `0`
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `0`
+Generated_source4\.txt: # 1b # GENERATED = `0`
+Generated_source4\.txt: # 2a # GENERATED = `0`
+Generated_source4\.txt: # 2b # GENERATED = `0`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `0`
+Generated_source5\.txt: # 1b # GENERATED = `0`
+Generated_source5\.txt: # 2a # GENERATED = `0`
+Generated_source5\.txt: # 2b # GENERATED = `0`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `0`
+Generated_source6\.txt: # 1b # GENERATED = `0`
+Generated_source6\.txt: # 2a # GENERATED = `0`
+Generated_source6\.txt: # 2b # GENERATED = `0`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test13.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 42 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test14-stderr.txt

@@ -0,0 +1,42 @@
+^Generated_source0\.txt: # 1a # GENERATED = `1`
+Generated_source0\.txt: # 1b # GENERATED = `1`
+Generated_source0\.txt: # 2a # GENERATED = `1`
+Generated_source0\.txt: # 2b # GENERATED = `1`
+Generated_source0\.txt: # 3a # GENERATED = `0`
+Generated_source0\.txt: # 3b # GENERATED = `0`
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `1`
+Generated_source4\.txt: # 1b # GENERATED = `1`
+Generated_source4\.txt: # 2a # GENERATED = `1`
+Generated_source4\.txt: # 2b # GENERATED = `1`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `1`
+Generated_source5\.txt: # 1b # GENERATED = `1`
+Generated_source5\.txt: # 2a # GENERATED = `1`
+Generated_source5\.txt: # 2b # GENERATED = `1`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `1`
+Generated_source6\.txt: # 1b # GENERATED = `1`
+Generated_source6\.txt: # 2a # GENERATED = `1`
+Generated_source6\.txt: # 2b # GENERATED = `1`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test14.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 55 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test15-stderr.txt

@@ -0,0 +1,55 @@
+^(CMake Warning \(dev\) at subdir-Common-Test15/CMakeLists\.txt:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+(CMake Warning \(dev\) at CMP0163-Common-Test15\.cmake:[0-9]+ \(add_subdirectory\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test15\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++)+)+
+Generated_source0\.txt: # 1a # GENERATED = `1`
+Generated_source0\.txt: # 1b # GENERATED = `1`
+Generated_source0\.txt: # 2a # GENERATED = `1`
+Generated_source0\.txt: # 2b # GENERATED = `1`
+Generated_source0\.txt: # 3a # GENERATED = `0`
+Generated_source0\.txt: # 3b # GENERATED = `0`
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `1`
+Generated_source4\.txt: # 1b # GENERATED = `1`
+Generated_source4\.txt: # 2a # GENERATED = `1`
+Generated_source4\.txt: # 2b # GENERATED = `1`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `1`
+Generated_source5\.txt: # 1b # GENERATED = `1`
+Generated_source5\.txt: # 2a # GENERATED = `1`
+Generated_source5\.txt: # 2b # GENERATED = `1`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `1`
+Generated_source6\.txt: # 1b # GENERATED = `1`
+Generated_source6\.txt: # 2a # GENERATED = `1`
+Generated_source6\.txt: # 2b # GENERATED = `1`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test15.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test16-result.txt

@@ -0,0 +1 @@
+1

+ 27 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test16-stderr.txt

@@ -0,0 +1,27 @@
+^CMake Error at subdir-Common-Test16/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom4' was not created in this directory\.
++
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `0`
+Generated_source2\.txt: # 1b # GENERATED = `0`
+Generated_source2\.txt: # 2a # GENERATED = `0`
+Generated_source2\.txt: # 2b # GENERATED = `0`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `0`
+Generated_source4\.txt: # 1b # GENERATED = `0`
+Generated_source4\.txt: # 2a # GENERATED = `0`
+Generated_source4\.txt: # 2b # GENERATED = `0`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test16.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1b-result.txt

@@ -0,0 +1 @@
+1

+ 10 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1b-stderr.txt

@@ -0,0 +1,10 @@
+^prop: `NOTFOUND`
+CMake Error at CMP0163-Common-Test1b\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1b-build/GeneratedMain\.txt
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test1b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Generate step failed\.  Build files cannot be regenerated correctly\.$

+ 6 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test1b.cmake

@@ -0,0 +1,6 @@
+cmake_policy(SET CMP0118 NEW)
+# Extract from the current file the name of the test-case and value for CMP0163 and call the test-case.
+cmake_path(GET CMAKE_CURRENT_LIST_FILE STEM testcase)
+string(REGEX MATCH "NEW|OLD|WARN" value_for_CMP0163 "${testcase}")
+string(REGEX REPLACE "${value_for_CMP0163}" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2-stderr.txt

@@ -0,0 +1 @@
+^prop: `1`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 3 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2a.cmake

@@ -0,0 +1,3 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_path(GET CMAKE_CURRENT_LIST_FILE STEM CMP0163_TESTCASE)
+include(${CMAKE_CURRENT_LIST_DIR}/../Test-with-CMP0163-NEW.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2b-stderr.txt

@@ -0,0 +1 @@
+^prop: `1`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2b.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2c-stderr.txt

@@ -0,0 +1 @@
+^prop: `1`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2c.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2d-stderr.txt

@@ -0,0 +1 @@
+^prop: `1`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test2d.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test3-result.txt

@@ -0,0 +1 @@
+1

+ 79 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test3-stderr.txt

@@ -0,0 +1,79 @@
+^Generated_with_full_path1\.txt: # 1a # GENERATED = `1`
+Generated_with_full_path1\.txt: # 1b # GENERATED = `1`
+Generated_with_full_path1\.txt: # 2a # GENERATED = `1`
+Generated_with_full_path1\.txt: # 2b # GENERATED = `1`
+Generated_with_full_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_full_path1\.txt: # 3b # GENERATED = `0`
+Generated_with_full_path2\.txt: # 1a # GENERATED = `1`
+Generated_with_full_path2\.txt: # 1b # GENERATED = `1`
+Generated_with_full_path2\.txt: # 2a # GENERATED = `1`
+Generated_with_full_path2\.txt: # 2b # GENERATED = `1`
+Generated_with_full_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_full_path2\.txt: # 3b # GENERATED = `0`
+Generated_with_full_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_full_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_full_path3\.txt: # 2a # GENERATED = `1`
+Generated_with_full_path3\.txt: # 2b # GENERATED = `1`
+Generated_with_full_path3\.txt: # 3a # GENERATED = `1`
+Generated_with_full_path3\.txt: # 3b # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 1a # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 1b # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 2a # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 2b # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 3b # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 1a # GENERATED = `1`
+Generated_with_relative_path2\.txt: # 1b # GENERATED = `1`
+Generated_with_relative_path2\.txt: # 2a # GENERATED = `1`
+Generated_with_relative_path2\.txt: # 2b # GENERATED = `1`
+Generated_with_relative_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 3b # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 2a # GENERATED = `1`
+Generated_with_relative_path3\.txt: # 2b # GENERATED = `1`
+Generated_with_relative_path3\.txt: # 3a # GENERATED = `1`
+Generated_with_relative_path3\.txt: # 3b # GENERATED = `1`
+Generated_with_full_source_path1\.txt: # 1a # GENERATED = `1`
+Generated_with_full_source_path1\.txt: # 1b # GENERATED = `1`
+Generated_with_full_source_path1\.txt: # 2a # GENERATED = `1`
+Generated_with_full_source_path1\.txt: # 2b # GENERATED = `1`
+Generated_with_full_source_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 3b # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 1a # GENERATED = `1`
+Generated_with_full_source_path2\.txt: # 1b # GENERATED = `1`
+Generated_with_full_source_path2\.txt: # 2a # GENERATED = `1`
+Generated_with_full_source_path2\.txt: # 2b # GENERATED = `1`
+Generated_with_full_source_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 3b # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 2a # GENERATED = `1`
+Generated_with_full_source_path3\.txt: # 2b # GENERATED = `1`
+Generated_with_full_source_path3\.txt: # 3a # GENERATED = `1`
+Generated_with_full_source_path3\.txt: # 3b # GENERATED = `1`
+CMake Error at CMP0163-Common-Test3\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/(Generated_with_full_source_path[1-2]\.txt|CMP0118-NEW/CMP0163-NEW-Test3-build/Generated_with_full_path3\.txt)
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test3\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test3\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/(Generated_with_full_source_path[1-2]\.txt|CMP0118-NEW/CMP0163-NEW-Test3-build/Generated_with_full_path3\.txt)
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test3\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test3\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/(Generated_with_full_source_path[1-2]\.txt|CMP0118-NEW/CMP0163-NEW-Test3-build/Generated_with_full_path3\.txt)
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test3\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Generate step failed\.  Build files cannot be regenerated correctly\.$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test3.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test3b-result.txt

@@ -0,0 +1 @@
+1

+ 79 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test3b-stderr.txt

@@ -0,0 +1,79 @@
+^Generated_with_full_path1\.txt: # 1a # GENERATED = `1`
+Generated_with_full_path1\.txt: # 1b # GENERATED = `1`
+Generated_with_full_path1\.txt: # 2a # GENERATED = `1`
+Generated_with_full_path1\.txt: # 2b # GENERATED = `1`
+Generated_with_full_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_full_path1\.txt: # 3b # GENERATED = `0`
+Generated_with_full_path2\.txt: # 1a # GENERATED = `1`
+Generated_with_full_path2\.txt: # 1b # GENERATED = `1`
+Generated_with_full_path2\.txt: # 2a # GENERATED = `1`
+Generated_with_full_path2\.txt: # 2b # GENERATED = `1`
+Generated_with_full_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_full_path2\.txt: # 3b # GENERATED = `0`
+Generated_with_full_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_full_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_full_path3\.txt: # 2a # GENERATED = `1`
+Generated_with_full_path3\.txt: # 2b # GENERATED = `1`
+Generated_with_full_path3\.txt: # 3a # GENERATED = `1`
+Generated_with_full_path3\.txt: # 3b # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 1a # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 1b # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 2a # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 2b # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 3b # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 1a # GENERATED = `1`
+Generated_with_relative_path2\.txt: # 1b # GENERATED = `1`
+Generated_with_relative_path2\.txt: # 2a # GENERATED = `1`
+Generated_with_relative_path2\.txt: # 2b # GENERATED = `1`
+Generated_with_relative_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 3b # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 2a # GENERATED = `1`
+Generated_with_relative_path3\.txt: # 2b # GENERATED = `1`
+Generated_with_relative_path3\.txt: # 3a # GENERATED = `1`
+Generated_with_relative_path3\.txt: # 3b # GENERATED = `1`
+Generated_with_full_source_path1\.txt: # 1a # GENERATED = `1`
+Generated_with_full_source_path1\.txt: # 1b # GENERATED = `1`
+Generated_with_full_source_path1\.txt: # 2a # GENERATED = `1`
+Generated_with_full_source_path1\.txt: # 2b # GENERATED = `1`
+Generated_with_full_source_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 3b # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 1a # GENERATED = `1`
+Generated_with_full_source_path2\.txt: # 1b # GENERATED = `1`
+Generated_with_full_source_path2\.txt: # 2a # GENERATED = `1`
+Generated_with_full_source_path2\.txt: # 2b # GENERATED = `1`
+Generated_with_full_source_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 3b # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 2a # GENERATED = `1`
+Generated_with_full_source_path3\.txt: # 2b # GENERATED = `1`
+Generated_with_full_source_path3\.txt: # 3a # GENERATED = `1`
+Generated_with_full_source_path3\.txt: # 3b # GENERATED = `1`
+CMake Error at CMP0163-Common-Test3b\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/(Generated_with_full_source_path[1-2]\.txt|CMP0118-NEW/CMP0163-NEW-Test3b-build/Generated_with_full_path3\.txt)
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test3b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test3b\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/(Generated_with_full_source_path[1-2]\.txt|CMP0118-NEW/CMP0163-NEW-Test3b-build/Generated_with_full_path3\.txt)
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test3b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test3b\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/(Generated_with_full_source_path[1-2]\.txt|CMP0118-NEW/CMP0163-NEW-Test3b-build/Generated_with_full_path3\.txt)
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test3b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Generate step failed\.  Build files cannot be regenerated correctly\.$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test3b.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test4-result.txt

@@ -0,0 +1 @@
+1

+ 167 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test4-stderr.txt

@@ -0,0 +1,167 @@
+^CMake Warning \(dev\) at CMP0163-Common-Test4\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_path1\.txt: # 1a # GENERATED = `0`
+Generated_with_full_path1\.txt: # 1b # GENERATED = `0`
+Generated_with_full_path1\.txt: # 2a # GENERATED = `0`
+Generated_with_full_path1\.txt: # 2b # GENERATED = `0`
+Generated_with_full_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_full_path1\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_path2\.txt: # 1a # GENERATED = `0`
+Generated_with_full_path2\.txt: # 1b # GENERATED = `0`
+Generated_with_full_path2\.txt: # 2a # GENERATED = `0`
+Generated_with_full_path2\.txt: # 2b # GENERATED = `0`
+Generated_with_full_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_full_path2\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_full_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_full_path3\.txt: # 2a # GENERATED = `0`
+Generated_with_full_path3\.txt: # 2b # GENERATED = `0`
+Generated_with_full_path3\.txt: # 3a # GENERATED = `0`
+Generated_with_full_path3\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_relative_path1\.txt: # 1a # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 1b # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 2a # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 2b # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_relative_path2\.txt: # 1a # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 1b # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 2a # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 2b # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_relative_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 2a # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 2b # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 3a # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_source_path1\.txt: # 1a # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 1b # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 2a # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 2b # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_source_path2\.txt: # 1a # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 1b # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 2a # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 2b # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_source_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 2a # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 2b # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 3a # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 3b # GENERATED = `0`
+CMake Error at CMP0163-Common-Test4\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/(Generated_with_full_source_path[1-3]\.txt|CMP0118-NEW/CMP0163-NEW-Test4-build/Generated_with_full_path1\.txt|CMP0118-NEW/CMP0163-NEW-Test4-build/Generated_with_relative_path1\.txt)
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test4\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/(Generated_with_full_source_path[1-3]\.txt|CMP0118-NEW/CMP0163-NEW-Test4-build/Generated_with_full_path1\.txt|CMP0118-NEW/CMP0163-NEW-Test4-build/Generated_with_relative_path1\.txt)
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test4\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/(Generated_with_full_source_path[1-3]\.txt|CMP0118-NEW/CMP0163-NEW-Test4-build/Generated_with_full_path1\.txt|CMP0118-NEW/CMP0163-NEW-Test4-build/Generated_with_relative_path1\.txt)
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test4\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/(Generated_with_full_source_path[1-3]\.txt|CMP0118-NEW/CMP0163-NEW-Test4-build/Generated_with_full_path1\.txt|CMP0118-NEW/CMP0163-NEW-Test4-build/Generated_with_relative_path1\.txt)
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test4\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/(Generated_with_full_source_path[1-3]\.txt|CMP0118-NEW/CMP0163-NEW-Test4-build/Generated_with_full_path1\.txt|CMP0118-NEW/CMP0163-NEW-Test4-build/Generated_with_relative_path1\.txt)
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Generate step failed\.  Build files cannot be regenerated correctly\.$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test4.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test4b-result.txt

@@ -0,0 +1 @@
+1

+ 135 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test4b-stderr.txt

@@ -0,0 +1,135 @@
+^CMake Warning \(dev\) at CMP0163-Common-Test4b\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_path1\.txt: # 1a # GENERATED = `0`
+Generated_with_full_path1\.txt: # 1b # GENERATED = `0`
+Generated_with_full_path1\.txt: # 2a # GENERATED = `0`
+Generated_with_full_path1\.txt: # 2b # GENERATED = `0`
+Generated_with_full_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_full_path1\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4b\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_path2\.txt: # 1a # GENERATED = `0`
+Generated_with_full_path2\.txt: # 1b # GENERATED = `0`
+Generated_with_full_path2\.txt: # 2a # GENERATED = `0`
+Generated_with_full_path2\.txt: # 2b # GENERATED = `0`
+Generated_with_full_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_full_path2\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4b\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_full_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_full_path3\.txt: # 2a # GENERATED = `0`
+Generated_with_full_path3\.txt: # 2b # GENERATED = `0`
+Generated_with_full_path3\.txt: # 3a # GENERATED = `0`
+Generated_with_full_path3\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4b\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_relative_path1\.txt: # 1a # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 1b # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 2a # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 2b # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4b\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_relative_path2\.txt: # 1a # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 1b # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 2a # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 2b # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4b\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_relative_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 2a # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 2b # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 3a # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4b\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_source_path1\.txt: # 1a # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 1b # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 2a # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 2b # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4b\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_source_path2\.txt: # 1a # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 1b # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 2a # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 2b # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test4b\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_source_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 2a # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 2b # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 3a # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 3b # GENERATED = `0`
+(CMake Error at CMP0163-Common-Test4b\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/(Generated_with_full_source_path[1-3]\.txt|CMP0118-NEW/CMP0163-NEW-Test4b-build/Generated_with_full_path1\.txt|CMP0118-NEW/CMP0163-NEW-Test4-build/Generated_with_relative_path1\.txt)
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test4b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++)+
+CMake Generate step failed\.  Build files cannot be regenerated correctly\.$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test4b.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test5-result.txt

@@ -0,0 +1 @@
+1

+ 126 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test5-stderr.txt

@@ -0,0 +1,126 @@
+^Generated_with_full_path1\.txt: # 1a # GENERATED = `1`
+Generated_with_full_path1\.txt: # 1b # GENERATED = `1`
+Generated_with_full_path1\.txt: # 2a # GENERATED = `1`
+Generated_with_full_path1\.txt: # 2b # GENERATED = `1`
+Generated_with_full_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_full_path1\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test5\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test5\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_path2\.txt: # 1a # GENERATED = `0`
+Generated_with_full_path2\.txt: # 1b # GENERATED = `0`
+Generated_with_full_path2\.txt: # 2a # GENERATED = `0`
+Generated_with_full_path2\.txt: # 2b # GENERATED = `0`
+Generated_with_full_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_full_path2\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test5\.cmake:[0-9]+ \(set_property\):
+  Policy CMP0163 is set to NEW and the following non-boolean value given for
+  property 'GENERATED' is therefore not allowed:
+
+  Junk-value
+
+  Replace it with a boolean value!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test5\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_full_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_full_path3\.txt: # 2a # GENERATED = `0`
+Generated_with_full_path3\.txt: # 2b # GENERATED = `0`
+Generated_with_full_path3\.txt: # 3a # GENERATED = `0`
+Generated_with_full_path3\.txt: # 3b # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 1a # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 1b # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 2a # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 2b # GENERATED = `1`
+Generated_with_relative_path1\.txt: # 3a # GENERATED = `0`
+Generated_with_relative_path1\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test5\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test5\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_relative_path2\.txt: # 1a # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 1b # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 2a # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 2b # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_relative_path2\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test5\.cmake:[0-9]+ \(set_property\):
+  Policy CMP0163 is set to NEW and the following non-boolean value given for
+  property 'GENERATED' is therefore not allowed:
+
+  Junk-value
+
+  Replace it with a boolean value!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test5\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_relative_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 2a # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 2b # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 3a # GENERATED = `0`
+Generated_with_relative_path3\.txt: # 3b # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 1a # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 1b # GENERATED = `0`
+Generated_with_full_source_path1\.txt: # 2a # GENERATED = `1`
+Generated_with_full_source_path1\.txt: # 2b # GENERATED = `1`
+Generated_with_full_source_path1\.txt: # 3a # GENERATED = `1`
+Generated_with_full_source_path1\.txt: # 3b # GENERATED = `1`
+CMake Warning \(dev\) at CMP0163-Common-Test5\.cmake:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test5\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_source_path2\.txt: # 1a # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 1b # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 2a # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 2b # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 3a # GENERATED = `0`
+Generated_with_full_source_path2\.txt: # 3b # GENERATED = `0`
+CMake Warning \(dev\) at CMP0163-Common-Test5\.cmake:[0-9]+ \(set_property\):
+  Policy CMP0163 is set to NEW and the following non-boolean value given for
+  property 'GENERATED' is therefore not allowed:
+
+  Junk-value
+
+  Replace it with a boolean value!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test5\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+Generated_with_full_source_path3\.txt: # 1a # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 1b # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 2a # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 2b # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 3a # GENERATED = `0`
+Generated_with_full_source_path3\.txt: # 3b # GENERATED = `0`
+(CMake Error at CMP0163-Common-Test5\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*(Generated_with_relative_path[2-3]\.txt|.*Tests/RunCMake/CMP0163/(Generated_with_full_source_path[2-3]\.txt|CMP0118-WARN/CMP0163-NEW-Test5-build/Generated_with_full_path[2-3]\.txt))
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test5\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++)+
+CMake Generate step failed\.  Build files cannot be regenerated correctly\.$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test5.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 36 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test6-stderr.txt

@@ -0,0 +1,36 @@
+^Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `1`
+Generated_source4\.txt: # 1b # GENERATED = `1`
+Generated_source4\.txt: # 2a # GENERATED = `1`
+Generated_source4\.txt: # 2b # GENERATED = `1`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `1`
+Generated_source5\.txt: # 1b # GENERATED = `1`
+Generated_source5\.txt: # 2a # GENERATED = `1`
+Generated_source5\.txt: # 2b # GENERATED = `1`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `1`
+Generated_source6\.txt: # 1b # GENERATED = `1`
+Generated_source6\.txt: # 2a # GENERATED = `1`
+Generated_source6\.txt: # 2b # GENERATED = `1`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test6.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test7-result.txt

@@ -0,0 +1 @@
+1

+ 74 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test7-stderr.txt

@@ -0,0 +1,74 @@
+^(CMake Warning \(dev\) at subdir-Common-Test7/CMakeLists\.txt:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+(CMake Warning \(dev\) at CMP0163-Common-Test7\.cmake:[0-9]+ \(add_subdirectory\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test7\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++)+)+
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `0`
+Generated_source4\.txt: # 1b # GENERATED = `0`
+Generated_source4\.txt: # 2a # GENERATED = `0`
+Generated_source4\.txt: # 2b # GENERATED = `0`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `0`
+Generated_source5\.txt: # 1b # GENERATED = `0`
+Generated_source5\.txt: # 2a # GENERATED = `0`
+Generated_source5\.txt: # 2b # GENERATED = `0`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `0`
+Generated_source6\.txt: # 1b # GENERATED = `0`
+Generated_source6\.txt: # 2a # GENERATED = `0`
+Generated_source6\.txt: # 2b # GENERATED = `0`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`
+CMake Error at CMP0163-Common-Test7\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test7-build/Generated_source[4-6]\.txt
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test7\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test7\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test7-build/Generated_source[4-6]\.txt
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test7\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test7\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test7-build/Generated_source[4-6]\.txt
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test7\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Generate step failed\.  Build files cannot be regenerated correctly\.$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test7.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 36 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test8-stderr.txt

@@ -0,0 +1,36 @@
+^Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `1`
+Generated_source4\.txt: # 1b # GENERATED = `1`
+Generated_source4\.txt: # 2a # GENERATED = `1`
+Generated_source4\.txt: # 2b # GENERATED = `1`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `1`
+Generated_source5\.txt: # 1b # GENERATED = `1`
+Generated_source5\.txt: # 2a # GENERATED = `1`
+Generated_source5\.txt: # 2b # GENERATED = `1`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `1`
+Generated_source6\.txt: # 1b # GENERATED = `1`
+Generated_source6\.txt: # 2a # GENERATED = `1`
+Generated_source6\.txt: # 2b # GENERATED = `1`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test8.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 36 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test8b-stderr.txt

@@ -0,0 +1,36 @@
+^Generated_source1\.txt: # 1a # GENERATED = `0`
+Generated_source1\.txt: # 1b # GENERATED = `0`
+Generated_source1\.txt: # 2a # GENERATED = `0`
+Generated_source1\.txt: # 2b # GENERATED = `0`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `0`
+Generated_source2\.txt: # 1b # GENERATED = `0`
+Generated_source2\.txt: # 2a # GENERATED = `0`
+Generated_source2\.txt: # 2b # GENERATED = `0`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `0`
+Generated_source3\.txt: # 1b # GENERATED = `0`
+Generated_source3\.txt: # 2a # GENERATED = `0`
+Generated_source3\.txt: # 2b # GENERATED = `0`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `0`
+Generated_source4\.txt: # 1b # GENERATED = `0`
+Generated_source4\.txt: # 2a # GENERATED = `0`
+Generated_source4\.txt: # 2b # GENERATED = `0`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `0`
+Generated_source5\.txt: # 1b # GENERATED = `0`
+Generated_source5\.txt: # 2a # GENERATED = `0`
+Generated_source5\.txt: # 2b # GENERATED = `0`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `0`
+Generated_source6\.txt: # 1b # GENERATED = `0`
+Generated_source6\.txt: # 2a # GENERATED = `0`
+Generated_source6\.txt: # 2b # GENERATED = `0`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test8b.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9-result.txt

@@ -0,0 +1 @@
+1

+ 74 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9-stderr.txt

@@ -0,0 +1,74 @@
+^(CMake Warning \(dev\) at subdir-Common-Test9/CMakeLists\.txt:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+(CMake Warning \(dev\) at CMP0163-Common-Test9\.cmake:[0-9]+ \(add_subdirectory\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0163!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test9\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++)+)+
+Generated_source1\.txt: # 1a # GENERATED = `0`
+Generated_source1\.txt: # 1b # GENERATED = `0`
+Generated_source1\.txt: # 2a # GENERATED = `0`
+Generated_source1\.txt: # 2b # GENERATED = `0`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `0`
+Generated_source2\.txt: # 1b # GENERATED = `0`
+Generated_source2\.txt: # 2a # GENERATED = `0`
+Generated_source2\.txt: # 2b # GENERATED = `0`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `0`
+Generated_source3\.txt: # 1b # GENERATED = `0`
+Generated_source3\.txt: # 2a # GENERATED = `0`
+Generated_source3\.txt: # 2b # GENERATED = `0`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `0`
+Generated_source4\.txt: # 1b # GENERATED = `0`
+Generated_source4\.txt: # 2a # GENERATED = `0`
+Generated_source4\.txt: # 2b # GENERATED = `0`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `0`
+Generated_source5\.txt: # 1b # GENERATED = `0`
+Generated_source5\.txt: # 2a # GENERATED = `0`
+Generated_source5\.txt: # 2b # GENERATED = `0`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `0`
+Generated_source6\.txt: # 1b # GENERATED = `0`
+Generated_source6\.txt: # 2a # GENERATED = `0`
+Generated_source6\.txt: # 2b # GENERATED = `0`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`
+CMake Error at CMP0163-Common-Test9\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9-build/Generated_source[4-6]\.txt
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test9\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test9\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9-build/Generated_source[4-6]\.txt
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test9\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test9\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9-build/Generated_source[4-6]\.txt
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test9\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Generate step failed\.  Build files cannot be regenerated correctly\.$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9b-result.txt

@@ -0,0 +1 @@
+1

+ 61 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9b-stderr.txt

@@ -0,0 +1,61 @@
+^Generated_source1\.txt: # 1a # GENERATED = `0`
+Generated_source1\.txt: # 1b # GENERATED = `0`
+Generated_source1\.txt: # 2a # GENERATED = `0`
+Generated_source1\.txt: # 2b # GENERATED = `0`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `0`
+Generated_source2\.txt: # 1b # GENERATED = `0`
+Generated_source2\.txt: # 2a # GENERATED = `0`
+Generated_source2\.txt: # 2b # GENERATED = `0`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `0`
+Generated_source3\.txt: # 1b # GENERATED = `0`
+Generated_source3\.txt: # 2a # GENERATED = `0`
+Generated_source3\.txt: # 2b # GENERATED = `0`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `0`
+Generated_source4\.txt: # 1b # GENERATED = `0`
+Generated_source4\.txt: # 2a # GENERATED = `0`
+Generated_source4\.txt: # 2b # GENERATED = `0`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `0`
+Generated_source5\.txt: # 1b # GENERATED = `0`
+Generated_source5\.txt: # 2a # GENERATED = `0`
+Generated_source5\.txt: # 2b # GENERATED = `0`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `0`
+Generated_source6\.txt: # 1b # GENERATED = `0`
+Generated_source6\.txt: # 2a # GENERATED = `0`
+Generated_source6\.txt: # 2b # GENERATED = `0`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`
+CMake Error at CMP0163-Common-Test9b\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9b-build/Generated_source[4-6]\.txt
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test9b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test9b\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9b-build/Generated_source[4-6]\.txt
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test9b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Error at CMP0163-Common-Test9b\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9b-build/Generated_source[4-6]\.txt
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-NEW-Test9b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Generate step failed\.  Build files cannot be regenerated correctly\.$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-NEW-Test9b.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 NEW)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "NEW" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1-result.txt

@@ -0,0 +1 @@
+1

+ 10 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1-stderr.txt

@@ -0,0 +1,10 @@
+^prop: `0`
+CMake Error at CMP0163-Common-Test1\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1-build/GeneratedMain\.txt
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-OLD-Test1\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Generate step failed\.  Build files cannot be regenerated correctly\.$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 OLD)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "OLD" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 42 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test10-stderr.txt

@@ -0,0 +1,42 @@
+^Generated_source0\.txt: # 1a # GENERATED = `1`
+Generated_source0\.txt: # 1b # GENERATED = `1`
+Generated_source0\.txt: # 2a # GENERATED = `1`
+Generated_source0\.txt: # 2b # GENERATED = `1`
+Generated_source0\.txt: # 3a # GENERATED = `0`
+Generated_source0\.txt: # 3b # GENERATED = `0`
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `0`
+Generated_source4\.txt: # 1b # GENERATED = `0`
+Generated_source4\.txt: # 2a # GENERATED = `0`
+Generated_source4\.txt: # 2b # GENERATED = `0`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `1`
+Generated_source5\.txt: # 1b # GENERATED = `1`
+Generated_source5\.txt: # 2a # GENERATED = `1`
+Generated_source5\.txt: # 2b # GENERATED = `1`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `1`
+Generated_source6\.txt: # 1b # GENERATED = `1`
+Generated_source6\.txt: # 2a # GENERATED = `1`
+Generated_source6\.txt: # 2b # GENERATED = `1`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test10.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 OLD)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "OLD" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 55 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test11-stderr.txt

@@ -0,0 +1,55 @@
+^((CMake Warning \(dev\) at subdir-Common-Test11/CMakeLists\.txt:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0118!
+
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++)+
+(CMake Warning \(dev\) at CMP0163-Common-Test11\.cmake:[0-9]+ \(add_subdirectory\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0118!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-OLD-Test11\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++)+)+
+Generated_source0\.txt: # 1a # GENERATED = `1`
+Generated_source0\.txt: # 1b # GENERATED = `1`
+Generated_source0\.txt: # 2a # GENERATED = `1`
+Generated_source0\.txt: # 2b # GENERATED = `1`
+Generated_source0\.txt: # 3a # GENERATED = `0`
+Generated_source0\.txt: # 3b # GENERATED = `0`
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `0`
+Generated_source4\.txt: # 1b # GENERATED = `0`
+Generated_source4\.txt: # 2a # GENERATED = `0`
+Generated_source4\.txt: # 2b # GENERATED = `0`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `0`
+Generated_source5\.txt: # 1b # GENERATED = `0`
+Generated_source5\.txt: # 2a # GENERATED = `0`
+Generated_source5\.txt: # 2b # GENERATED = `0`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `0`
+Generated_source6\.txt: # 1b # GENERATED = `0`
+Generated_source6\.txt: # 2a # GENERATED = `0`
+Generated_source6\.txt: # 2b # GENERATED = `0`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test11.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 OLD)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "OLD" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test12-result.txt

@@ -0,0 +1 @@
+1

+ 51 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test12-stderr.txt

@@ -0,0 +1,51 @@
+^CMake Error at subdir-Common-Test12/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom[4-6]' was not created in this directory\.
++
+CMake Error at subdir-Common-Test12/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom[4-6]' was not created in this directory\.
++
+CMake Error at subdir-Common-Test12/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom[4-6]' was not created in this directory\.
++
+Generated_source0\.txt: # 1a # GENERATED = `1`
+Generated_source0\.txt: # 1b # GENERATED = `1`
+Generated_source0\.txt: # 2a # GENERATED = `1`
+Generated_source0\.txt: # 2b # GENERATED = `1`
+Generated_source0\.txt: # 3a # GENERATED = `0`
+Generated_source0\.txt: # 3b # GENERATED = `0`
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `0`
+Generated_source4\.txt: # 1b # GENERATED = `0`
+Generated_source4\.txt: # 2a # GENERATED = `0`
+Generated_source4\.txt: # 2b # GENERATED = `0`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `1`
+Generated_source5\.txt: # 1b # GENERATED = `1`
+Generated_source5\.txt: # 2a # GENERATED = `1`
+Generated_source5\.txt: # 2b # GENERATED = `1`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `1`
+Generated_source6\.txt: # 1b # GENERATED = `1`
+Generated_source6\.txt: # 2a # GENERATED = `1`
+Generated_source6\.txt: # 2b # GENERATED = `1`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test12.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 OLD)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "OLD" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test13-result.txt

@@ -0,0 +1 @@
+1

+ 64 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test13-stderr.txt

@@ -0,0 +1,64 @@
+^CMake Error at subdir-Common-Test13/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom[4-6]' was not created in this directory\.
++
+CMake Error at subdir-Common-Test13/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom[4-6]' was not created in this directory\.
++
+CMake Error at subdir-Common-Test13/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom[4-6]' was not created in this directory\.
++
+(CMake Warning \(dev\) at subdir-Common-Test13/CMakeLists\.txt:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0118!
+
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++
+(CMake Warning \(dev\) at CMP0163-Common-Test13\.cmake:[0-9]+ \(add_subdirectory\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0118!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-OLD-Test13\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++)+)+
+Generated_source0\.txt: # 1a # GENERATED = `1`
+Generated_source0\.txt: # 1b # GENERATED = `1`
+Generated_source0\.txt: # 2a # GENERATED = `1`
+Generated_source0\.txt: # 2b # GENERATED = `1`
+Generated_source0\.txt: # 3a # GENERATED = `0`
+Generated_source0\.txt: # 3b # GENERATED = `0`
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `0`
+Generated_source4\.txt: # 1b # GENERATED = `0`
+Generated_source4\.txt: # 2a # GENERATED = `0`
+Generated_source4\.txt: # 2b # GENERATED = `0`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `0`
+Generated_source5\.txt: # 1b # GENERATED = `0`
+Generated_source5\.txt: # 2a # GENERATED = `0`
+Generated_source5\.txt: # 2b # GENERATED = `0`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `0`
+Generated_source6\.txt: # 1b # GENERATED = `0`
+Generated_source6\.txt: # 2a # GENERATED = `0`
+Generated_source6\.txt: # 2b # GENERATED = `0`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test13.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 OLD)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "OLD" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 42 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test14-stderr.txt

@@ -0,0 +1,42 @@
+^Generated_source0\.txt: # 1a # GENERATED = `1`
+Generated_source0\.txt: # 1b # GENERATED = `1`
+Generated_source0\.txt: # 2a # GENERATED = `1`
+Generated_source0\.txt: # 2b # GENERATED = `1`
+Generated_source0\.txt: # 3a # GENERATED = `0`
+Generated_source0\.txt: # 3b # GENERATED = `0`
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `0`
+Generated_source4\.txt: # 1b # GENERATED = `0`
+Generated_source4\.txt: # 2a # GENERATED = `0`
+Generated_source4\.txt: # 2b # GENERATED = `0`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `1`
+Generated_source5\.txt: # 1b # GENERATED = `1`
+Generated_source5\.txt: # 2a # GENERATED = `1`
+Generated_source5\.txt: # 2b # GENERATED = `1`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `1`
+Generated_source6\.txt: # 1b # GENERATED = `1`
+Generated_source6\.txt: # 2a # GENERATED = `1`
+Generated_source6\.txt: # 2b # GENERATED = `1`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test14.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 OLD)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "OLD" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 55 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test15-stderr.txt

@@ -0,0 +1,55 @@
+^((CMake Warning \(dev\) at subdir-Common-Test15/CMakeLists\.txt:[0-9]+ \(set_property\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0118!
+
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++)+
+(CMake Warning \(dev\) at CMP0163-Common-Test15\.cmake:[0-9]+ \(add_subdirectory\):
+  Unsetting the 'GENERATED' property is not allowed under CMP0118!
+
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-OLD-Test15\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
+This warning is for project developers\.  Use -Wno-dev to suppress it\.
++)+)+
+Generated_source0\.txt: # 1a # GENERATED = `1`
+Generated_source0\.txt: # 1b # GENERATED = `1`
+Generated_source0\.txt: # 2a # GENERATED = `1`
+Generated_source0\.txt: # 2b # GENERATED = `1`
+Generated_source0\.txt: # 3a # GENERATED = `0`
+Generated_source0\.txt: # 3b # GENERATED = `0`
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `1`
+Generated_source2\.txt: # 1b # GENERATED = `1`
+Generated_source2\.txt: # 2a # GENERATED = `1`
+Generated_source2\.txt: # 2b # GENERATED = `1`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `1`
+Generated_source3\.txt: # 1b # GENERATED = `1`
+Generated_source3\.txt: # 2a # GENERATED = `1`
+Generated_source3\.txt: # 2b # GENERATED = `1`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `0`
+Generated_source4\.txt: # 1b # GENERATED = `0`
+Generated_source4\.txt: # 2a # GENERATED = `0`
+Generated_source4\.txt: # 2b # GENERATED = `0`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`
+Generated_source5\.txt: # 1a # GENERATED = `0`
+Generated_source5\.txt: # 1b # GENERATED = `0`
+Generated_source5\.txt: # 2a # GENERATED = `0`
+Generated_source5\.txt: # 2b # GENERATED = `0`
+Generated_source5\.txt: # 3a # GENERATED = `0`
+Generated_source5\.txt: # 3b # GENERATED = `0`
+Generated_source6\.txt: # 1a # GENERATED = `0`
+Generated_source6\.txt: # 1b # GENERATED = `0`
+Generated_source6\.txt: # 2a # GENERATED = `0`
+Generated_source6\.txt: # 2b # GENERATED = `0`
+Generated_source6\.txt: # 3a # GENERATED = `0`
+Generated_source6\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test15.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 OLD)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "OLD" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test16-result.txt

@@ -0,0 +1 @@
+1

+ 27 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test16-stderr.txt

@@ -0,0 +1,27 @@
+^CMake Error at subdir-Common-Test16/CMakeLists\.txt:[0-9]+ \(add_custom_command\):
+  TARGET 'custom4' was not created in this directory\.
++
+Generated_source1\.txt: # 1a # GENERATED = `1`
+Generated_source1\.txt: # 1b # GENERATED = `1`
+Generated_source1\.txt: # 2a # GENERATED = `1`
+Generated_source1\.txt: # 2b # GENERATED = `1`
+Generated_source1\.txt: # 3a # GENERATED = `0`
+Generated_source1\.txt: # 3b # GENERATED = `0`
+Generated_source2\.txt: # 1a # GENERATED = `0`
+Generated_source2\.txt: # 1b # GENERATED = `0`
+Generated_source2\.txt: # 2a # GENERATED = `0`
+Generated_source2\.txt: # 2b # GENERATED = `0`
+Generated_source2\.txt: # 3a # GENERATED = `0`
+Generated_source2\.txt: # 3b # GENERATED = `0`
+Generated_source3\.txt: # 1a # GENERATED = `0`
+Generated_source3\.txt: # 1b # GENERATED = `0`
+Generated_source3\.txt: # 2a # GENERATED = `0`
+Generated_source3\.txt: # 2b # GENERATED = `0`
+Generated_source3\.txt: # 3a # GENERATED = `0`
+Generated_source3\.txt: # 3b # GENERATED = `0`
+Generated_source4\.txt: # 1a # GENERATED = `0`
+Generated_source4\.txt: # 1b # GENERATED = `0`
+Generated_source4\.txt: # 2a # GENERATED = `0`
+Generated_source4\.txt: # 2b # GENERATED = `0`
+Generated_source4\.txt: # 3a # GENERATED = `0`
+Generated_source4\.txt: # 3b # GENERATED = `0`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test16.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 OLD)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "OLD" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1b-result.txt

@@ -0,0 +1 @@
+1

+ 10 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1b-stderr.txt

@@ -0,0 +1,10 @@
+^prop: `NOTFOUND`
+CMake Error at CMP0163-Common-Test1b\.cmake:[0-9]+ \(target_sources\):
+  Cannot find source file:
+
+[ \t]*.*Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1b-build/GeneratedMain\.txt
+Call Stack \(most recent call first\):
+  CMP0118-NEW/CMP0163-OLD-Test1b\.cmake:[0-9]+ \(include\)
+  CMakeLists\.txt:[0-9]+ \(include\)
++
+CMake Generate step failed\.  Build files cannot be regenerated correctly\.$

+ 6 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test1b.cmake

@@ -0,0 +1,6 @@
+cmake_policy(SET CMP0118 NEW)
+# Extract from the current file the name of the test-case and value for CMP0163 and call the test-case.
+cmake_path(GET CMAKE_CURRENT_LIST_FILE STEM testcase)
+string(REGEX MATCH "NEW|OLD|WARN" value_for_CMP0163 "${testcase}")
+string(REGEX REPLACE "${value_for_CMP0163}" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test2-stderr.txt

@@ -0,0 +1 @@
+^prop: `1`$

+ 7 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test2.cmake

@@ -0,0 +1,7 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_policy(SET CMP0163 OLD)
+
+# Call the associated test.
+cmake_path(GET RunCMake_TEST STEM testcase)
+string(REGEX REPLACE "OLD" "Common" testcase "${testcase}")
+include(${CMAKE_CURRENT_LIST_DIR}/../${testcase}.cmake)

+ 3 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test2a.cmake

@@ -0,0 +1,3 @@
+cmake_policy(SET CMP0118 NEW)
+cmake_path(GET CMAKE_CURRENT_LIST_FILE FILENAME test_file)
+include(${CMAKE_CURRENT_LIST_DIR}/../${test_file})

+ 1 - 0
Tests/RunCMake/CMP0163/CMP0118-NEW/CMP0163-OLD-Test2b-stderr.txt

@@ -0,0 +1 @@
+^prop: `1`$

部分文件因为文件数量过多而无法显示