diff options
Diffstat (limited to 'src/lib/buildgraph/buildproject.h')
| -rw-r--r-- | src/lib/buildgraph/buildproject.h | 166 |
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 ¶meters, - const RulesEvaluationContextPtr &evalContext); - -private: - void trackProjectChanges(const SetupProjectParameters ¶meters, - 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 |
