Browse Source

Merge topic 'cxxmodules-diagnostics'

32438138c3 cxxmodules: Reference documentation in no-modules-support diagnostics
604466b83e Tests: Enforce RunCMake.CXXModules no-modules-support diagnostics strictly

Acked-by: Kitware Robot <[email protected]>
Reviewed-by: Ben Boeckel <[email protected]>
Merge-request: !8866
Brad King 2 years ago
parent
commit
d27a41f29f

+ 11 - 9
Source/cmGeneratorTarget.cxx

@@ -9195,8 +9195,9 @@ void cmGeneratorTarget::CheckCxxModuleStatus(std::string const& config) const
       MessageType::FATAL_ERROR,
       cmStrCat(
         "The target named \"", this->GetName(),
-        "\" contains C++ "
-        "sources that use modules which is not supported by the generator"));
+        "\" has C++ sources that may use modules, but modules are not "
+        "supported by this generator.  See the cmake-cxxmodules(7) manual "
+        "and the CMAKE_CXX_SCAN_FOR_MODULES variable."));
     return;
   }
 
@@ -9205,8 +9206,8 @@ void cmGeneratorTarget::CheckCxxModuleStatus(std::string const& config) const
       this->Makefile->IssueMessage(
         MessageType::FATAL_ERROR,
         cmStrCat("The target named \"", this->GetName(),
-                 "\" has C++ sources that use modules but the \"CXX\" "
-                 "language has not been enabled"));
+                 "\" has C++ sources that use modules, but the \"CXX\" "
+                 "language has not been enabled."));
       break;
     case cmGeneratorTarget::Cxx20SupportLevel::NoCxx20: {
       cmStandardLevelResolver standardResolver(this->Makefile);
@@ -9221,17 +9222,18 @@ void cmGeneratorTarget::CheckCxxModuleStatus(std::string const& config) const
         MessageType::FATAL_ERROR,
         cmStrCat(
           "The target named \"", this->GetName(),
-          "\" has C++ sources that use modules but does not include "
+          "\" has C++ sources that use modules, but does not include "
           "\"cxx_std_20\" (or newer) among its `target_compile_features`",
-          effStandard));
+          effStandard, '.'));
     } break;
     case cmGeneratorTarget::Cxx20SupportLevel::MissingRule: {
       this->Makefile->IssueMessage(
         MessageType::FATAL_ERROR,
         cmStrCat("The target named \"", this->GetName(),
-                 "\" has C++ sources that use modules but the compiler does "
-                 "not provide a way to discover the import graph "
-                 "dependencies"));
+                 "\" has C++ sources that may use modules, but the compiler "
+                 "does not provide a way to discover the import graph "
+                 "dependencies.  See the cmake-cxxmodules(7) manual "
+                 "and the CMAKE_CXX_SCAN_FOR_MODULES variable."));
     } break;
     case cmGeneratorTarget::Cxx20SupportLevel::Supported:
       // All is well.

+ 8 - 6
Tests/RunCMake/CXXModules/CMP0155-NEW-stderr.txt

@@ -1,8 +1,10 @@
 (CMake Error in CMakeLists.txt:
-(  The target named "cmp0155-new" has C\+\+ sources that use modules but the
-  compiler does not provide a way to discover the import graph dependencies
-|  The target named "cmp0155-new" contains C\+\+ sources that use modules which
-  is not supported by the generator
+  The target named "cmp0155-new" has C\+\+ sources that may use modules, but
+  the compiler does not provide a way to discover the import graph
+  dependencies\.  See the cmake-cxxmodules\(7\) manual and the
+  CMAKE_CXX_SCAN_FOR_MODULES variable\.
+|CMake Error in CMakeLists.txt:
+  The target named "cmp0155-new" has C\+\+ sources that may use modules, but
+  modules are not supported by this generator\.  See the cmake-cxxmodules\(7\)
+  manual and the CMAKE_CXX_SCAN_FOR_MODULES variable\.
 )
-)*
-CMake Generate step failed.  Build files cannot be regenerated correctly.

+ 10 - 8
Tests/RunCMake/CXXModules/NoCXX-stderr.txt

@@ -1,13 +1,15 @@
 (CMake Error in CMakeLists.txt:
-(  The target named "nocxx" has C\+\+ sources that use modules but the "CXX"
-  language has not been enabled
-|  The target named "nocxx" contains C\+\+ sources that use modules which is not
-  supported by the generator
-|  Target "nocxx" has source file
+  The target named "nocxx" has C\+\+ sources that use modules, but the "CXX"
+  language has not been enabled\.
+|CMake Error in CMakeLists.txt:
+  The target named "nocxx" has C\+\+ sources that may use modules, but modules
+  are not supported by this generator\.  See the cmake-cxxmodules\(7\) manual
+  and the CMAKE_CXX_SCAN_FOR_MODULES variable\.
+|CMake Error in CMakeLists.txt:
+  Target "nocxx" has source file
 
-    .*/Tests/RunCMake/CXXModules/sources/module.cxx
+    [^
+]*/Tests/RunCMake/CXXModules/sources/module.cxx
 
   in a "FILE_SET TYPE CXX_MODULES" but it is not scheduled for compilation.
 )
-)*
-CMake Generate step failed.  Build files cannot be regenerated correctly.

+ 6 - 6
Tests/RunCMake/CXXModules/NoCXX20-stderr.txt

@@ -1,9 +1,9 @@
 (CMake Error in CMakeLists.txt:
-(  The target named "nocxx20" has C\+\+ sources that use modules but does not
+  The target named "nocxx20" has C\+\+ sources that use modules, but does not
   include "cxx_std_20" \(or newer\) among its `target_compile_features`; found
-  "cxx_std_17"
-|  The target named "nocxx20" contains C\+\+ sources that use modules which is
-  not supported by the generator
+  "cxx_std_17"\.
+|CMake Error in CMakeLists.txt:
+  The target named "nocxx20" has C\+\+ sources that may use modules, but
+  modules are not supported by this generator\.  See the cmake-cxxmodules\(7\)
+  manual and the CMAKE_CXX_SCAN_FOR_MODULES variable\.
 )
-)*
-CMake Generate step failed.  Build files cannot be regenerated correctly.

+ 8 - 14
Tests/RunCMake/CXXModules/NoDyndepSupport-stderr.txt

@@ -1,18 +1,12 @@
-(CMake Error:
+^(CMake Error:
   The Ninja generator does not support C\+\+20 modules using Ninja version
 
-    .*
-
-  due to lack of required features.  Ninja 1.11 or higher is required.
+    [^
+]+
 
+  due to lack of required features\.  Ninja 1\.11 or higher is required\.
 |CMake Error in CMakeLists.txt:
-  The target named "nodyndep" contains C\+\+ sources that use modules which is
-  not supported by the generator
-
-(
-CMake Error in CMakeLists.txt:
-  The target named "nodyndep" contains C\+\+ sources that use modules which is
-  not supported by the generator
-
-)*)
-CMake Generate step failed.  Build files cannot be regenerated correctly.
+  The target named "nodyndep" has C\+\+ sources that may use modules, but
+  modules are not supported by this generator\.  See the cmake-cxxmodules\(7\)
+  manual and the CMAKE_CXX_SCAN_FOR_MODULES variable\.
+)

+ 8 - 7
Tests/RunCMake/CXXModules/NoScanningSourceFileProperty-stderr.txt

@@ -1,9 +1,10 @@
 (CMake Error in CMakeLists.txt:
-(  The target named "noscanning-sf-property" has C\+\+ sources that use modules
-  but the compiler does not provide a way to discover the import graph
-  dependencies
-|  The target named "noscanning-sf-property" contains C\+\+ sources that use modules which
-  is not supported by the generator
+  The target named "noscanning-sf-property" has C\+\+ sources that may use
+  modules, but the compiler does not provide a way to discover the import
+  graph dependencies\.  See the cmake-cxxmodules\(7\) manual and the
+  CMAKE_CXX_SCAN_FOR_MODULES variable\.
+|CMake Error in CMakeLists.txt:
+  The target named "noscanning-sf-property" has C\+\+ sources that may use
+  modules, but modules are not supported by this generator\.  See the
+  cmake-cxxmodules\(7\) manual and the CMAKE_CXX_SCAN_FOR_MODULES variable\.
 )
-)*
-CMake Generate step failed.  Build files cannot be regenerated correctly.

+ 8 - 7
Tests/RunCMake/CXXModules/NoScanningTargetProperty-stderr.txt

@@ -1,9 +1,10 @@
 (CMake Error in CMakeLists.txt:
-(  The target named "noscanning-target-property" has C\+\+ sources that use
-  modules but the compiler does not provide a way to discover the import
-  graph dependencies
-|  The target named "noscanning-target-property" contains C\+\+ sources that use modules which
-  is not supported by the generator
+  The target named "noscanning-target-property" has C\+\+ sources that may use
+  modules, but the compiler does not provide a way to discover the import
+  graph dependencies\.  See the cmake-cxxmodules\(7\) manual and the
+  CMAKE_CXX_SCAN_FOR_MODULES variable\.
+|CMake Error in CMakeLists.txt:
+  The target named "noscanning-target-property" has C\+\+ sources that may use
+  modules, but modules are not supported by this generator\.  See the
+  cmake-cxxmodules\(7\) manual and the CMAKE_CXX_SCAN_FOR_MODULES variable\.
 )
-)*
-CMake Generate step failed.  Build files cannot be regenerated correctly.