aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cmakeprojectmanager/tealeafreader.h
diff options
context:
space:
mode:
authorAlexander Drozdov <[email protected]>2016-11-24 13:53:53 +1000
committerAlexander Drozdov <[email protected]>2016-11-25 13:59:20 +0000
commit651460cd8d87a8c351a6064beed31d61985ad0c8 (patch)
tree1e6d489811112bac6d49eb4a6c9c48b533e80862 /src/plugins/cmakeprojectmanager/tealeafreader.h
parentb2e4fdee0f590ba8c6f86ef848ce091be75d9151 (diff)
CMake: separate processing C and C++ flags in TeaLeafReader
C and C++ flags holds at the different variables/compiler settings in the generated Make and Ninja files. Currently only C++ Flags processed and assumes that same one uses for C lang. But now QtC core can handle C and C++ separatelly, so just add processing for that flags and use it for code model. Change-Id: If1f71a2c58284a46324f04e962fc120cc316b0fb Reviewed-by: Tobias Hunger <[email protected]>
Diffstat (limited to 'src/plugins/cmakeprojectmanager/tealeafreader.h')
-rw-r--r--src/plugins/cmakeprojectmanager/tealeafreader.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/plugins/cmakeprojectmanager/tealeafreader.h b/src/plugins/cmakeprojectmanager/tealeafreader.h
index 9c54472d61b..7451de7ed9b 100644
--- a/src/plugins/cmakeprojectmanager/tealeafreader.h
+++ b/src/plugins/cmakeprojectmanager/tealeafreader.h
@@ -25,8 +25,12 @@
#pragma once
+#include <projectexplorer/toolchain.h>
+
#include "builddirreader.h"
+#include <QRegularExpression>
+
namespace Utils { class QtcProcess; }
namespace CMakeProjectManager {
@@ -66,9 +70,9 @@ private:
void processCMakeOutput();
void processCMakeError();
- QStringList getCXXFlagsFor(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache);
- bool extractCXXFlagsFromMake(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache);
- bool extractCXXFlagsFromNinja(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache);
+ QStringList getFlagsFor(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache, ProjectExplorer::ToolChain::Language lang);
+ bool extractFlagsFromMake(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache, ProjectExplorer::ToolChain::Language lang);
+ bool extractFlagsFromNinja(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache, ProjectExplorer::ToolChain::Language lang);
Utils::QtcProcess *m_cmakeProcess = nullptr;
@@ -85,6 +89,11 @@ private:
QList<ProjectExplorer::FileNode *> m_files;
QSet<Internal::CMakeFile *> m_watchedFiles;
+ // RegExps for function-like macrosses names fixups
+ QRegularExpression m_macroFixupRe1;
+ QRegularExpression m_macroFixupRe2;
+ QRegularExpression m_macroFixupRe3;
+
friend class CMakeFile;
};