Merge topic 'presets-build-fixes'
de2b14a711
Merge branch 'backport-3.20-presets-build-fixes' into presets-build-fixes534c40e6d8
presets: Fix buildPreset "targets" not allowing a single string5d67632813
presets: Fix buildPreset "jobs"93e396b402
presets: Fix buildPreset "jobs" field test caseefe7ac9022
presets: Fix buildPreset "targets" not allowing a single string Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Kyle Edwards <kyle.edwards@kitware.com> Merge-request: !6190
This commit is contained in:
commit
072f8b7d0e
@ -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)
|
||||
|
@ -3276,7 +3276,9 @@ int cmake::Build(int jobs, std::string dir, std::vector<std::string> targets,
|
||||
this->UnprocessedPresetEnvironment = expandedPreset->Environment;
|
||||
this->ProcessPresetEnvironment();
|
||||
|
||||
if (jobs == cmake::DEFAULT_BUILD_PARALLEL_LEVEL && expandedPreset->Jobs) {
|
||||
if ((jobs == cmake::DEFAULT_BUILD_PARALLEL_LEVEL ||
|
||||
jobs == cmake::NO_BUILD_PARALLEL_LEVEL) &&
|
||||
expandedPreset->Jobs) {
|
||||
jobs = *expandedPreset->Jobs;
|
||||
}
|
||||
|
||||
|
@ -852,9 +852,19 @@ add_RunCMake_test(PrecompileHeaders -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID}
|
||||
-DCMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION})
|
||||
|
||||
add_RunCMake_test("UnityBuild")
|
||||
add_RunCMake_test(CMakePresets -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA})
|
||||
add_RunCMake_test(CMakePresetsBuild -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA})
|
||||
add_RunCMake_test(CMakePresetsTest -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA})
|
||||
add_RunCMake_test(CMakePresets
|
||||
-DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
|
||||
-DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA}
|
||||
)
|
||||
add_RunCMake_test(CMakePresetsBuild
|
||||
-DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
|
||||
-DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA}
|
||||
-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
|
||||
)
|
||||
add_RunCMake_test(CMakePresetsTest
|
||||
-DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
|
||||
-DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA}
|
||||
)
|
||||
|
||||
if(${CMAKE_GENERATOR} MATCHES "Make|Ninja")
|
||||
add_RunCMake_test(TransformDepfile)
|
||||
|
@ -30,7 +30,7 @@
|
||||
"description": "",
|
||||
"inheritConfigureEnvironment": true,
|
||||
"environment": {},
|
||||
"jobs": 0,
|
||||
@Good_json_jobs@
|
||||
"targets": [],
|
||||
"configuration": "",
|
||||
"verbose": true,
|
||||
@ -73,6 +73,11 @@
|
||||
"vendor": {
|
||||
"example.com": "value"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "singleTarget",
|
||||
"inherits": "build-default",
|
||||
"targets": "good"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -62,7 +62,15 @@ endfunction()
|
||||
|
||||
set(CMakePresets_SCHEMA_EXPECTED_RESULT 0)
|
||||
|
||||
run_cmake_build_presets(Good "default;other" "build-other;withEnvironment;noEnvironment;macros;vendorObject")
|
||||
if(RunCMake_GENERATOR MATCHES "NMake|Borland|Watcom")
|
||||
set(Good_json_jobs [[]])
|
||||
elseif(RunCMake_GENERATOR MATCHES "Make" AND CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||
set(Good_json_jobs [["jobs": 1,]])
|
||||
else()
|
||||
set(Good_json_jobs [["jobs": 0,]])
|
||||
endif()
|
||||
|
||||
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")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user