summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools
diff options
context:
space:
mode:
authorSergey Shambir <sergey.shambir.auto@gmail.com>2013-05-08 18:27:03 +0400
committerErik Verbruggen <erik.verbruggen@digia.com>2013-05-13 13:10:10 +0200
commit59b303fadca5d8febdb200744789f28a5df468ca (patch)
tree8261499eca1748e460193b62a0d91e81f2a0fdde /src/plugins/cpptools
parentdf7347efe3be1ad68661c31289a93ac16a4d7ac5 (diff)
downloadqt-creator-59b303fadca5d8febdb200744789f28a5df468ca.tar.gz
CppTools: ProjectPart now collects warning flags
Will be used by ClangCodeModel, but native model also can use it by disabling unused variable/parameter warnings when needed. Change-Id: I184efb3c65e893a2d85a933385cc547b646e6826 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/plugins/cpptools')
-rw-r--r--src/plugins/cpptools/cppmodelmanagerinterface.cpp13
-rw-r--r--src/plugins/cpptools/cppmodelmanagerinterface.h15
2 files changed, 18 insertions, 10 deletions
diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.cpp b/src/plugins/cpptools/cppmodelmanagerinterface.cpp
index 909ed4c253..0de4f6e425 100644
--- a/src/plugins/cpptools/cppmodelmanagerinterface.cpp
+++ b/src/plugins/cpptools/cppmodelmanagerinterface.cpp
@@ -52,6 +52,16 @@
using namespace CppTools;
using namespace ProjectExplorer;
+ProjectPart::ProjectPart()
+ : cVersion(C89)
+ , cxxVersion(CXX11)
+ , cxxExtensions(NoExtensions)
+ , qtVersion(UnknownQt)
+ , cWarningFlags(ProjectExplorer::ToolChain::WarningsDefault)
+ , cxxWarningFlags(ProjectExplorer::ToolChain::WarningsDefault)
+{
+}
+
/**
* @brief Retrieves info from concrete compiler using it's flags.
* @param tc Either nullptr or toolchain for project's active target.
@@ -90,6 +100,9 @@ void ProjectPart::evaluateToolchain(const ToolChain *tc,
if (cxx | ToolChain::OpenMP)
cxxExtensions |= OpenMP;
+ cWarningFlags = tc->warningFlags(cflags);
+ cxxWarningFlags = tc->warningFlags(cxxflags);
+
QList<HeaderPath> headers = tc->systemHeaderPaths(cxxflags, sysRoot);
foreach (const HeaderPath &header, headers)
if (header.kind() == HeaderPath::FrameworkHeaderPath)
diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.h b/src/plugins/cpptools/cppmodelmanagerinterface.h
index 706be56c63..2688bb9747 100644
--- a/src/plugins/cpptools/cppmodelmanagerinterface.h
+++ b/src/plugins/cpptools/cppmodelmanagerinterface.h
@@ -34,6 +34,7 @@
#include "cppprojectfile.h"
#include <cplusplus/CppDocument.h>
+#include <projectexplorer/toolchain.h>
#include <QObject>
#include <QHash>
@@ -43,10 +44,7 @@
namespace Core { class IEditor; }
namespace CPlusPlus { class LookupContext; }
-namespace ProjectExplorer {
-class Project;
-class ToolChain;
-}
+namespace ProjectExplorer { class Project; }
namespace TextEditor { class BaseTextEditor; }
namespace Utils { class FileName; }
@@ -62,12 +60,7 @@ class CppIndexingSupport;
class CPPTOOLS_EXPORT ProjectPart
{
public:
- ProjectPart()
- : cVersion(C89)
- , cxxVersion(CXX11)
- , cxxExtensions(NoExtensions)
- , qtVersion(UnknownQt)
- {}
+ ProjectPart();
void evaluateToolchain(const ProjectExplorer::ToolChain *tc,
const QStringList &cxxflags,
@@ -114,6 +107,8 @@ public: //attributes
CXXVersion cxxVersion;
CXXExtensions cxxExtensions;
QtVersion qtVersion;
+ ProjectExplorer::ToolChain::WarningFlags cWarningFlags;
+ ProjectExplorer::ToolChain::WarningFlags cxxWarningFlags;
};
class CPPTOOLS_EXPORT CppModelManagerInterface : public QObject