Jelajahi Sumber

cxxmodules: Reference documentation in no-modules-support diagnostics

Help users avoid errors about module support when they may not need it.

While at it, polish sentence syntax in the diagnostic messages.
Brad King 2 tahun lalu
induk
melakukan
32438138c3

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

+ 7 - 4
Tests/RunCMake/CXXModules/CMP0155-NEW-stderr.txt

@@ -1,7 +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" 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" 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
+  modules are not supported by this generator\.  See the cmake-cxxmodules\(7\)
+  manual and the CMAKE_CXX_SCAN_FOR_MODULES variable\.
 )

+ 5 - 4
Tests/RunCMake/CXXModules/NoCXX-stderr.txt

@@ -1,9 +1,10 @@
 (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" has C\+\+ sources that use modules, but the "CXX"
+  language has not been enabled\.
 |CMake Error in CMakeLists.txt:
-  The target named "nocxx" contains C\+\+ sources that use modules which is not
-  supported by the generator
+  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
 

+ 5 - 4
Tests/RunCMake/CXXModules/NoCXX20-stderr.txt

@@ -1,8 +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"
+  "cxx_std_17"\.
 |CMake Error in CMakeLists.txt:
-  The target named "nocxx20" contains C\+\+ sources that use modules which is
-  not supported by the generator
+  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\.
 )

+ 3 - 2
Tests/RunCMake/CXXModules/NoDyndepSupport-stderr.txt

@@ -6,6 +6,7 @@
 
   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
+  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\.
 )

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

@@ -1,8 +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" 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" 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 modules are not supported by this generator\.  See the
+  cmake-cxxmodules\(7\) manual and the CMAKE_CXX_SCAN_FOR_MODULES variable\.
 )

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

@@ -1,8 +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" 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" 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 modules are not supported by this generator\.  See the
+  cmake-cxxmodules\(7\) manual and the CMAKE_CXX_SCAN_FOR_MODULES variable\.
 )