1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-20 12:53:55 +08:00

presets: Fix buildPreset "targets" not allowing a single string

Fixes: #22272
This commit is contained in:
Sam Freed
2021-06-03 15:33:58 -07:00
committed by Brad King
parent 9c33ff4dda
commit efe7ac9022
3 changed files with 16 additions and 8 deletions

View File

@@ -350,7 +350,7 @@ auto const PresetVectorStringHelper =
ReadFileResult::READ_OK, ReadFileResult::INVALID_PRESET, ReadFileResult::READ_OK, ReadFileResult::INVALID_PRESET,
PresetStringHelper); PresetStringHelper);
ReadFileResult PresetInheritsHelper(std::vector<std::string>& out, ReadFileResult PresetVectorOneOrMoreStringHelper(std::vector<std::string>& out,
const Json::Value* value) const Json::Value* value)
{ {
out.clear(); out.clear();
@@ -478,8 +478,8 @@ auto const ConfigurePresetHelper =
cmJSONObjectHelper<ConfigurePreset, ReadFileResult>( cmJSONObjectHelper<ConfigurePreset, ReadFileResult>(
ReadFileResult::READ_OK, ReadFileResult::INVALID_PRESET, false) ReadFileResult::READ_OK, ReadFileResult::INVALID_PRESET, false)
.Bind("name"_s, &ConfigurePreset::Name, PresetStringHelper) .Bind("name"_s, &ConfigurePreset::Name, PresetStringHelper)
.Bind("inherits"_s, &ConfigurePreset::Inherits, PresetInheritsHelper, .Bind("inherits"_s, &ConfigurePreset::Inherits,
false) PresetVectorOneOrMoreStringHelper, false)
.Bind("hidden"_s, &ConfigurePreset::Hidden, PresetBoolHelper, false) .Bind("hidden"_s, &ConfigurePreset::Hidden, PresetBoolHelper, false)
.Bind<std::nullptr_t>("vendor"_s, nullptr, .Bind<std::nullptr_t>("vendor"_s, nullptr,
VendorHelper(ReadFileResult::INVALID_PRESET), false) VendorHelper(ReadFileResult::INVALID_PRESET), false)
@@ -512,7 +512,8 @@ auto const BuildPresetHelper =
cmJSONObjectHelper<BuildPreset, ReadFileResult>( cmJSONObjectHelper<BuildPreset, ReadFileResult>(
ReadFileResult::READ_OK, ReadFileResult::INVALID_PRESET, false) ReadFileResult::READ_OK, ReadFileResult::INVALID_PRESET, false)
.Bind("name"_s, &BuildPreset::Name, PresetStringHelper) .Bind("name"_s, &BuildPreset::Name, PresetStringHelper)
.Bind("inherits"_s, &BuildPreset::Inherits, PresetInheritsHelper, false) .Bind("inherits"_s, &BuildPreset::Inherits,
PresetVectorOneOrMoreStringHelper, false)
.Bind("hidden"_s, &BuildPreset::Hidden, PresetBoolHelper, false) .Bind("hidden"_s, &BuildPreset::Hidden, PresetBoolHelper, false)
.Bind<std::nullptr_t>("vendor"_s, nullptr, .Bind<std::nullptr_t>("vendor"_s, nullptr,
VendorHelper(ReadFileResult::INVALID_PRESET), false) VendorHelper(ReadFileResult::INVALID_PRESET), false)
@@ -528,7 +529,8 @@ auto const BuildPresetHelper =
&BuildPreset::InheritConfigureEnvironment, PresetOptionalBoolHelper, &BuildPreset::InheritConfigureEnvironment, PresetOptionalBoolHelper,
false) false)
.Bind("jobs"_s, &BuildPreset::Jobs, PresetOptionalIntHelper, false) .Bind("jobs"_s, &BuildPreset::Jobs, PresetOptionalIntHelper, false)
.Bind("targets"_s, &BuildPreset::Targets, PresetVectorStringHelper, false) .Bind("targets"_s, &BuildPreset::Targets,
PresetVectorOneOrMoreStringHelper, false)
.Bind("configuration"_s, &BuildPreset::Configuration, PresetStringHelper, .Bind("configuration"_s, &BuildPreset::Configuration, PresetStringHelper,
false) false)
.Bind("cleanFirst"_s, &BuildPreset::CleanFirst, PresetOptionalBoolHelper, .Bind("cleanFirst"_s, &BuildPreset::CleanFirst, PresetOptionalBoolHelper,
@@ -831,7 +833,8 @@ auto const TestPresetHelper =
cmJSONObjectHelper<TestPreset, ReadFileResult>( cmJSONObjectHelper<TestPreset, ReadFileResult>(
ReadFileResult::READ_OK, ReadFileResult::INVALID_PRESET, false) ReadFileResult::READ_OK, ReadFileResult::INVALID_PRESET, false)
.Bind("name"_s, &TestPreset::Name, PresetStringHelper) .Bind("name"_s, &TestPreset::Name, PresetStringHelper)
.Bind("inherits"_s, &TestPreset::Inherits, PresetInheritsHelper, false) .Bind("inherits"_s, &TestPreset::Inherits,
PresetVectorOneOrMoreStringHelper, false)
.Bind("hidden"_s, &TestPreset::Hidden, PresetBoolHelper, false) .Bind("hidden"_s, &TestPreset::Hidden, PresetBoolHelper, false)
.Bind<std::nullptr_t>("vendor"_s, nullptr, .Bind<std::nullptr_t>("vendor"_s, nullptr,
VendorHelper(ReadFileResult::INVALID_PRESET), false) VendorHelper(ReadFileResult::INVALID_PRESET), false)

View File

@@ -73,6 +73,11 @@
"vendor": { "vendor": {
"example.com": "value" "example.com": "value"
} }
},
{
"name": "singleTarget",
"inherits": "build-default",
"targets": "good"
} }
] ]
} }

View File

@@ -62,7 +62,7 @@ endfunction()
set(CMakePresets_SCHEMA_EXPECTED_RESULT 0) set(CMakePresets_SCHEMA_EXPECTED_RESULT 0)
run_cmake_build_presets(Good "default;other" "build-other;withEnvironment;noEnvironment;macros;vendorObject") run_cmake_build_presets(Good "default;other" "build-other;withEnvironment;noEnvironment;macros;vendorObject;singleTarget")
run_cmake_build_presets(InvalidConfigurePreset "default" "badConfigurePreset") run_cmake_build_presets(InvalidConfigurePreset "default" "badConfigurePreset")
run_cmake_build_presets(Condition "default" "enabled;disabled") run_cmake_build_presets(Condition "default" "enabled;disabled")