mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-11 16:32:14 -06:00
cxxmodules: improve error messages for C++ module setup
Make it clear that: - the quoted string is a target name; and - C++ sources that export modules is the important detail.
This commit is contained in:
@@ -8927,25 +8927,34 @@ void cmGeneratorTarget::CheckCxxModuleStatus(std::string const& config) const
|
||||
case cmGeneratorTarget::Cxx20SupportLevel::MissingCxx:
|
||||
this->Makefile->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
cmStrCat("The \"", this->GetName(),
|
||||
"\" target has C++ module sources but the \"CXX\" language "
|
||||
"has not been enabled"));
|
||||
cmStrCat("The target named \"", this->GetName(),
|
||||
"\" has C++ sources that export modules but the \"CXX\" "
|
||||
"language has not been enabled"));
|
||||
break;
|
||||
case cmGeneratorTarget::Cxx20SupportLevel::MissingExperimentalFlag:
|
||||
this->Makefile->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
cmStrCat("The \"", this->GetName(),
|
||||
"\" target has C++ module sources but its experimental "
|
||||
"support has not been requested"));
|
||||
cmStrCat("The target named \"", this->GetName(),
|
||||
"\" has C++ sources that export modules but its "
|
||||
"experimental support has not been requested"));
|
||||
break;
|
||||
case cmGeneratorTarget::Cxx20SupportLevel::NoCxx20:
|
||||
case cmGeneratorTarget::Cxx20SupportLevel::NoCxx20: {
|
||||
cmStandardLevelResolver standardResolver(this->Makefile);
|
||||
auto effStandard =
|
||||
standardResolver.GetEffectiveStandard(this, "CXX", config);
|
||||
if (effStandard.empty()) {
|
||||
effStandard = "; no C++ standard found";
|
||||
} else {
|
||||
effStandard = cmStrCat("; found \"cxx_std_", effStandard, '"');
|
||||
}
|
||||
this->Makefile->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
cmStrCat(
|
||||
"The \"", this->GetName(),
|
||||
"\" target has C++ module sources but is not using at least "
|
||||
"\"cxx_std_20\""));
|
||||
break;
|
||||
"The target named \"", this->GetName(),
|
||||
"\" has C++ sources that export modules but does not include "
|
||||
"\"cxx_std_20\" (or newer) among its `target_compile_features`",
|
||||
effStandard));
|
||||
} break;
|
||||
case cmGeneratorTarget::Cxx20SupportLevel::Supported:
|
||||
// All is well.
|
||||
break;
|
||||
|
||||
@@ -438,8 +438,8 @@ void cmGlobalVisualStudio7Generator::WriteTargetsToSolution(
|
||||
if (target->HaveCxx20ModuleSources() && !this->SupportsCxxModuleDyndep()) {
|
||||
root->GetMakefile()->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
cmStrCat("The \"", target->GetName(),
|
||||
"\" target contains C++ module sources which are not "
|
||||
cmStrCat("The target named \"", target->GetName(),
|
||||
"\" contains C++ sources that export modules which is not "
|
||||
"supported by the generator"));
|
||||
}
|
||||
|
||||
|
||||
@@ -1374,8 +1374,8 @@ bool cmGlobalXCodeGenerator::CreateXCodeTarget(
|
||||
if (gtgt->HaveCxx20ModuleSources()) {
|
||||
gtgt->Makefile->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
cmStrCat("The \"", gtgt->GetName(),
|
||||
"\" target contains C++ module sources which are not "
|
||||
cmStrCat("The target named \"", gtgt->GetName(),
|
||||
"\" contains C++ sources that export modules which is not "
|
||||
"supported by the generator"));
|
||||
}
|
||||
|
||||
|
||||
@@ -201,9 +201,9 @@ void cmMakefileTargetGenerator::WriteTargetBuildRules()
|
||||
if (this->GeneratorTarget->HaveCxx20ModuleSources()) {
|
||||
this->Makefile->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
cmStrCat("The \"", this->GeneratorTarget->GetName(),
|
||||
"\" target contains C++ module sources which are not supported "
|
||||
"by the generator"));
|
||||
cmStrCat("The target named \"", this->GeneratorTarget->GetName(),
|
||||
"\" contains C++ sources that export modules which is not "
|
||||
"supported by the generator"));
|
||||
}
|
||||
|
||||
// -- Write the custom commands for this target
|
||||
|
||||
@@ -361,9 +361,9 @@ void cmVisualStudio10TargetGenerator::Generate()
|
||||
!this->GlobalGenerator->SupportsCxxModuleDyndep()) {
|
||||
this->Makefile->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
cmStrCat("The \"", this->GeneratorTarget->GetName(),
|
||||
"\" target contains C++ module sources which are not supported "
|
||||
"by the generator"));
|
||||
cmStrCat("The target named \"", this->GeneratorTarget->GetName(),
|
||||
"\" contains C++ sources that export modules which is not "
|
||||
"supported by the generator"));
|
||||
}
|
||||
|
||||
this->ProjectType = computeProjectType(this->GeneratorTarget);
|
||||
|
||||
@@ -6,15 +6,15 @@ Call Stack \(most recent call first\):
|
||||
This warning is for project developers. Use -Wno-dev to suppress it.
|
||||
|
||||
CMake Error in CMakeLists.txt:
|
||||
The "nocxx" target has C\+\+ module sources but the "CXX" language has not
|
||||
been enabled
|
||||
The target named "nocxx" has C\+\+ sources that export modules but the "CXX"
|
||||
language has not been enabled
|
||||
|
||||
(
|
||||
CMake Error in CMakeLists.txt:
|
||||
( The "nocxx" target has C\+\+ module sources but the "CXX" language has not
|
||||
been enabled
|
||||
| The "nocxx" target contains C\+\+ module sources which are not supported by
|
||||
the generator
|
||||
( The target named "nocxx" has C\+\+ sources that export modules but the "CXX"
|
||||
language has not been enabled
|
||||
| The target named "nocxx" contains C\+\+ sources that export modules which is
|
||||
not supported by the generator
|
||||
)
|
||||
)*
|
||||
CMake Generate step failed. Build files cannot be regenerated correctly.
|
||||
|
||||
@@ -6,15 +6,17 @@ Call Stack \(most recent call first\):
|
||||
This warning is for project developers. Use -Wno-dev to suppress it.
|
||||
|
||||
CMake Error in CMakeLists.txt:
|
||||
The "nocxx20" target has C\+\+ module sources but is not using at least
|
||||
"cxx_std_20"
|
||||
The target named "nocxx20" has C\+\+ sources that export modules but does not
|
||||
include "cxx_std_20" \(or newer\) among its `target_compile_features`; found
|
||||
"cxx_std_17"
|
||||
|
||||
(
|
||||
CMake Error in CMakeLists.txt:
|
||||
( The "nocxx20" target has C\+\+ module sources but is not using at least
|
||||
"cxx_std_20"
|
||||
| The "nocxx20" target contains C\+\+ module sources which are not supported by
|
||||
the generator
|
||||
( The target named "nocxx20" has C\+\+ sources that export 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 export modules which
|
||||
is not supported by the generator
|
||||
)
|
||||
)*
|
||||
CMake Generate step failed. Build files cannot be regenerated correctly.
|
||||
|
||||
@@ -6,15 +6,15 @@ Call Stack \(most recent call first\):
|
||||
This warning is for project developers. Use -Wno-dev to suppress it.
|
||||
|
||||
CMake Error in CMakeLists.txt:
|
||||
The "noexperimentalflag" target has C\+\+ module sources but its experimental
|
||||
support has not been requested
|
||||
The target named "noexperimentalflag" has C\+\+ sources that export modules
|
||||
but its experimental support has not been requested
|
||||
|
||||
(
|
||||
CMake Error in CMakeLists.txt:
|
||||
( The "noexperimentalflag" target has C\+\+ module sources but its experimental
|
||||
support has not been requested
|
||||
| The "noexperimentalflag" target contains C\+\+ module sources which are not
|
||||
supported by the generator
|
||||
( The target named "noexperimentalflag" has C\+\+ sources that export modules
|
||||
but its experimental support has not been requested
|
||||
| The target named "noexperimentalflag" contains C\+\+ sources that export
|
||||
modules which is not supported by the generator
|
||||
)
|
||||
)*
|
||||
CMake Generate step failed. Build files cannot be regenerated correctly.
|
||||
|
||||
@@ -13,13 +13,13 @@ This warning is for project developers. Use -Wno-dev to suppress it.
|
||||
due to lack of required features. Ninja 1.11 or higher is required.
|
||||
|
||||
|CMake Error in CMakeLists.txt:
|
||||
The "nodyndep" target contains C\+\+ module sources which are not supported
|
||||
by the generator
|
||||
The target named "nodyndep" contains C\+\+ sources that export modules which
|
||||
is not supported by the generator
|
||||
|
||||
(
|
||||
CMake Error in CMakeLists.txt:
|
||||
The "nodyndep" target contains C\+\+ module sources which are not supported
|
||||
by the generator
|
||||
The target named "nodyndep" contains C\+\+ sources that export modules which
|
||||
is not supported by the generator
|
||||
|
||||
)*)
|
||||
CMake Generate step failed. Build files cannot be regenerated correctly.
|
||||
|
||||
Reference in New Issue
Block a user