From 65a1637d61b1c6432eec0ebd99094569911ede90 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 25 Apr 2023 17:01:11 +0200 Subject: [PATCH] CMakePM: Fix presets transitive inheritance Fixes: QTCREATORBUG-29076 Change-Id: Ibe4c3eebb3fcebeabafc485949a19e696ecad2de Reviewed-by: Reviewed-by: Alessandro Portale --- src/plugins/cmakeprojectmanager/cmakeproject.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index ecf3228d318..ae6e26f9e32 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -100,7 +100,9 @@ Internal::PresetsData CMakeProject::combinePresets(Internal::PresetsData &cmakeP Utils::sort(presetsList, [](const auto &left, const auto &right) { const bool sameInheritance = left.inherits && right.inherits && left.inherits.value() == right.inherits.value(); - if (!left.inherits || left.inherits.value().contains(right.name) || sameInheritance) + const bool leftInheritsRight = left.inherits + && left.inherits.value().contains(right.name); + if ((left.inherits && !right.inherits) || leftInheritsRight || sameInheritance) return false; return true; });