summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppprojects.h
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@digia.com>2014-06-18 16:16:55 +0200
committerNikolai Kosjar <nikolai.kosjar@digia.com>2014-08-21 13:11:03 +0200
commit876ea282d269cd03515506f534c4ea47427e2d05 (patch)
tree26fa34377a910cb0a643cefd93b202c7fc6fea7b /src/plugins/cpptools/cppprojects.h
parentbb8575c60c89f84b0d7cb76cb8afff48e32c9027 (diff)
downloadqt-creator-876ea282d269cd03515506f534c4ea47427e2d05.tar.gz
GenericProject: put different languages into separate project parts.
This is in preparation for changes to the ProjectParts, where one part can only hold files for 1 language. Change-Id: I5e9a1a803ecc3ecbb36added0d0094df63922549 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src/plugins/cpptools/cppprojects.h')
-rw-r--r--src/plugins/cpptools/cppprojects.h61
1 files changed, 44 insertions, 17 deletions
diff --git a/src/plugins/cpptools/cppprojects.h b/src/plugins/cpptools/cppprojects.h
index da11f695ab..17ef8b34a2 100644
--- a/src/plugins/cpptools/cppprojects.h
+++ b/src/plugins/cpptools/cppprojects.h
@@ -43,18 +43,7 @@ namespace CppTools {
class CPPTOOLS_EXPORT ProjectPart
{
-public:
- typedef QSharedPointer<ProjectPart> Ptr;
-
-public:
- ProjectPart();
-
- void evaluateToolchain(const ProjectExplorer::ToolChain *tc,
- const QStringList &cxxflags,
- const QStringList &cflags,
- const Utils::FileName &sysRoot);
-
-public:
+public: // Types
enum CVersion {
C89,
C99,
@@ -84,11 +73,12 @@ public:
Qt5 = 2
};
- class HeaderPath
- {
- public:
+ typedef QSharedPointer<ProjectPart> Ptr;
+
+ struct HeaderPath {
enum Type { InvalidPath, IncludePath, FrameworkPath };
+ public:
QString path;
Type type;
@@ -106,10 +96,19 @@ public:
};
typedef QList<HeaderPath> HeaderPaths;
-public:
+public: // methods
+ ProjectPart();
+
+ void evaluateToolchain(const ProjectExplorer::ToolChain *tc,
+ const QStringList &cxxflags,
+ const QStringList &cflags,
+ const Utils::FileName &sysRoot);
+
+ Ptr copy() const;
+
static QByteArray readProjectConfigFile(const ProjectPart::Ptr &part);
-public:
+public: // fields
QString displayName;
QString projectFile;
ProjectExplorer::Project *project;
@@ -159,6 +158,34 @@ private:
QByteArray m_defines;
};
+class CPPTOOLS_EXPORT ProjectPartBuilder
+{
+public:
+ ProjectPartBuilder(ProjectInfo &m_pInfo);
+
+ void setQtVersion(ProjectPart::QtVersion qtVersion);
+ void setCFlags(const QStringList &flags);
+ void setCxxFlags(const QStringList &flags);
+ void setDefines(const QByteArray &defines);
+ void setHeaderPaths(const ProjectPart::HeaderPaths &headerPaths);
+ void setIncludePaths(const QStringList &includePaths);
+ void setPreCompiledHeaders(const QStringList &pchs);
+ void setProjectFile(const QString &projectFile);
+ void setDisplayName(const QString &displayName);
+ void setConfigFileName(const QString &configFileName);
+
+ QList<Core::Id> createProjectPartsForFiles(const QStringList &files);
+
+private:
+ void createProjectPart(const QStringList &theSources, const QString &partName,
+ ProjectPart::CVersion cVersion, ProjectPart::CXXVersion cxxVersion);
+
+private:
+ ProjectPart::Ptr m_templatePart;
+ ProjectInfo &m_pInfo;
+ QStringList m_cFlags, m_cxxFlags;
+};
+
} // namespace CppTools
#endif // CPPPROJECTPART_H