diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index fb591e0db61..6254dcab0a6 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -895,7 +895,11 @@ void BaseQtVersion::parseMkSpec(ProFileEvaluator *evaluator) const AbstractMacroExpander *BaseQtVersion::createMacroExpander() const { - return QtKitInformation::createMacroExpander(this); + return new MacroExpander([this](const QString &name, QString *ret) -> bool { + if (name == QLatin1String("Qt:name")) + return false; + return QtKitInformation::resolveQtMacro(this, name, ret); + }); } FileName BaseQtVersion::mkspec() const diff --git a/src/plugins/qtsupport/qtkitinformation.cpp b/src/plugins/qtsupport/qtkitinformation.cpp index d3be8db1e90..0c5a2d1daa2 100644 --- a/src/plugins/qtsupport/qtkitinformation.cpp +++ b/src/plugins/qtsupport/qtkitinformation.cpp @@ -40,12 +40,37 @@ #include using namespace ProjectExplorer; +using namespace Utils; namespace QtSupport { - namespace Internal { -static bool resolveQtMacro(const BaseQtVersion *version, const QString &name, QString *ret) +class QtKitInformationMacroExpander : public ProjectExplorer::KitInformationMacroExpander +{ +public: + QtKitInformationMacroExpander(const ProjectExplorer::Kit *k) : + ProjectExplorer::KitInformationMacroExpander(k) + { } + + bool resolveMacro(const QString &name, QString *ret) + { + return QtKitInformation::resolveQtMacro(QtKitInformation::qtVersion(kit()), name, ret); + } +}; + +} // namespace Internal + +QtKitInformation::QtKitInformation() +{ + setObjectName(QLatin1String("QtKitInformation")); + setId(QtKitInformation::id()); + setPriority(26000); + + connect(ProjectExplorer::KitManager::instance(), SIGNAL(kitsLoaded()), + this, SLOT(kitsWereLoaded())); +} + +bool QtKitInformation::resolveQtMacro(const BaseQtVersion *version, const QString &name, QString *ret) { const QString noInfo = QCoreApplication::translate("QtSupport::QtKitInformation", "none"); @@ -65,50 +90,6 @@ static bool resolveQtMacro(const BaseQtVersion *version, const QString &name, QS return false; } -class QtVersionMacroExpander : public Utils::AbstractMacroExpander -{ -public: - QtVersionMacroExpander(const BaseQtVersion *v) : - qtVersion(v) - { } - - bool resolveMacro(const QString &name, QString *ret) - { - if (name == QLatin1String("Qt:name")) - return false; - return resolveQtMacro(qtVersion, name, ret); - } - -private: - const BaseQtVersion *qtVersion; -}; - - -class QtKitInformationMacroExpander : public ProjectExplorer::KitInformationMacroExpander -{ -public: - QtKitInformationMacroExpander(const ProjectExplorer::Kit *k) : - ProjectExplorer::KitInformationMacroExpander(k) - { } - - bool resolveMacro(const QString &name, QString *ret) - { - return resolveQtMacro(QtKitInformation::qtVersion(kit()), name, ret); - } -}; - -} // namespace Internal - -QtKitInformation::QtKitInformation() -{ - setObjectName(QLatin1String("QtKitInformation")); - setId(QtKitInformation::id()); - setPriority(26000); - - connect(ProjectExplorer::KitManager::instance(), SIGNAL(kitsLoaded()), - this, SLOT(kitsWereLoaded())); -} - QVariant QtKitInformation::defaultValue(ProjectExplorer::Kit *k) const { Q_UNUSED(k); @@ -190,11 +171,6 @@ Utils::AbstractMacroExpander *QtKitInformation::createMacroExpander(const Projec return new Internal::QtKitInformationMacroExpander(k); } -Utils::AbstractMacroExpander *QtKitInformation::createMacroExpander(const BaseQtVersion *v) -{ - return new Internal::QtVersionMacroExpander(v); -} - Core::Id QtKitInformation::id() { return "QtSupport.QtInformation"; diff --git a/src/plugins/qtsupport/qtkitinformation.h b/src/plugins/qtsupport/qtkitinformation.h index c1e6e4136ec..c17bc4811e1 100644 --- a/src/plugins/qtsupport/qtkitinformation.h +++ b/src/plugins/qtsupport/qtkitinformation.h @@ -62,7 +62,7 @@ public: Utils::AbstractMacroExpander *createMacroExpander(const ProjectExplorer::Kit *k) const; - static Utils::AbstractMacroExpander *createMacroExpander(const BaseQtVersion *v); + static bool resolveQtMacro(const BaseQtVersion *version, const QString &name, QString *ret); static Core::Id id(); static int qtVersionId(const ProjectExplorer::Kit *k);