From fa5c352668b497e626fe74c50e33250404d06960 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 25 Apr 2023 13:03:06 +0200 Subject: [PATCH] CMakePM: Fix boolean cacheVariables parsing Fixes: QTCREATORBUG-29078 Change-Id: I652343d6d688e36b6d5ecc23e91243b4cecbb87d Reviewed-by: Alessandro Portale --- .../cmakeprojectmanager/presetsparser.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/presetsparser.cpp b/src/plugins/cmakeprojectmanager/presetsparser.cpp index eed174e2b42..ad4ab07fcb5 100644 --- a/src/plugins/cmakeprojectmanager/presetsparser.cpp +++ b/src/plugins/cmakeprojectmanager/presetsparser.cpp @@ -215,12 +215,24 @@ bool parseConfigurePresets(const QJsonValue &jsonValue, item.key = cacheKey.toUtf8(); item.type = CMakeConfigItem::typeStringToType( cacheVariableObj.value("type").toString().toUtf8()); - item.value = cacheVariableObj.value("type").toString().toUtf8(); + item.value = cacheVariableObj.value("value").toString().toUtf8(); preset.cacheVariables.value() << item; } else { - preset.cacheVariables.value() - << CMakeConfigItem(cacheKey.toUtf8(), cacheValue.toString().toUtf8()); + if (cacheValue.isBool()) { + preset.cacheVariables.value() + << CMakeConfigItem(cacheKey.toUtf8(), + CMakeConfigItem::BOOL, + cacheValue.toBool() ? "ON" : "OFF"); + } else if (CMakeConfigItem::toBool(cacheValue.toString()).has_value()) { + preset.cacheVariables.value() + << CMakeConfigItem(cacheKey.toUtf8(), + CMakeConfigItem::BOOL, + cacheValue.toString().toUtf8()); + } else { + preset.cacheVariables.value() + << CMakeConfigItem(cacheKey.toUtf8(), cacheValue.toString().toUtf8()); + } } }