Merge remote-tracking branch 'origin/10.0'

Change-Id: Idf151b6cfe87957cf905e67aab6b1275b9f0506a
This commit is contained in:
Eike Ziller
2023-03-06 08:24:18 +01:00
21 changed files with 1083 additions and 859 deletions

View File

@@ -194,7 +194,17 @@ QString CMakeConfigItem::expandedValue(const ProjectExplorer::Kit *k) const
QString CMakeConfigItem::expandedValue(const Utils::MacroExpander *expander) const
{
return expander ? expander->expand(QString::fromUtf8(value)) : QString::fromUtf8(value);
QString expandedValue = expander ? expander->expand(QString::fromUtf8(value))
: QString::fromUtf8(value);
// Make sure we have CMake paths using / instead of \\ on Windows
// %{buildDir} returns \\ on Windows
if (type == CMakeConfigItem::FILEPATH || type == CMakeConfigItem::PATH) {
const FilePaths paths = transform(expandedValue.split(";"), &FilePath::fromUserInput);
expandedValue = transform(paths, &FilePath::path).join(";");
}
return expandedValue;
}
bool CMakeConfigItem::less(const CMakeConfigItem &a, const CMakeConfigItem &b)
@@ -424,9 +434,7 @@ QString CMakeConfigItem::toString(const Utils::MacroExpander *expander) const
break;
}
const QString expandedValue
= expander ? expander->expand(QString::fromUtf8(value)) : QString::fromUtf8(value);
return QString::fromUtf8(key) + QLatin1Char(':') + typeStr + QLatin1Char('=') + expandedValue;
return QString("%1:%2=%3").arg(QString::fromUtf8(key), typeStr, expandedValue(expander));
}
QString CMakeConfigItem::toArgument() const

View File

@@ -101,6 +101,11 @@ CMakeConfigItem ConfigModel::DataItem::toCMakeConfigItem() const
return cmi;
}
QString ConfigModel::DataItem::expandedValue(Utils::MacroExpander *expander)
{
return toCMakeConfigItem().expandedValue(expander);
}
// ConfigModel
ConfigModel::ConfigModel(QObject *parent) : Utils::TreeModel<>(parent)
@@ -165,7 +170,7 @@ void ConfigModel::appendConfiguration(const QString &key,
if (m_kitConfiguration.contains(key))
internalItem.kitValue = QString::fromUtf8(
isInitial ? m_kitConfiguration.value(key).value
: m_macroExpander->expand(m_kitConfiguration.value(key).value));
: m_kitConfiguration.value(key).expandedValue(m_macroExpander).toUtf8());
m_configuration.append(internalItem);
setConfiguration(m_configuration);
}
@@ -504,7 +509,7 @@ void ConfigModel::generateTree()
for (InternalDataItem &di : m_configuration) {
auto it = initialHash.find(di.key);
if (it != initialHash.end())
di.initialValue = macroExpander()->expand(it->value);
di.initialValue = it->expandedValue(macroExpander());
root->appendChild(new Internal::ConfigModelTreeItem(&di));
}

View File

@@ -36,6 +36,8 @@ public:
CMakeConfigItem toCMakeConfigItem() const;
QString expandedValue(Utils::MacroExpander *expander);
enum Type { BOOLEAN, FILE, DIRECTORY, STRING, UNKNOWN};
QString key;