summaryrefslogtreecommitdiff
path: root/src/lib/buildgraph/buildproject.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/buildgraph/buildproject.h')
-rw-r--r--src/lib/buildgraph/buildproject.h166
1 files changed, 0 insertions, 166 deletions
diff --git a/src/lib/buildgraph/buildproject.h b/src/lib/buildgraph/buildproject.h
deleted file mode 100644
index 76fa3439f..000000000
--- a/src/lib/buildgraph/buildproject.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 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_BUILDPROJECT_H
-#define QBS_BUILDPROJECT_H
-
-#include "artifactlist.h"
-#include "forward_decls.h"
-#include <language/forward_decls.h>
-#include <logging/logger.h>
-#include <tools/persistentobject.h>
-
-#include <QHash>
-#include <QList>
-#include <QScriptValue>
-#include <QSet>
-#include <QString>
-#include <QStringList>
-#include <QVariantMap>
-
-namespace qbs {
-class Settings;
-class SetupProjectParameters;
-namespace Internal {
-class BuildProjectLoader;
-class BuildProjectResolver;
-class ScriptEngine;
-
-class BuildProject : public PersistentObject
-{
- friend class BuildProjectLoader;
- friend class BuildProjectResolver;
-public:
- BuildProject(const Logger &logger);
- ~BuildProject();
-
- void store() const;
- static QString deriveBuildGraphFilePath(const QString &buildDir, const QString &projectId);
- QString buildGraphFilePath() const;
-
- void setEvaluationContext(const RulesEvaluationContextPtr &evalContext);
- RulesEvaluationContextPtr evaluationContext() const { return m_evalContext; }
-
- ResolvedProjectPtr resolvedProject() const;
- QSet<BuildProductPtr> buildProducts() const;
- bool dirty() const;
- void markDirty();
- void insertIntoArtifactLookupTable(Artifact *artifact);
- void removeFromArtifactLookupTable(Artifact *artifact);
- QList<Artifact *> lookupArtifacts(const QString &filePath) const;
- QList<Artifact *> lookupArtifacts(const QString &dirPath, const QString &fileName) const;
- QList<Artifact *> lookupArtifacts(const Artifact *artifact) const;
- void insertFileDependency(Artifact *artifact);
- void rescueData(const BuildProjectConstPtr &other);
- void removeArtifact(Artifact *artifact);
- void updateNodesThatMustGetNewTransformer();
- void removeFromArtifactsThatMustGetNewTransformers(Artifact *a) {
- m_artifactsThatMustGetNewTransformers -= a;
- }
- void addToArtifactsThatMustGetNewTransformers(Artifact *a) {
- m_artifactsThatMustGetNewTransformers += a;
- }
-
-private:
- void load(PersistentPool &pool);
- void store(PersistentPool &pool) const;
- void addBuildProduct(const BuildProductPtr &product);
- void setResolvedProject(const ResolvedProjectPtr &resolvedProject);
- void updateNodeThatMustGetNewTransformer(Artifact *artifact);
-
-private:
- RulesEvaluationContextPtr m_evalContext;
- ResolvedProjectPtr m_resolvedProject;
- QSet<BuildProductPtr> m_buildProducts;
- ArtifactList m_dependencyArtifacts;
- QHash<QString, QHash<QString, QList<Artifact *> > > m_artifactLookupTable;
- QSet<Artifact *> m_artifactsThatMustGetNewTransformers;
- mutable bool m_dirty;
- Logger m_logger;
-};
-
-
-class BuildProjectResolver
-{
-public:
- BuildProjectResolver(const Logger &logger);
- BuildProjectPtr resolveProject(const ResolvedProjectPtr &resolvedProject,
- const RulesEvaluationContextPtr &evalContext);
- void resolveProductsForExistingProject(const BuildProjectPtr &project,
- const QList<ResolvedProductPtr> &freshProducts);
-
-private:
- BuildProductPtr resolveProduct(const ResolvedProductPtr &rProduct);
- RulesEvaluationContextPtr evalContext() const;
- ScriptEngine *engine() const;
- QScriptValue scope() const;
-
- BuildProjectPtr m_project;
- QHash<ResolvedProductPtr, BuildProductPtr> m_productCache;
- Logger m_logger;
-};
-
-
-class BuildProjectLoader
-{
-public:
- BuildProjectLoader(const Logger &logger);
-
- class LoadResult
- {
- public:
- LoadResult() : discardLoadedProject(false) {}
-
- ResolvedProjectPtr changedResolvedProject;
- BuildProjectPtr loadedProject;
- bool discardLoadedProject;
- };
-
- LoadResult load(const SetupProjectParameters &parameters,
- const RulesEvaluationContextPtr &evalContext);
-
-private:
- void trackProjectChanges(const SetupProjectParameters &parameters,
- const QString &buildGraphFilePath,
- const BuildProjectPtr &restoredProject);
- void onProductRemoved(const BuildProductPtr &product);
- void onProductChanged(const BuildProductPtr &product,
- const ResolvedProductPtr &changedProduct);
- void removeArtifactAndExclusiveDependents(Artifact *artifact,
- QList<Artifact*> *removedArtifacts = 0);
- bool checkForPropertyChanges(const TransformerPtr &restoredTrafo, const ResolvedProductPtr &freshProduct);
-
- RulesEvaluationContextPtr m_evalContext;
- LoadResult m_result;
- Logger m_logger;
-};
-
-} // namespace Internal
-} // namespace qbs
-
-#endif // QBS_BUILDPROJECT_H