presets: Identify unknown configure preset references

This commit is contained in:
Maximilian Sander
2026-07-28 00:57:44 +02:00
parent 7de3c48731
commit 9f28db13e6
11 changed files with 48 additions and 16 deletions
+7 -4
View File
@@ -170,11 +170,14 @@ void INVALID_INCLUDE(Json::Value const* value, cmJSONState* state)
state->AddErrorAtValue("Invalid \"include\" field", value);
}
void INVALID_CONFIGURE_PRESET(std::string const& presetName,
cmJSONState* state)
void CONFIGURE_PRESET_NOT_FOUND(std::string const& presetName,
std::string const& kind,
std::string const& configurePreset,
cmJSONState* state)
{
state->AddError(
cmStrCat(R"(Invalid "configurePreset": ")", presetName, '"'));
state->AddError(cmStrCat(
CapitalizePresetKind(kind), " preset \"", presetName,
"\" references unknown configure preset \"", configurePreset, '"'));
}
void INSTALL_PREFIX_UNSUPPORTED(Json::Value const* value, cmJSONState* state)
+4 -2
View File
@@ -66,8 +66,10 @@ void INCLUDE_UNSUPPORTED(Json::Value const*, cmJSONState* state);
void INVALID_INCLUDE(Json::Value const* value, cmJSONState* state);
void INVALID_CONFIGURE_PRESET(std::string const& presetName,
cmJSONState* state);
void CONFIGURE_PRESET_NOT_FOUND(std::string const& presetName,
std::string const& kind,
std::string const& configurePreset,
cmJSONState* state);
void INSTALL_PREFIX_UNSUPPORTED(Json::Value const* value, cmJSONState* state);
+9 -6
View File
@@ -1278,8 +1278,9 @@ bool cmCMakePresetsGraph::ReadProjectPresetsInternal(
auto const configurePreset =
this->ConfigurePresets.find(it.second.Unexpanded.ConfigurePreset);
if (configurePreset == this->ConfigurePresets.end()) {
cmCMakePresetsErrors::INVALID_CONFIGURE_PRESET(it.first,
&this->parseState);
cmCMakePresetsErrors::CONFIGURE_PRESET_NOT_FOUND(
it.first, BuildPreset::kind(), it.second.Unexpanded.ConfigurePreset,
&this->parseState);
return false;
}
if (!it.second.Unexpanded.OriginFile->ReachableFiles.count(
@@ -1308,8 +1309,9 @@ bool cmCMakePresetsGraph::ReadProjectPresetsInternal(
auto const configurePreset =
this->ConfigurePresets.find(it.second.Unexpanded.ConfigurePreset);
if (configurePreset == this->ConfigurePresets.end()) {
cmCMakePresetsErrors::INVALID_CONFIGURE_PRESET(it.first,
&this->parseState);
cmCMakePresetsErrors::CONFIGURE_PRESET_NOT_FOUND(
it.first, TestPreset::kind(), it.second.Unexpanded.ConfigurePreset,
&this->parseState);
return false;
}
if (!it.second.Unexpanded.OriginFile->ReachableFiles.count(
@@ -1338,8 +1340,9 @@ bool cmCMakePresetsGraph::ReadProjectPresetsInternal(
auto const configurePreset =
this->ConfigurePresets.find(it.second.Unexpanded.ConfigurePreset);
if (configurePreset == this->ConfigurePresets.end()) {
cmCMakePresetsErrors::INVALID_CONFIGURE_PRESET(it.first,
&this->parseState);
cmCMakePresetsErrors::CONFIGURE_PRESET_NOT_FOUND(
it.first, PackagePreset::kind(),
it.second.Unexpanded.ConfigurePreset, &this->parseState);
return false;
}
if (!it.second.Unexpanded.OriginFile->ReachableFiles.count(
@@ -1,3 +1,3 @@
CMake Error: Could not read presets from [^
]*/Tests/RunCMake/CMakePresetsBuild/InvalidConfigurePreset:
Invalid "configurePreset": "badConfigurePreset"$
Build preset "badConfigurePreset" references unknown configure preset "dne"$
@@ -1,3 +1,3 @@
CMake Error: Could not read presets from [^
]*/Tests/RunCMake/CMakePresetsBuild/InvalidConfigurePreset:
Invalid "configurePreset": "badConfigurePreset"$
Build preset "badConfigurePreset" references unknown configure preset "dne"$
@@ -0,0 +1,3 @@
^CPack Error: Could not read presets from [^
]*/Tests/RunCMake/CMakePresetsPackage/InvalidConfigurePreset:
Package preset "package-release" references unknown configure preset "does-not-exist"$
@@ -0,0 +1,16 @@
{
"version": 6,
"configurePresets": [
{
"name": "default",
"generator": "@RunCMake_GENERATOR@",
"binaryDir": "${sourceDir}/build"
}
],
"packagePresets": [
{
"name": "package-release",
"configurePreset": "does-not-exist"
}
]
}
@@ -115,3 +115,7 @@ unset(CMakePresets_FILE_ARG)
run_cmake_command(PresetsNoArg-package ${CMAKE_CPACK_COMMAND} "--preset")
run_cmake_command(PresetsNoArgEq-package ${CMAKE_CPACK_COMMAND} "--preset=")
run_cmake_command(PresetsFileNoArg-package ${CMAKE_CPACK_COMMAND} "--presets-file")
set(CMakePresetsPackage_NO_CONFIGURE 1)
set(CMakePresetsPackage_NO_BUILD 1)
run_cmake_package_presets(InvalidConfigurePreset "" "" "package-release")
@@ -1,3 +1,3 @@
CMake Error: Could not read presets from [^
]*/Tests/RunCMake/CMakePresetsTest/InvalidConfigurePreset:
Invalid "configurePreset": "badConfigurePreset"$
Test preset "badConfigurePreset" references unknown configure preset "dne"$
@@ -1,3 +1,3 @@
CMake Error: Could not read presets from [^
]*/Tests/RunCMake/CMakePresetsTest/InvalidConfigurePreset:
Invalid "configurePreset": "badConfigurePreset"$
Test preset "badConfigurePreset" references unknown configure preset "dne"$