diff options
-rw-r--r-- | Source/cmCMakePresetsFileReadJSON.cxx | 17 | ||||
-rw-r--r-- | Tests/RunCMake/CMakePresetsBuild/Good.json.in | 5 | ||||
-rw-r--r-- | Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake | 2 |
3 files changed, 16 insertions, 8 deletions
diff --git a/Source/cmCMakePresetsFileReadJSON.cxx b/Source/cmCMakePresetsFileReadJSON.cxx index 909a78b..489551d 100644 --- a/Source/cmCMakePresetsFileReadJSON.cxx +++ b/Source/cmCMakePresetsFileReadJSON.cxx @@ -350,8 +350,8 @@ auto const PresetVectorStringHelper = ReadFileResult::READ_OK, ReadFileResult::INVALID_PRESET, PresetStringHelper); -ReadFileResult PresetInheritsHelper(std::vector<std::string>& out, - const Json::Value* value) +ReadFileResult PresetVectorOneOrMoreStringHelper(std::vector<std::string>& out, + const Json::Value* value) { out.clear(); if (!value) { @@ -478,8 +478,8 @@ auto const ConfigurePresetHelper = cmJSONObjectHelper<ConfigurePreset, ReadFileResult>( ReadFileResult::READ_OK, ReadFileResult::INVALID_PRESET, false) .Bind("name"_s, &ConfigurePreset::Name, PresetStringHelper) - .Bind("inherits"_s, &ConfigurePreset::Inherits, PresetInheritsHelper, - false) + .Bind("inherits"_s, &ConfigurePreset::Inherits, + PresetVectorOneOrMoreStringHelper, false) .Bind("hidden"_s, &ConfigurePreset::Hidden, PresetBoolHelper, false) .Bind<std::nullptr_t>("vendor"_s, nullptr, VendorHelper(ReadFileResult::INVALID_PRESET), false) @@ -512,7 +512,8 @@ auto const BuildPresetHelper = cmJSONObjectHelper<BuildPreset, ReadFileResult>( ReadFileResult::READ_OK, ReadFileResult::INVALID_PRESET, false) .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<std::nullptr_t>("vendor"_s, nullptr, VendorHelper(ReadFileResult::INVALID_PRESET), false) @@ -528,7 +529,8 @@ auto const BuildPresetHelper = &BuildPreset::InheritConfigureEnvironment, PresetOptionalBoolHelper, 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, false) .Bind("cleanFirst"_s, &BuildPreset::CleanFirst, PresetOptionalBoolHelper, @@ -831,7 +833,8 @@ auto const TestPresetHelper = cmJSONObjectHelper<TestPreset, ReadFileResult>( ReadFileResult::READ_OK, ReadFileResult::INVALID_PRESET, false) .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<std::nullptr_t>("vendor"_s, nullptr, VendorHelper(ReadFileResult::INVALID_PRESET), false) diff --git a/Tests/RunCMake/CMakePresetsBuild/Good.json.in b/Tests/RunCMake/CMakePresetsBuild/Good.json.in index fd43c4e..3d0b838 100644 --- a/Tests/RunCMake/CMakePresetsBuild/Good.json.in +++ b/Tests/RunCMake/CMakePresetsBuild/Good.json.in @@ -73,6 +73,11 @@ "vendor": { "example.com": "value" } + }, + { + "name": "singleTarget", + "inherits": "build-default", + "targets": "good" } ] } diff --git a/Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake b/Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake index afa22eb..2c8d1a0 100644 --- a/Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake +++ b/Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake @@ -62,7 +62,7 @@ endfunction() 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(Condition "default" "enabled;disabled") |