CMakePM: Fix boolean cacheVariables parsing

Fixes: QTCREATORBUG-29078
Change-Id: I652343d6d688e36b6d5ecc23e91243b4cecbb87d
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Cristian Adam
2023-04-25 13:03:06 +02:00
parent 2e384d9c12
commit fa5c352668

View File

@@ -215,14 +215,26 @@ 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 {
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());
}
}
}
const QJsonObject environmentObj = object.value("environment").toObject();
for (const QString &envKey : environmentObj.keys()) {