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.
This commit is contained in:
Brad King
2023-10-10 09:58:32 -04:00
parent 604466b83e
commit 32438138c3
7 changed files with 45 additions and 33 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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