diff --git a/src/libs/utils/stringutils.h b/src/libs/utils/stringutils.h index 97d47d64e4d..958d56976c4 100644 --- a/src/libs/utils/stringutils.h +++ b/src/libs/utils/stringutils.h @@ -32,6 +32,8 @@ #include "utils_global.h" +#include + QT_BEGIN_NAMESPACE class QStringList; QT_END_NAMESPACE @@ -75,6 +77,19 @@ private: bool expandNestedMacros(const QString &str, int *pos, QString *ret); }; +class QTCREATOR_UTILS_EXPORT MacroExpander : public AbstractMacroExpander +{ +public: + typedef std::function Resolver; + + explicit MacroExpander(const Resolver &resolver) : m_resolver(resolver) {} + + bool resolveMacro(const QString &name, QString *ret) { return m_resolver(name, ret); } + +private: + Resolver m_resolver; +}; + QTCREATOR_UTILS_EXPORT void expandMacros(QString *str, AbstractMacroExpander *mx); QTCREATOR_UTILS_EXPORT QString expandMacros(const QString &str, AbstractMacroExpander *mx);