diff options
author | Marco Bubke <marco.bubke@qt.io> | 2017-02-07 15:00:38 +0100 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2017-09-14 15:23:56 +0000 |
commit | b6e12f4a1c2a8dbc7a672f0cf42ea76ece71b10d (patch) | |
tree | 81550e7fce5053ecb1ead60ddf59534d44517a87 /src/plugins/cpptools/compileroptionsbuilder.h | |
parent | 3adb71d45ebebd8c8fc2ec6beeb7a5ee67d64e4e (diff) |
Convert macros from plain QByteArray to a vector of structs
The old code model expected the macros as C++ formatted text
("#define Foo 42) but newer targets like the Clang codemodel expect key
value arguments like "-DFoo=42". So instead of parsing the text again and
again we use an abstract data description.
Task-number: QTCREATORBUG-17915
Change-Id: I0179fd13c48a581e91ee79bba9d42d501c26f19f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'src/plugins/cpptools/compileroptionsbuilder.h')
-rw-r--r-- | src/plugins/cpptools/compileroptionsbuilder.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/plugins/cpptools/compileroptionsbuilder.h b/src/plugins/cpptools/compileroptionsbuilder.h index 75b0c4f530..48c23b3e91 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.h +++ b/src/plugins/cpptools/compileroptionsbuilder.h @@ -46,7 +46,7 @@ public: // Add custom options void add(const QString &option); - void addDefine(const QByteArray &defineDirective); + void addDefine(const ProjectExplorer::Macro &marco); // Add options based on project part void addWordWidth(); @@ -55,7 +55,7 @@ public: void addHeaderPathOptions(); void addPrecompiledHeaderOptions(PchUsage pchUsage); void addToolchainAndProjectDefines(); - void addDefines(const QByteArray &defineDirectives); + void addMacros(const ProjectExplorer::Macros ¯os); virtual void addLanguageOption(ProjectFile::Kind fileKind); virtual void addOptionsForLanguage(bool checkForBorlandExtensions = true); @@ -67,7 +67,7 @@ public: void addDefineFloat128ForMingw(); protected: - virtual bool excludeDefineDirective(const QByteArray &defineDirective) const; + virtual bool excludeDefineDirective(const ProjectExplorer::Macro ¯o) const; virtual bool excludeHeaderPath(const QString &headerPath) const; virtual QString defineOption() const; @@ -78,7 +78,9 @@ protected: const ProjectPart m_projectPart; private: - QString defineDirectiveToDefineOption(const QByteArray &defineDirective); + QByteArray macroOption(const ProjectExplorer::Macro ¯o) const; + QByteArray toDefineOption(const ProjectExplorer::Macro ¯o) const; + QString defineDirectiveToDefineOption(const ProjectExplorer::Macro &marco) const; QStringList m_options; }; |