mirror of
https://github.com/Kitware/CMake.git
synced 2026-11-06 05:16:58 +00:00
presets: Extend ResolvePreset to workflow presets
Replace the inline workflow preset lookup and validation with the
shared utilities used by the other preset types, from commit e99fbf4100
(Presets: Extract ResolvePreset utility for preset resolution,
2026-04-21, v4.4.0-rc1~284^2).
This commit is contained in:
1 parent
8e91f7aa9b
commit
2603725ccc
3 files changed
+33
-30
No files matched your search
@@ -562,6 +562,14 @@ cmCMakePresetsGraph::ResolvePreset(
|
||||
cmCMakePresetsGraph::PresetPair<
|
||||
cmCMakePresetsGraph::PackagePreset>> const&) const;
|
||||
|
||||
extern template cmCMakePresetsGraph::PresetResolveResult<
|
||||
cmCMakePresetsGraph::WorkflowPreset>
|
||||
cmCMakePresetsGraph::ResolvePreset(
|
||||
std::string const&,
|
||||
std::map<std::string,
|
||||
cmCMakePresetsGraph::PresetPair<
|
||||
cmCMakePresetsGraph::WorkflowPreset>> const&) const;
|
||||
|
||||
extern template cm::optional<std::string>
|
||||
cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::ConfigurePreset>(
|
||||
cmCMakePresetsGraph::PresetResolveStatus, std::string const&,
|
||||
@@ -581,3 +589,8 @@ extern template cm::optional<std::string>
|
||||
cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::PackagePreset>(
|
||||
cmCMakePresetsGraph::PresetResolveStatus, std::string const&,
|
||||
std::string const&);
|
||||
|
||||
extern template cm::optional<std::string>
|
||||
cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::WorkflowPreset>(
|
||||
cmCMakePresetsGraph::PresetResolveStatus, std::string const&,
|
||||
std::string const&);
|
||||
@@ -72,6 +72,13 @@ cmCMakePresetsGraph::ResolvePreset(
|
||||
std::map<std::string, PresetPair<cmCMakePresetsGraph::PackagePreset>> const&)
|
||||
const;
|
||||
|
||||
template cmCMakePresetsGraph::PresetResolveResult<
|
||||
cmCMakePresetsGraph::WorkflowPreset>
|
||||
cmCMakePresetsGraph::ResolvePreset(
|
||||
std::string const&,
|
||||
std::map<std::string,
|
||||
PresetPair<cmCMakePresetsGraph::WorkflowPreset>> const&) const;
|
||||
|
||||
template <class T>
|
||||
cm::optional<std::string> cmCMakePresetsGraph::FormatPresetError(
|
||||
PresetResolveStatus status, std::string const& errorPresetName,
|
||||
@@ -114,3 +121,7 @@ cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::TestPreset>(
|
||||
template cm::optional<std::string>
|
||||
cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::PackagePreset>(
|
||||
PresetResolveStatus, std::string const&, std::string const&);
|
||||
|
||||
template cm::optional<std::string>
|
||||
cmCMakePresetsGraph::FormatPresetError<cmCMakePresetsGraph::WorkflowPreset>(
|
||||
PresetResolveStatus, std::string const&, std::string const&);
|
||||
+9
-30
@@ -4462,39 +4462,18 @@ int cmake::Workflow(cmCMakePresetsWorkflowArgs const& args)
|
||||
return 0;
|
||||
}
|
||||
|
||||
auto presetPair = settingsFile.WorkflowPresets.find(args.PresetName);
|
||||
if (presetPair == settingsFile.WorkflowPresets.end()) {
|
||||
cmSystemTools::Error(cmStrCat("No such workflow preset in ",
|
||||
this->GetHomeDirectory(), ": \"",
|
||||
args.PresetName, '"'));
|
||||
settingsFile.PrintWorkflowPresetList();
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (presetPair->second.Unexpanded.Hidden) {
|
||||
cmSystemTools::Error(cmStrCat("Cannot use hidden workflow preset in ",
|
||||
this->GetHomeDirectory(), ": \"",
|
||||
args.PresetName, '"'));
|
||||
settingsFile.PrintWorkflowPresetList();
|
||||
return 1;
|
||||
}
|
||||
|
||||
auto const& expandedPreset = presetPair->second.Expanded;
|
||||
if (!expandedPreset) {
|
||||
cmSystemTools::Error(cmStrCat("Could not evaluate workflow preset \"",
|
||||
args.PresetName,
|
||||
"\": Invalid macro expansion"));
|
||||
settingsFile.PrintWorkflowPresetList();
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!expandedPreset->ConditionResult) {
|
||||
cmSystemTools::Error(cmStrCat("Cannot use disabled workflow preset in ",
|
||||
this->GetHomeDirectory(), ": \"",
|
||||
args.PresetName, '"'));
|
||||
auto resolveResult =
|
||||
settingsFile.ResolvePreset(args.PresetName, settingsFile.WorkflowPresets);
|
||||
auto resolveError = cmCMakePresetsGraph::FormatPresetError<
|
||||
cmCMakePresetsGraph::WorkflowPreset>(resolveResult.StatusCode,
|
||||
resolveResult.ErrorPresetName,
|
||||
this->GetHomeDirectory());
|
||||
if (resolveError) {
|
||||
cmSystemTools::Error(*resolveError);
|
||||
settingsFile.PrintWorkflowPresetList();
|
||||
return 1;
|
||||
}
|
||||
auto const* expandedPreset = resolveResult.Preset;
|
||||
|
||||
struct CalculatedStep
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user