CMake: Reuse code to turn CMakeConfigItems into strings

Change-Id: Iecb553ce562e22daa5429cef431fe12994637f9a
Reviewed-by: Vikas Pachdha <vikas.pachdha@theqtcompany.com>
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
This commit is contained in:
Tobias Hunger
2016-04-08 14:05:23 +02:00
committed by Tobias Hunger
parent cf0e087ab1
commit 7276da8212

View File

@@ -61,30 +61,13 @@ namespace CMakeProjectManager {
namespace Internal {
static QStringList toArguments(const CMakeConfig &config, const ProjectExplorer::Kit *k) {
return Utils::transform(config, [k](const CMakeConfigItem &i) -> QString {
QString a = QString::fromLatin1("-D");
a.append(QString::fromUtf8(i.key));
switch (i.type) {
case CMakeConfigItem::FILEPATH:
a.append(QLatin1String(":FILEPATH="));
break;
case CMakeConfigItem::PATH:
a.append(QLatin1String(":PATH="));
break;
case CMakeConfigItem::BOOL:
a.append(QLatin1String(":BOOL="));
break;
case CMakeConfigItem::STRING:
a.append(QLatin1String(":STRING="));
break;
case CMakeConfigItem::INTERNAL:
a.append(QLatin1String(":INTERNAL="));
break;
}
a.append(QString::fromUtf8(k->macroExpander()->expand(i.value)));
return a;
});
const QStringList argList
= Utils::transform(config, [k](const CMakeConfigItem &i) -> QString {
const QString tmp = i.toString();
return tmp.isEmpty() ? QString()
: QString::fromLatin1("-D") + k->macroExpander()->expand(tmp);
});
return Utils::filtered(argList, [](const QString &s) { return !s.isEmpty(); });
}
// --------------------------------------------------------------------