CppTools: Clean up ProjectPart

Change-Id: Ia7969ceb52ffb25e7c63b24bc33b091001e9b50a
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Nikolai Kosjar
2016-12-05 16:08:01 +01:00
parent a10bfb8400
commit 7381736cf3
6 changed files with 45 additions and 47 deletions

View File

@@ -36,6 +36,8 @@
#include <QSharedPointer> #include <QSharedPointer>
#include <QVector> #include <QVector>
#include <functional>
namespace Core { namespace Core {
class IEditor; class IEditor;
class IDocument; class IDocument;

View File

@@ -31,6 +31,7 @@
#include <clangbackendipc/codecompletion.h> #include <clangbackendipc/codecompletion.h>
#include <QCoreApplication>
#include <QTextCursor> #include <QTextCursor>
namespace ClangCodeModel { namespace ClangCodeModel {

View File

@@ -97,9 +97,9 @@ void CompilerOptionsBuilder::addWordWidth()
void CompilerOptionsBuilder::addTargetTriple() void CompilerOptionsBuilder::addTargetTriple()
{ {
if (!m_projectPart.targetTriple.isEmpty()) { if (!m_projectPart.toolChainTargetTriple.isEmpty()) {
m_options.append(QLatin1String("-target")); m_options.append(QLatin1String("-target"));
m_options.append(m_projectPart.targetTriple); m_options.append(m_projectPart.toolChainTargetTriple);
} }
} }

View File

@@ -184,7 +184,7 @@ public:
m_projectPart.toolchainType = m_toolChain.type(); m_projectPart.toolchainType = m_toolChain.type();
m_projectPart.isMsvc2015Toolchain = m_toolChain.isMsvc2015Toolchain(); m_projectPart.isMsvc2015Toolchain = m_toolChain.isMsvc2015Toolchain();
m_projectPart.toolChainWordWidth = mapWordWith(m_toolChain.wordWidth()); m_projectPart.toolChainWordWidth = mapWordWith(m_toolChain.wordWidth());
m_projectPart.targetTriple = m_toolChain.targetTriple(); m_projectPart.toolChainTargetTriple = m_toolChain.targetTriple();
} }
private: private:

View File

@@ -25,23 +25,12 @@
#include "projectpart.h" #include "projectpart.h"
#include <QFile>
#include <QDir> #include <QDir>
#include <QTextStream> #include <QTextStream>
namespace CppTools { namespace CppTools {
ProjectPart::ProjectPart()
: project(0)
, toolChainWordWidth(WordWidth32Bit)
, isMsvc2015Toolchain(false)
, languageVersion(LatestCxxVersion)
, languageExtensions(NoExtensions)
, qtVersion(UnknownQt)
, warningFlags(ProjectExplorer::WarningFlags::Default)
, selectedForBuilding(true)
{
}
void ProjectPart::updateLanguageFeatures() void ProjectPart::updateLanguageFeatures()
{ {
const bool hasQt = qtVersion != NoQt; const bool hasQt = qtVersion != NoQt;
@@ -80,11 +69,11 @@ QString ProjectPart::id() const
return projectPartId; return projectPartId;
} }
QByteArray ProjectPart::readProjectConfigFile(const ProjectPart::Ptr &part) QByteArray ProjectPart::readProjectConfigFile(const Ptr &projectPart)
{ {
QByteArray result; QByteArray result;
QFile f(part->projectConfigFile); QFile f(projectPart->projectConfigFile);
if (f.open(QIODevice::ReadOnly)) { if (f.open(QIODevice::ReadOnly)) {
QTextStream is(&f); QTextStream is(&f);
result = is.readAll().toUtf8(); result = is.readAll().toUtf8();

View File

@@ -34,8 +34,6 @@
#include <coreplugin/id.h> #include <coreplugin/id.h>
#include <utils/fileutils.h>
#include <cplusplus/Token.h> #include <cplusplus/Token.h>
#include <QString> #include <QString>
@@ -49,7 +47,7 @@ namespace CppTools {
class CPPTOOLS_EXPORT ProjectPart class CPPTOOLS_EXPORT ProjectPart
{ {
public: // Types public:
enum LanguageVersion { enum LanguageVersion {
C89, C89,
C99, C99,
@@ -71,16 +69,19 @@ public: // Types
OpenMPExtensions = 1 << 3, OpenMPExtensions = 1 << 3,
ObjectiveCExtensions = 1 << 4, ObjectiveCExtensions = 1 << 4,
AllExtensions = GnuExtensions | MicrosoftExtensions | BorlandExtensions | OpenMPExtensions AllExtensions = GnuExtensions
| MicrosoftExtensions
| BorlandExtensions
| OpenMPExtensions
| ObjectiveCExtensions | ObjectiveCExtensions
}; };
Q_DECLARE_FLAGS(LanguageExtensions, LanguageExtension) Q_DECLARE_FLAGS(LanguageExtensions, LanguageExtension)
enum QtVersion { enum QtVersion {
UnknownQt = -1, UnknownQt = -1,
NoQt = 0, NoQt,
Qt4 = 1, Qt4,
Qt5 = 2 Qt5
}; };
enum ToolChainWordWidth { enum ToolChainWordWidth {
@@ -90,37 +91,42 @@ public: // Types
using Ptr = QSharedPointer<ProjectPart>; using Ptr = QSharedPointer<ProjectPart>;
public:
public: // methods
ProjectPart();
void updateLanguageFeatures();
Ptr copy() const;
QString id() const; QString id() const;
static QByteArray readProjectConfigFile(const ProjectPart::Ptr &part); Ptr copy() const;
void updateLanguageFeatures();
static QByteArray readProjectConfigFile(const Ptr &projectPart);
public:
ProjectExplorer::Project *project = nullptr;
public: // fields
QString displayName; QString displayName;
QString projectFile; QString projectFile;
ProjectExplorer::Project *project;
ProjectFiles files;
QString projectConfigFile; // currently only used by the Generic Project Manager QString projectConfigFile; // currently only used by the Generic Project Manager
QByteArray projectDefines;
QByteArray toolchainDefines; ProjectFiles files;
Core::Id toolchainType;
ToolChainWordWidth toolChainWordWidth;
bool isMsvc2015Toolchain;
QString targetTriple;
ProjectPartHeaderPaths headerPaths;
QStringList precompiledHeaders; QStringList precompiledHeaders;
LanguageVersion languageVersion; ProjectPartHeaderPaths headerPaths;
LanguageExtensions languageExtensions;
QByteArray projectDefines;
LanguageVersion languageVersion = LatestCxxVersion;
LanguageExtensions languageExtensions = NoExtensions;
ProjectExplorer::WarningFlags warningFlags = ProjectExplorer::WarningFlags::Default;
QtVersion qtVersion = UnknownQt;
CPlusPlus::LanguageFeatures languageFeatures; CPlusPlus::LanguageFeatures languageFeatures;
QtVersion qtVersion;
ProjectExplorer::WarningFlags warningFlags; bool selectedForBuilding = true;
bool selectedForBuilding;
Core::Id toolchainType;
bool isMsvc2015Toolchain = false;
QByteArray toolchainDefines;
ToolChainWordWidth toolChainWordWidth = WordWidth32Bit;
QString toolChainTargetTriple;
}; };
} // namespace CppTools } // namespace CppTools