CMake: CMakeConfigItem uses macroexpander when turning into String

Make CMakeConfigItem use an (optional) macroexpander when asked to turn
a CMakeConfigItem into a string.

Change-Id: I7189fc4e5189d86809d002be3951934c37d98f12
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Tobias Hunger
2016-10-17 14:27:42 +02:00
parent 1f1ee1ec2b
commit cc9090891c
2 changed files with 5 additions and 3 deletions

View File

@@ -214,7 +214,7 @@ CMakeConfigItem CMakeConfigItem::fromString(const QString &s)
return item; return item;
} }
QString CMakeConfigItem::toString() const QString CMakeConfigItem::toString(const Utils::MacroExpander *expander) const
{ {
if (key.isEmpty() || type == CMakeProjectManager::CMakeConfigItem::STATIC) if (key.isEmpty() || type == CMakeProjectManager::CMakeConfigItem::STATIC)
return QString(); return QString();
@@ -240,7 +240,9 @@ QString CMakeConfigItem::toString() const
break; break;
} }
return QString::fromUtf8(key) + QLatin1Char(':') + typeStr + QLatin1Char('=') + QString::fromUtf8(value); const QString expandedValue
= expander ? expander->expand(QString::fromUtf8(value)) : QString::fromUtf8(value);
return QString::fromUtf8(key) + QLatin1Char(':') + typeStr + QLatin1Char('=') + expandedValue;
} }
bool CMakeConfigItem::operator==(const CMakeConfigItem &o) const bool CMakeConfigItem::operator==(const CMakeConfigItem &o) const

View File

@@ -54,7 +54,7 @@ public:
static std::function<bool(const CMakeConfigItem &a, const CMakeConfigItem &b)> sortOperator(); static std::function<bool(const CMakeConfigItem &a, const CMakeConfigItem &b)> sortOperator();
static CMakeConfigItem fromString(const QString &s); static CMakeConfigItem fromString(const QString &s);
QString toString() const; QString toString(const Utils::MacroExpander *expander = nullptr) const;
bool operator==(const CMakeConfigItem &o) const; bool operator==(const CMakeConfigItem &o) const;