From cc9090891c98d282d3ec8e1cd594b6ff9d9c91cd Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 17 Oct 2016 14:27:42 +0200 Subject: [PATCH] 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 --- src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp | 6 ++++-- src/plugins/cmakeprojectmanager/cmakeconfigitem.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp index b40ddbdb2d8..226b2b69152 100644 --- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp @@ -214,7 +214,7 @@ CMakeConfigItem CMakeConfigItem::fromString(const QString &s) return item; } -QString CMakeConfigItem::toString() const +QString CMakeConfigItem::toString(const Utils::MacroExpander *expander) const { if (key.isEmpty() || type == CMakeProjectManager::CMakeConfigItem::STATIC) return QString(); @@ -240,7 +240,9 @@ QString CMakeConfigItem::toString() const 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 diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h index 5845bec5885..bbee1eb8b16 100644 --- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h +++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h @@ -54,7 +54,7 @@ public: static std::function sortOperator(); static CMakeConfigItem fromString(const QString &s); - QString toString() const; + QString toString(const Utils::MacroExpander *expander = nullptr) const; bool operator==(const CMakeConfigItem &o) const;