aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cpptools/compileroptionsbuilder.h
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2017-02-07 15:00:38 +0100
committerMarco Bubke <marco.bubke@qt.io>2017-09-14 15:23:56 +0000
commitb6e12f4a1c2a8dbc7a672f0cf42ea76ece71b10d (patch)
tree81550e7fce5053ecb1ead60ddf59534d44517a87 /src/plugins/cpptools/compileroptionsbuilder.h
parent3adb71d45ebebd8c8fc2ec6beeb7a5ee67d64e4e (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.h10
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 &macros);
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 &macro) 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 &macro) const;
+ QByteArray toDefineOption(const ProjectExplorer::Macro &macro) const;
+ QString defineDirectiveToDefineOption(const ProjectExplorer::Macro &marco) const;
QStringList m_options;
};