aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2014-07-15 10:07:14 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2014-07-15 14:14:42 +0200
commit471b0c93e128f5ac7998cdd22047438c72af9d6b (patch)
treefdca851ac571d7d3fbd4e58a16ae76cc42a7f0bc
parentad7946ede6f4b5dc47086dfa34dd0d0503345cdd (diff)
Introduce a private header class for qbs::Project.
This is needed for a follow-up patch. Change-Id: Ica5b5f42028020595e7362953879a51e9ca2e28e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
-rw-r--r--src/lib/corelib/api/api.pri1
-rw-r--r--src/lib/corelib/api/project.cpp69
-rw-r--r--src/lib/corelib/api/project_p.h119
-rw-r--r--src/lib/corelib/corelib.qbs1
4 files changed, 122 insertions, 68 deletions
diff --git a/src/lib/corelib/api/api.pri b/src/lib/corelib/api/api.pri
index 2259face1..a4b9c4dd7 100644
--- a/src/lib/corelib/api/api.pri
+++ b/src/lib/corelib/api/api.pri
@@ -7,6 +7,7 @@ HEADERS += \
$$PWD/jobs.h \
$$PWD/languageinfo.h \
$$PWD/project.h \
+ $$PWD/project_p.h \
$$PWD/propertymap_p.h \
$$PWD/projectdata_p.h \
$$PWD/qmljsrewriter.h
diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp
index 25750d6a1..4a641336c 100644
--- a/src/lib/corelib/api/project.cpp
+++ b/src/lib/corelib/api/project.cpp
@@ -27,10 +27,10 @@
**
****************************************************************************/
#include "project.h"
+#include "project_p.h"
#include "internaljobs.h"
#include "jobs.h"
-#include "projectdata.h"
#include "projectdata_p.h"
#include "projectfileupdater.h"
#include "propertymap_p.h"
@@ -94,73 +94,6 @@ static void loadPlugins(const QStringList &_pluginPaths, const Logger &logger)
pluginsLoaded = true;
}
-
-class ProjectPrivate : public QSharedData
-{
-public:
- ProjectPrivate(const TopLevelProjectPtr &internalProject, const Logger &logger)
- : internalProject(internalProject), logger(logger)
- {
- }
-
- ProjectData projectData();
- BuildJob *buildProducts(const QList<ResolvedProductPtr> &products, const BuildOptions &options,
- bool needsDepencencyResolving,
- QObject *jobOwner);
- CleanJob *cleanProducts(const QList<ResolvedProductPtr> &products, const CleanOptions &options,
- QObject *jobOwner);
- InstallJob *installProducts(const QList<ResolvedProductPtr> &products,
- const InstallOptions &options, bool needsDepencencyResolving,
- QObject *jobOwner);
- QList<ResolvedProductPtr> internalProducts(const QList<ProductData> &products) const;
- QList<ResolvedProductPtr> allEnabledInternalProducts() const;
- ResolvedProductPtr internalProduct(const ProductData &product) const;
- ProductData findProductData(const ProductData &product) const;
- QList<ProductData> findProductsByName(const QString &name) const;
- GroupData findGroupData(const ProductData &product, const QString &groupName) const;
-
- GroupData createGroupDataFromGroup(const GroupPtr &resolvedGroup);
-
- struct GroupUpdateContext {
- QList<ResolvedProductPtr> resolvedProducts;
- QList<GroupPtr> resolvedGroups;
- QList<ProductData> products;
- QList<GroupData> groups;
- };
-
- struct FileListUpdateContext {
- GroupUpdateContext groupContext;
- QStringList absoluteFilePaths;
- QStringList relativeFilePaths;
- };
-
- GroupUpdateContext getGroupContext(const ProductData &product, const GroupData &group);
- FileListUpdateContext getFileListContext(const ProductData &product, const GroupData &group,
- const QStringList &filePaths);
-
- void addGroup(const ProductData &product, const QString &groupName);
- void addFiles(const ProductData &product, const GroupData &group, const QStringList &filePaths);
- void removeFiles(const ProductData &product, const GroupData &group,
- const QStringList &filePaths);
- void removeGroup(const ProductData &product, const GroupData &group);
- void removeFilesFromBuildGraph(const ResolvedProductConstPtr &product,
- const QList<SourceArtifactPtr> &files);
- void updateInternalCodeLocations(const ResolvedProjectPtr &project,
- const CodeLocation &changeLocation, int lineOffset);
- void updateExternalCodeLocations(const ProjectData &project,
- const CodeLocation &changeLocation, int lineOffset);
- void prepareChangeToProject();
-
- const TopLevelProjectPtr internalProject;
- Logger logger;
-
-private:
- void retrieveProjectData(ProjectData &projectData,
- const ResolvedProjectConstPtr &internalProject);
-
- ProjectData m_projectData;
-};
-
ProjectData ProjectPrivate::projectData()
{
m_projectData = ProjectData();
diff --git a/src/lib/corelib/api/project_p.h b/src/lib/corelib/api/project_p.h
new file mode 100644
index 000000000..25ab09ca7
--- /dev/null
+++ b/src/lib/corelib/api/project_p.h
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Build Suite.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+****************************************************************************/
+#ifndef QBS_PROJECT_P_H
+#define QBS_PROJECT_P_H
+
+#include "projectdata.h"
+
+#include <language/language.h>
+#include <logging/logger.h>
+
+#include <QObject>
+#include <QStringList>
+
+namespace qbs {
+class BuildJob;
+class BuildOptions;
+class CleanJob;
+class CleanOptions;
+class InstallJob;
+class InstallOptions;
+
+namespace Internal {
+
+class ProjectPrivate : public QSharedData
+{
+public:
+ ProjectPrivate(const TopLevelProjectPtr &internalProject, const Logger &logger)
+ : internalProject(internalProject), logger(logger)
+ {
+ }
+
+ ProjectData projectData();
+ BuildJob *buildProducts(const QList<ResolvedProductPtr> &products, const BuildOptions &options,
+ bool needsDepencencyResolving,
+ QObject *jobOwner);
+ CleanJob *cleanProducts(const QList<ResolvedProductPtr> &products, const CleanOptions &options,
+ QObject *jobOwner);
+ InstallJob *installProducts(const QList<ResolvedProductPtr> &products,
+ const InstallOptions &options, bool needsDepencencyResolving,
+ QObject *jobOwner);
+ QList<ResolvedProductPtr> internalProducts(const QList<ProductData> &products) const;
+ QList<ResolvedProductPtr> allEnabledInternalProducts() const;
+ ResolvedProductPtr internalProduct(const ProductData &product) const;
+ ProductData findProductData(const ProductData &product) const;
+ QList<ProductData> findProductsByName(const QString &name) const;
+ GroupData findGroupData(const ProductData &product, const QString &groupName) const;
+
+ GroupData createGroupDataFromGroup(const GroupPtr &resolvedGroup);
+
+ struct GroupUpdateContext {
+ QList<ResolvedProductPtr> resolvedProducts;
+ QList<GroupPtr> resolvedGroups;
+ QList<ProductData> products;
+ QList<GroupData> groups;
+ };
+
+ struct FileListUpdateContext {
+ GroupUpdateContext groupContext;
+ QStringList absoluteFilePaths;
+ QStringList relativeFilePaths;
+ };
+
+ GroupUpdateContext getGroupContext(const ProductData &product, const GroupData &group);
+ FileListUpdateContext getFileListContext(const ProductData &product, const GroupData &group,
+ const QStringList &filePaths);
+
+ void addGroup(const ProductData &product, const QString &groupName);
+ void addFiles(const ProductData &product, const GroupData &group, const QStringList &filePaths);
+ void removeFiles(const ProductData &product, const GroupData &group,
+ const QStringList &filePaths);
+ void removeGroup(const ProductData &product, const GroupData &group);
+ void removeFilesFromBuildGraph(const ResolvedProductConstPtr &product,
+ const QList<SourceArtifactPtr> &files);
+ void updateInternalCodeLocations(const ResolvedProjectPtr &project,
+ const CodeLocation &changeLocation, int lineOffset);
+ void updateExternalCodeLocations(const ProjectData &project,
+ const CodeLocation &changeLocation, int lineOffset);
+ void prepareChangeToProject();
+
+ const TopLevelProjectPtr internalProject;
+ Logger logger;
+
+private:
+ void retrieveProjectData(ProjectData &projectData,
+ const ResolvedProjectConstPtr &internalProject);
+
+ ProjectData m_projectData;
+};
+
+} // namespace Internal
+} // namespace qbs
+
+#endif // Include guard
diff --git a/src/lib/corelib/corelib.qbs b/src/lib/corelib/corelib.qbs
index efe69a1cb..45dfa2079 100644
--- a/src/lib/corelib/corelib.qbs
+++ b/src/lib/corelib/corelib.qbs
@@ -38,6 +38,7 @@ QbsLibrary {
"jobs.cpp",
"languageinfo.cpp",
"project.cpp",
+ "project_p.h",
"projectdata.cpp",
"projectdata_p.h",
"projectfileupdater.cpp",