1
0
Эх сурвалжийг харах

Merge topic 'cmake-presets-v2-inherit-v3-optional' into release-3.21

3e42bf3e05 CMakePresets: Check presets with their own file version

Acked-by: Kitware Robot <[email protected]>
Merge-request: !6398
Brad King 4 жил өмнө
parent
commit
b880867e5a

+ 5 - 5
Source/cmCMakePresetsFile.cxx

@@ -78,7 +78,8 @@ void InheritVector(std::vector<T>& child, const std::vector<T>& parent)
 template <class T>
 ReadFileResult VisitPreset(
   T& preset, std::map<std::string, cmCMakePresetsFile::PresetPair<T>>& presets,
-  std::map<std::string, CycleStatus> cycleStatus, int version)
+  std::map<std::string, CycleStatus> cycleStatus,
+  const cmCMakePresetsFile& file)
 {
   switch (cycleStatus[preset.Name]) {
     case CycleStatus::InProgress:
@@ -108,7 +109,7 @@ ReadFileResult VisitPreset(
       return ReadFileResult::USER_PRESET_INHERITANCE;
     }
 
-    auto result = VisitPreset(parentPreset, presets, cycleStatus, version);
+    auto result = VisitPreset(parentPreset, presets, cycleStatus, file);
     if (result != ReadFileResult::READ_OK) {
       return result;
     }
@@ -128,7 +129,7 @@ ReadFileResult VisitPreset(
     preset.ConditionEvaluator.reset();
   }
 
-  CHECK_OK(preset.VisitPresetAfterInherit(version))
+  CHECK_OK(preset.VisitPresetAfterInherit(file.GetVersion(preset)))
 
   cycleStatus[preset.Name] = CycleStatus::Verified;
   return ReadFileResult::READ_OK;
@@ -146,8 +147,7 @@ ReadFileResult ComputePresetInheritance(
 
   for (auto& it : presets) {
     auto& preset = it.second.Unexpanded;
-    auto result =
-      VisitPreset<T>(preset, presets, cycleStatus, file.GetVersion(preset));
+    auto result = VisitPreset<T>(preset, presets, cycleStatus, file);
     if (result != ReadFileResult::READ_OK) {
       return result;
     }

+ 1 - 0
Tests/RunCMake/CMakePresets/RunCMakeTest.cmake

@@ -260,6 +260,7 @@ unset(CMakePresets_FILE)
 run_cmake_presets(GoodUserOnly)
 run_cmake_presets(GoodUserFromMain)
 run_cmake_presets(GoodUserFromUser)
+run_cmake_presets(V2InheritV3Optional)
 
 # Test CMakeUserPresets.json errors
 run_cmake_presets(UserDuplicateInUser)

+ 0 - 0
Tests/RunCMake/CMakePresets/V2InheritV3Optional.cmake


+ 8 - 0
Tests/RunCMake/CMakePresets/V2InheritV3Optional.json.in

@@ -0,0 +1,8 @@
+{
+  "version": 3,
+  "configurePresets": [
+    {
+      "name": "default"
+    }
+  ]
+}

+ 11 - 0
Tests/RunCMake/CMakePresets/V2InheritV3OptionalUser.json.in

@@ -0,0 +1,11 @@
+{
+  "version": 2,
+  "configurePresets": [
+    {
+      "name": "V2InheritV3Optional",
+      "inherits": "default",
+      "generator": "@RunCMake_GENERATOR@",
+      "binaryDir": "${sourceDir}/build"
+    }
+  ]
+}