CppTools: Reorder some (Raw)ProjectPart members

Mostly for clarity, but as a side effect, this reduces the size of
ProjectPart from 168 to 160 bytes.

Change-Id: Iee23c97d581a5233554c05ed2fd7ea07e2e9b45a
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
Nikolai Kosjar
2019-01-08 15:13:48 +01:00
parent 24bfa0e1a6
commit 591cc5a8c4
2 changed files with 42 additions and 31 deletions

View File

@@ -56,49 +56,54 @@ public:
void setDisplayName(const QString &displayName); void setDisplayName(const QString &displayName);
// FileClassifier must be thread-safe.
using FileClassifier = std::function<ProjectFile(const QString &filePath)>;
void setFiles(const QStringList &files, FileClassifier fileClassifier = FileClassifier());
void setProjectFileLocation(const QString &projectFile, int line = -1, int column = -1); void setProjectFileLocation(const QString &projectFile, int line = -1, int column = -1);
void setConfigFileName(const QString &configFileName); void setConfigFileName(const QString &configFileName);
void setCallGroupId(const QString &id); void setCallGroupId(const QString &id);
void setBuildSystemTarget(const QString &target);
void setQtVersion(ProjectPart::QtVersion qtVersion); // FileClassifier must be thread-safe.
using FileClassifier = std::function<ProjectFile(const QString &filePath)>;
void setMacros(const ProjectExplorer::Macros &macros); void setFiles(const QStringList &files, FileClassifier fileClassifier = FileClassifier());
void setHeaderPaths(const ProjectExplorer::HeaderPaths &headerPaths); void setHeaderPaths(const ProjectExplorer::HeaderPaths &headerPaths);
void setIncludePaths(const QStringList &includePaths); void setIncludePaths(const QStringList &includePaths);
void setPreCompiledHeaders(const QStringList &preCompiledHeaders); void setPreCompiledHeaders(const QStringList &preCompiledHeaders);
void setBuildSystemTarget(const QString &target);
void setBuildTargetType(ProjectPart::BuildTargetType type);
void setSelectedForBuilding(bool yesno); void setSelectedForBuilding(bool yesno);
void setFlagsForC(const RawProjectPartFlags &flags); void setFlagsForC(const RawProjectPartFlags &flags);
void setFlagsForCxx(const RawProjectPartFlags &flags); void setFlagsForCxx(const RawProjectPartFlags &flags);
void setBuildTargetType(ProjectPart::BuildTargetType type); void setMacros(const ProjectExplorer::Macros &macros);
void setQtVersion(ProjectPart::QtVersion qtVersion);
public: public:
QString displayName; QString displayName;
QString projectFile; QString projectFile;
int projectFileLine = -1; int projectFileLine = -1;
int projectFileColumn = -1; int projectFileColumn = -1;
QString projectConfigFile; // currently only used by the Generic Project Manager
QString callGroupId; QString callGroupId;
QString buildSystemTarget;
// Files
QStringList files;
FileClassifier fileClassifier;
QStringList precompiledHeaders; QStringList precompiledHeaders;
ProjectExplorer::HeaderPaths headerPaths; ProjectExplorer::HeaderPaths headerPaths;
ProjectExplorer::Macros projectMacros; QString projectConfigFile; // Generic Project Manager only
ProjectPart::QtVersion qtVersion = ProjectPart::UnknownQt;
// Build system
QString buildSystemTarget;
ProjectPart::BuildTargetType buildTargetType = ProjectPart::BuildTargetType::Unknown;
bool selectedForBuilding = true; bool selectedForBuilding = true;
// Flags
RawProjectPartFlags flagsForC; RawProjectPartFlags flagsForC;
RawProjectPartFlags flagsForCxx; RawProjectPartFlags flagsForCxx;
QStringList files; // Misc
FileClassifier fileClassifier; ProjectExplorer::Macros projectMacros;
ProjectPart::BuildTargetType buildTargetType = ProjectPart::BuildTargetType::Unknown; ProjectPart::QtVersion qtVersion = ProjectPart::UnknownQt;
}; };
using RawProjectParts = QVector<RawProjectPart>; using RawProjectParts = QVector<RawProjectPart>;

View File

@@ -87,32 +87,38 @@ public:
QString projectFile; QString projectFile;
int projectFileLine = -1; int projectFileLine = -1;
int projectFileColumn = -1; int projectFileColumn = -1;
QString projectConfigFile; // currently only used by the Generic Project Manager
QString callGroupId; QString callGroupId;
QString buildSystemTarget;
ProjectFiles files;
QStringList precompiledHeaders;
ProjectExplorer::HeaderPaths headerPaths;
ProjectExplorer::Macros projectMacros;
// Versions, features and extensions
ProjectExplorer::LanguageVersion languageVersion = ProjectExplorer::LanguageVersion::LatestCxx; ProjectExplorer::LanguageVersion languageVersion = ProjectExplorer::LanguageVersion::LatestCxx;
ProjectExplorer::LanguageExtensions languageExtensions = ProjectExplorer::LanguageExtension::None; ProjectExplorer::LanguageExtensions languageExtensions = ProjectExplorer::LanguageExtension::None;
ProjectExplorer::WarningFlags warningFlags = ProjectExplorer::WarningFlags::Default;
QtVersion qtVersion = UnknownQt;
CPlusPlus::LanguageFeatures languageFeatures; CPlusPlus::LanguageFeatures languageFeatures;
QtVersion qtVersion = UnknownQt;
// Files
ProjectFiles files;
QStringList precompiledHeaders;
ProjectExplorer::HeaderPaths headerPaths;
QString projectConfigFile; // Generic Project Manager only
// Macros
ProjectExplorer::Macros projectMacros;
ProjectExplorer::Macros toolChainMacros;
// Build system
QString buildSystemTarget;
BuildTargetType buildTargetType = Unknown;
bool selectedForBuilding = true; bool selectedForBuilding = true;
// ToolChain
Core::Id toolchainType; Core::Id toolchainType;
bool isMsvc2015Toolchain = false; bool isMsvc2015Toolchain = false;
ProjectExplorer::Macros toolChainMacros;
ToolChainWordWidth toolChainWordWidth = WordWidth32Bit;
QString toolChainTargetTriple; QString toolChainTargetTriple;
ToolChainWordWidth toolChainWordWidth = WordWidth32Bit;
ProjectExplorer::WarningFlags warningFlags = ProjectExplorer::WarningFlags::Default;
// Misc
QStringList extraCodeModelFlags; QStringList extraCodeModelFlags;
BuildTargetType buildTargetType = Unknown;
}; };
} // namespace CppTools } // namespace CppTools