diff options
| author | Christian Kandeler <christian.kandeler@digia.com> | 2013-04-08 18:18:16 +0200 |
|---|---|---|
| committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2013-04-12 14:19:12 +0200 |
| commit | 1d9c080428dcd5e8c1d08598d6542d87f1ca1819 (patch) | |
| tree | 38282acbb95c921595dffec93a6dd99aaa61c24f /src/lib/api | |
| parent | f17fd5d56a758a28ef5da04b2be83ed558f7cba6 (diff) | |
| download | qbs-1d9c080428dcd5e8c1d08598d6542d87f1ca1819.tar.gz | |
Remove structural redundancy in project and product classes.
We had two project classes, each holding a list of products
that was structurally identical, except that no BuildProduct
object existed for a disabled ResolvedProduct. The same kind
of duplication also happened for product dependencies.
This patch gets rid of these parallel structures. BuildProject
and BuildProduct are largely being demoted to data holders and are
aggregated by ResolvedProject and ResolvedProduct, respectively.
The resulting project structure should be easier to understand
and maintain.
Change-Id: I68beef60b9e0d62258f6a8337c9015864e18bd80
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/api')
| -rw-r--r-- | src/lib/api/internaljobs.cpp | 58 | ||||
| -rw-r--r-- | src/lib/api/internaljobs.h | 23 | ||||
| -rw-r--r-- | src/lib/api/jobs.cpp | 12 | ||||
| -rw-r--r-- | src/lib/api/jobs.h | 11 | ||||
| -rw-r--r-- | src/lib/api/project.cpp | 89 | ||||
| -rw-r--r-- | src/lib/api/project.h | 5 |
6 files changed, 99 insertions, 99 deletions
diff --git a/src/lib/api/internaljobs.cpp b/src/lib/api/internaljobs.cpp index e29919fe3..b41ec17bc 100644 --- a/src/lib/api/internaljobs.cpp +++ b/src/lib/api/internaljobs.cpp @@ -31,8 +31,9 @@ #include "jobs.h" #include <buildgraph/artifactcleaner.h> -#include <buildgraph/buildproduct.h> -#include <buildgraph/buildproject.h> +#include <buildgraph/buildgraph.h> +#include <buildgraph/productbuilddata.h> +#include <buildgraph/projectbuilddata.h> #include <buildgraph/executor.h> #include <buildgraph/productinstaller.h> #include <buildgraph/rulesevaluationcontext.h> @@ -118,10 +119,10 @@ void InternalJob::cancel() m_observer->cancel(); } -void InternalJob::storeBuildGraph(const BuildProject *buildProject) +void InternalJob::storeBuildGraph(const ResolvedProjectConstPtr &project) { try { - buildProject->store(); + project->store(logger()); } catch (const Error &error) { logger().qbsWarning() << error.toString(); } @@ -153,9 +154,9 @@ void InternalSetupProjectJob::reportError(const Error &error) Q_ARG(Internal::InternalJob *, this)); } -BuildProjectPtr InternalSetupProjectJob::buildProject() const +ResolvedProjectPtr InternalSetupProjectJob::project() const { - return m_buildProject; + return m_project; } void InternalSetupProjectJob::start() @@ -187,23 +188,20 @@ void InternalSetupProjectJob::execute() { RulesEvaluationContextPtr evalContext(new RulesEvaluationContext(logger())); evalContext->setObserver(observer()); - BuildProjectLoader bpLoader(logger()); - const BuildProjectLoader::LoadResult loadResult = bpLoader.load(m_parameters, evalContext); - ResolvedProjectPtr rProject; + BuildGraphLoader bpLoader(logger()); + const BuildGraphLoader::LoadResult loadResult = bpLoader.load(m_parameters, evalContext); if (!loadResult.discardLoadedProject) - m_buildProject = loadResult.loadedProject; - if (m_buildProject) { - rProject = m_buildProject->resolvedProject(); - } else { - if (loadResult.changedResolvedProject) { - rProject = loadResult.changedResolvedProject; + m_project = loadResult.loadedProject; + if (!m_project) { + if (loadResult.newlyResolvedProject) { + m_project = loadResult.newlyResolvedProject; } else { Loader loader(evalContext->engine(), logger()); loader.setSearchPaths(m_parameters.searchPaths); loader.setProgressObserver(observer()); - rProject = loader.loadProject(m_parameters); + m_project = loader.loadProject(m_parameters); } - if (rProject->products.isEmpty()) { + if (m_project->products.isEmpty()) { throw Error(Tr::tr("Project '%1' does not contain products.") .arg(m_parameters.projectFilePath)); } @@ -212,28 +210,28 @@ void InternalSetupProjectJob::execute() // copy the environment from the platform config into the project's config const QVariantMap platformEnvironment = m_parameters.buildConfiguration.value(QLatin1String("environment")).toMap(); - rProject->platformEnvironment = platformEnvironment; + m_project->platformEnvironment = platformEnvironment; - logger().qbsDebug() << QString::fromLocal8Bit("for %1:").arg(rProject->id()); - foreach (const ResolvedProductConstPtr &p, rProject->products) { + logger().qbsDebug() << QString::fromLocal8Bit("for %1:").arg(m_project->id()); + foreach (const ResolvedProductConstPtr &p, m_project->products) { logger().qbsDebug() << QString::fromLocal8Bit(" - [%1] %2 as %3") .arg(p->fileTags.toStringList().join(QLatin1String(", "))) .arg(p->name).arg(p->project->id()); } logger().qbsDebug() << '\n'; - if (!m_buildProject) { + if (!m_project->buildData) { TimedActivityLogger resolveLogger(logger(), QLatin1String("Resolving build project")); - m_buildProject = BuildProjectResolver(logger()).resolveProject(rProject, evalContext); + BuildDataResolver(logger()).resolveBuildData(m_project, evalContext); if (loadResult.loadedProject) - m_buildProject->rescueData(loadResult.loadedProject); + BuildDataResolver::rescueBuildData(loadResult.loadedProject, m_project, logger()); } if (!m_parameters.dryRun) - storeBuildGraph(m_buildProject.data()); + storeBuildGraph(m_project); // The evalutation context cannot be re-used for building, which runs in a different thread. - m_buildProject->setEvaluationContext(RulesEvaluationContextPtr()); + m_project->buildData->evaluationContext.clear(); } @@ -246,7 +244,7 @@ BuildGraphTouchingJob::~BuildGraphTouchingJob() { } -void BuildGraphTouchingJob::setup(const QList<BuildProductPtr> &products, bool dryRun) +void BuildGraphTouchingJob::setup(const QList<ResolvedProductPtr> &products, bool dryRun) { m_products = products; m_dryRun = dryRun; @@ -263,7 +261,7 @@ InternalBuildJob::InternalBuildJob(const Logger &logger, QObject *parent) { } -void InternalBuildJob::build(const QList<BuildProductPtr> &products, +void InternalBuildJob::build(const QList<ResolvedProductPtr> &products, const BuildOptions &buildOptions, const QProcessEnvironment &env) { setup(products, buildOptions.dryRun); @@ -295,7 +293,7 @@ void InternalBuildJob::handleFinished() if (m_executor->hasError()) setError(m_executor->error()); if (!products().isEmpty()) - products().first()->project->setEvaluationContext(RulesEvaluationContextPtr()); + products().first()->project->buildData->evaluationContext.clear(); storeBuildGraph(); m_executor->deleteLater(); } @@ -310,7 +308,7 @@ InternalCleanJob::InternalCleanJob(const Logger &logger, QObject *parent) { } -void InternalCleanJob::clean(const QList<BuildProductPtr> &products, const CleanOptions &options) +void InternalCleanJob::clean(const QList<ResolvedProductPtr> &products, const CleanOptions &options) { setup(products, options.dryRun); setTimed(options.logElapsedTime); @@ -351,7 +349,7 @@ InternalInstallJob::~InternalInstallJob() { } -void InternalInstallJob::install(const QList<BuildProductPtr> &products, +void InternalInstallJob::install(const QList<ResolvedProductPtr> &products, const InstallOptions &options) { m_products = products; diff --git a/src/lib/api/internaljobs.h b/src/lib/api/internaljobs.h index 953977799..1e3f4db53 100644 --- a/src/lib/api/internaljobs.h +++ b/src/lib/api/internaljobs.h @@ -29,8 +29,7 @@ #ifndef QBS_INTERNALJOBS_H #define QBS_INTERNALJOBS_H -#include "projectdata.h" -#include <buildgraph/forward_decls.h> +#include <language/forward_decls.h> #include <logging/logger.h> #include <tools/buildoptions.h> #include <tools/cleanoptions.h> @@ -73,7 +72,7 @@ protected: JobObserver *observer() const { return m_observer; } void setError(const Error &error) { m_error = error; } void setTimed(bool timed) { m_timed = timed; } - void storeBuildGraph(const BuildProject *buildProject); + void storeBuildGraph(const ResolvedProjectConstPtr &project); signals: void finished(Internal::InternalJob *job); @@ -99,7 +98,7 @@ public: void resolve(const SetupProjectParameters ¶meters); void reportError(const Error &error); - BuildProjectPtr buildProject() const; + ResolvedProjectPtr project() const; private slots: void start(); @@ -113,7 +112,7 @@ private: QMutex m_runMutex; QWaitCondition m_runWaitCondition; - BuildProjectPtr m_buildProject; + ResolvedProjectPtr m_project; SetupProjectParameters m_parameters; }; @@ -122,7 +121,7 @@ class BuildGraphTouchingJob : public InternalJob { Q_OBJECT public: - const QList<BuildProductPtr> &products() const { return m_products; } + const QList<ResolvedProductPtr> &products() const { return m_products; } signals: void reportCommandDescription(const QString &highlight, const QString &message); @@ -133,11 +132,11 @@ protected: BuildGraphTouchingJob(const Logger &logger, QObject *parent = 0); ~BuildGraphTouchingJob(); - void setup(const QList<BuildProductPtr> &products, bool dryRun); + void setup(const QList<ResolvedProductPtr> &products, bool dryRun); void storeBuildGraph(); private: - QList<BuildProductPtr> m_products; + QList<ResolvedProductPtr> m_products; bool m_dryRun; }; @@ -148,7 +147,7 @@ class InternalBuildJob : public BuildGraphTouchingJob public: InternalBuildJob(const Logger &logger, QObject *parent = 0); - void build(const QList<BuildProductPtr> &products, const BuildOptions &buildOptions, + void build(const QList<ResolvedProductPtr> &products, const BuildOptions &buildOptions, const QProcessEnvironment &env); private slots: @@ -166,7 +165,7 @@ class InternalCleanJob : public BuildGraphTouchingJob public: InternalCleanJob(const Logger &logger, QObject *parent = 0); - void clean(const QList<BuildProductPtr> &products, const CleanOptions &options); + void clean(const QList<ResolvedProductPtr> &products, const CleanOptions &options); private slots: void start(); @@ -187,7 +186,7 @@ public: InternalInstallJob(const Logger &logger, QObject *parent = 0); ~InternalInstallJob(); - void install(const QList<BuildProductPtr> &products, const InstallOptions &options); + void install(const QList<ResolvedProductPtr> &products, const InstallOptions &options); private slots: void handleFinished(); @@ -197,7 +196,7 @@ private: void doInstall(); private: - QList<BuildProductPtr> m_products; + QList<ResolvedProductPtr> m_products; InstallOptions m_options; }; diff --git a/src/lib/api/jobs.cpp b/src/lib/api/jobs.cpp index a7b8f87c9..49f72bf6a 100644 --- a/src/lib/api/jobs.cpp +++ b/src/lib/api/jobs.cpp @@ -30,11 +30,7 @@ #include "internaljobs.h" #include "project.h" -#include <buildgraph/buildproject.h> -#include <buildgraph/rulesevaluationcontext.h> #include <language/language.h> -#include <language/scriptengine.h> -#include <tools/setupprojectparameters.h> #include <tools/qbsassert.h> namespace qbs { @@ -193,7 +189,7 @@ Project SetupProjectJob::project() const { const InternalSetupProjectJob * const job = qobject_cast<InternalSetupProjectJob *>(internalJob()); - return Project(job->buildProject(), job->logger()); + return Project(job->project(), job->logger()); } void SetupProjectJob::resolve(const SetupProjectParameters ¶meters) @@ -253,7 +249,7 @@ BuildJob::BuildJob(const Logger &logger, QObject *parent) connect(job, SIGNAL(reportWarning(qbs::Error)), this, SIGNAL(reportWarning(qbs::Error))); } -void BuildJob::build(const QList<BuildProductPtr> &products, const BuildOptions &options, +void BuildJob::build(const QList<ResolvedProductPtr> &products, const BuildOptions &options, const QProcessEnvironment &env) { qobject_cast<InternalBuildJob *>(internalJob())->build(products, options, env); @@ -270,7 +266,7 @@ CleanJob::CleanJob(const Logger &logger, QObject *parent) { } -void CleanJob::clean(const QList<BuildProductPtr> &products, const qbs::CleanOptions &options) +void CleanJob::clean(const QList<ResolvedProductPtr> &products, const qbs::CleanOptions &options) { qobject_cast<InternalCleanJob *>(internalJob())->clean(products, options); } @@ -285,7 +281,7 @@ InstallJob::InstallJob(const Logger &logger, QObject *parent) { } -void InstallJob::install(const QList<BuildProductPtr> &products, const InstallOptions &options) +void InstallJob::install(const QList<ResolvedProductPtr> &products, const InstallOptions &options) { qobject_cast<InternalInstallJob *>(internalJob())->install(products, options); } diff --git a/src/lib/api/jobs.h b/src/lib/api/jobs.h index 997720c7b..baacfdb2e 100644 --- a/src/lib/api/jobs.h +++ b/src/lib/api/jobs.h @@ -29,7 +29,7 @@ #ifndef QBS_JOBS_H #define QBS_JOBS_H -#include "../buildgraph/forward_decls.h" +#include "../language/forward_decls.h" #include "../tools/error.h" #include "../tools/qbs_export.h" @@ -114,8 +114,8 @@ signals: private: BuildJob(const Internal::Logger &logger, QObject *parent); - void build(const QList<Internal::BuildProductPtr> &products, const BuildOptions &options, - const QProcessEnvironment &env); + void build(const QList<qbs::Internal::ResolvedProductPtr> &products, + const BuildOptions &options, const QProcessEnvironment &env); }; @@ -127,7 +127,7 @@ class QBS_EXPORT CleanJob : public AbstractJob private: CleanJob(const Internal::Logger &logger, QObject *parent); - void clean(const QList<Internal::BuildProductPtr> &products, const CleanOptions &options); + void clean(const QList<Internal::ResolvedProductPtr> &products, const CleanOptions &options); }; class QBS_EXPORT InstallJob : public AbstractJob @@ -137,7 +137,8 @@ class QBS_EXPORT InstallJob : public AbstractJob private: InstallJob(const Internal::Logger &logger, QObject *parent); - void install(const QList<Internal::BuildProductPtr> &products, const InstallOptions &options); + void install(const QList<Internal::ResolvedProductPtr> &products, + const InstallOptions &options); }; } // namespace qbs diff --git a/src/lib/api/project.cpp b/src/lib/api/project.cpp index eeca9aa78..dc5e55819 100644 --- a/src/lib/api/project.cpp +++ b/src/lib/api/project.cpp @@ -34,9 +34,7 @@ #include "propertymap_p.h" #include "runenvironment.h" #include <buildgraph/artifact.h> -#include <buildgraph/buildproduct.h> -#include <buildgraph/buildproject.h> -#include <buildgraph/rulesevaluationcontext.h> +#include <buildgraph/productbuilddata.h> #include <buildgraph/timestampsupdater.h> #include <language/language.h> #include <logging/logger.h> @@ -92,24 +90,25 @@ static void loadPlugins(const QStringList &_pluginPaths, const Logger &logger) class ProjectPrivate : public QSharedData { public: - ProjectPrivate(const BuildProjectPtr &internalProject, const Logger &logger) + ProjectPrivate(const ResolvedProjectPtr &internalProject, const Logger &logger) : internalProject(internalProject), logger(logger), m_projectDataRetrieved(false) { } ProjectData projectData(); - BuildJob *buildProducts(const QList<BuildProductPtr> &products, const BuildOptions &options, + BuildJob *buildProducts(const QList<ResolvedProductPtr> &products, const BuildOptions &options, bool needsDepencencyResolving, const QProcessEnvironment &env, QObject *jobOwner); - CleanJob *cleanProducts(const QList<BuildProductPtr> &products, const CleanOptions &options, + CleanJob *cleanProducts(const QList<ResolvedProductPtr> &products, const CleanOptions &options, QObject *jobOwner); - InstallJob *installProducts(const QList<BuildProductPtr> &products, + InstallJob *installProducts(const QList<ResolvedProductPtr> &products, const InstallOptions &options, bool needsDepencencyResolving, QObject *jobOwner); - QList<BuildProductPtr> internalProducts(const QList<ProductData> &products) const; - BuildProductPtr internalProduct(const ProductData &product) const; + QList<ResolvedProductPtr> internalProducts(const QList<ProductData> &products) const; + QList<ResolvedProductPtr> allEnabledInternalProducts() const; + ResolvedProductPtr internalProduct(const ProductData &product) const; - const BuildProjectPtr internalProject; + const ResolvedProjectPtr internalProject; Logger logger; private: @@ -126,22 +125,22 @@ ProjectData ProjectPrivate::projectData() return m_projectData; } -static void addDependencies(QList<BuildProductPtr> &products) +static void addDependencies(QList<ResolvedProductPtr> &products) { for (int i = 0; i < products.count(); ++i) { - const BuildProductConstPtr &product = products.at(i); - foreach (const BuildProductPtr &dependency, product->dependencies) { + const ResolvedProductPtr &product = products.at(i); + foreach (const ResolvedProductPtr &dependency, product->dependencies) { if (!products.contains(dependency)) products << dependency; } } } -BuildJob *ProjectPrivate::buildProducts(const QList<BuildProductPtr> &products, +BuildJob *ProjectPrivate::buildProducts(const QList<ResolvedProductPtr> &products, const BuildOptions &options, bool needsDepencencyResolving, const QProcessEnvironment &env, QObject *jobOwner) { - QList<BuildProductPtr> productsToBuild = products; + QList<ResolvedProductPtr> productsToBuild = products; if (needsDepencencyResolving) addDependencies(productsToBuild); @@ -150,7 +149,7 @@ BuildJob *ProjectPrivate::buildProducts(const QList<BuildProductPtr> &products, return job; } -CleanJob *ProjectPrivate::cleanProducts(const QList<BuildProductPtr> &products, +CleanJob *ProjectPrivate::cleanProducts(const QList<ResolvedProductPtr> &products, const CleanOptions &options, QObject *jobOwner) { CleanJob * const job = new CleanJob(logger, jobOwner); @@ -158,10 +157,10 @@ CleanJob *ProjectPrivate::cleanProducts(const QList<BuildProductPtr> &products, return job; } -InstallJob *ProjectPrivate::installProducts(const QList<BuildProductPtr> &products, +InstallJob *ProjectPrivate::installProducts(const QList<ResolvedProductPtr> &products, const InstallOptions &options, bool needsDepencencyResolving, QObject *jobOwner) { - QList<BuildProductPtr> productsToInstall = products; + QList<ResolvedProductPtr> productsToInstall = products; if (needsDepencencyResolving) addDependencies(productsToInstall); InstallJob * const job = new InstallJob(logger, jobOwner); @@ -169,9 +168,9 @@ InstallJob *ProjectPrivate::installProducts(const QList<BuildProductPtr> &produc return job; } -QList<BuildProductPtr> ProjectPrivate::internalProducts(const QList<ProductData> &products) const +QList<ResolvedProductPtr> ProjectPrivate::internalProducts(const QList<ProductData> &products) const { - QList<BuildProductPtr> internalProducts; + QList<ResolvedProductPtr> internalProducts; foreach (const ProductData &product, products) { if (product.isEnabled()) internalProducts << internalProduct(product); @@ -179,21 +178,30 @@ QList<BuildProductPtr> ProjectPrivate::internalProducts(const QList<ProductData> return internalProducts; } -BuildProductPtr ProjectPrivate::internalProduct(const ProductData &product) const +QList<ResolvedProductPtr> ProjectPrivate::allEnabledInternalProducts() const { - foreach (const BuildProductPtr &buildProduct, internalProject->buildProducts()) { - if (product.name() == buildProduct->rProduct->name) - return buildProduct; + QList<ResolvedProductPtr> products; + foreach (const ResolvedProductPtr &p, internalProject->products) { + if (p->enabled) + products << p; + } + return products; +} + +ResolvedProductPtr ProjectPrivate::internalProduct(const ProductData &product) const +{ + foreach (const ResolvedProductPtr &resolvedProduct, internalProject->products) { + if (product.name() == resolvedProduct->name) + return resolvedProduct; } qFatal("No build product '%s'", qPrintable(product.name())); - return BuildProductPtr(); + return ResolvedProductPtr(); } void ProjectPrivate::retrieveProjectData() { - m_projectData.m_location = internalProject->resolvedProject()->location; - foreach (const ResolvedProductConstPtr &resolvedProduct, - internalProject->resolvedProject()->products) { + m_projectData.m_location = internalProject->location; + foreach (const ResolvedProductConstPtr &resolvedProduct, internalProject->products) { ProductData product; product.m_name = resolvedProduct->name; product.m_location = resolvedProduct->location; @@ -232,7 +240,7 @@ using namespace Internal; * \brief The \c Project class provides services related to a qbs project. */ -Project::Project(const BuildProjectPtr &internalProject, const Logger &logger) +Project::Project(const ResolvedProjectPtr &internalProject, const Logger &logger) : d(new ProjectPrivate(internalProject, logger)) { } @@ -357,11 +365,11 @@ QString Project::targetExecutable(const ProductData &product, const QString &_in { if (!product.isEnabled()) return QString(); - const BuildProductConstPtr buildProduct = d->internalProduct(product); - if (!isExecutable(buildProduct->rProduct->properties, buildProduct->rProduct->fileTags)) + const ResolvedProductConstPtr internalProduct = d->internalProduct(product); + if (!isExecutable(internalProduct->properties, internalProduct->fileTags)) return QString(); - foreach (const Artifact * const artifact, buildProduct->targetArtifacts) { + foreach (const Artifact * const artifact, internalProduct->buildData->targetArtifacts) { if (isExecutable(artifact->properties, artifact->fileTags)) { if (!artifact->properties->qbsPropertyValue(QLatin1String("install")).toBool()) return artifact->filePath(); @@ -376,12 +384,13 @@ QString Project::targetExecutable(const ProductData &product, const QString &_in } if (installRoot.isEmpty()) { - installRoot = artifact->product->project->resolvedProject()->buildDirectory + installRoot = d->internalProject->buildDirectory + QLatin1Char('/') + InstallOptions::defaultInstallRoot(); } QString installDir = artifact->properties ->qbsPropertyValue(QLatin1String("installDir")).toString(); - return QDir::cleanPath(installRoot + QLatin1Char('/') + installDir + QLatin1Char('/') + fileName); + return QDir::cleanPath(installRoot + QLatin1Char('/') + installDir + QLatin1Char('/') + + fileName); } } return QString(); @@ -391,7 +400,7 @@ RunEnvironment Project::getRunEnvironment(const ProductData &product, const QProcessEnvironment &environment, Settings *settings) const { QBS_CHECK(product.isEnabled()); - const ResolvedProductPtr resolvedProduct = d->internalProduct(product)->rProduct; + const ResolvedProductPtr resolvedProduct = d->internalProduct(product); return RunEnvironment(resolvedProduct, environment, settings, d->logger); } @@ -402,8 +411,7 @@ RunEnvironment Project::getRunEnvironment(const ProductData &product, BuildJob *Project::buildAllProducts(const BuildOptions &options, const QProcessEnvironment &env, QObject *jobOwner) const { - return d->buildProducts(d->internalProject->buildProducts().toList(), options, false, env, - jobOwner); + return d->buildProducts(d->allEnabledInternalProducts(), options, false, env, jobOwner); } /*! @@ -436,7 +444,7 @@ BuildJob *Project::buildOneProduct(const ProductData &product, const BuildOption */ CleanJob *Project::cleanAllProducts(const CleanOptions &options, QObject *jobOwner) const { - return d->cleanProducts(d->internalProject->buildProducts().toList(), options, jobOwner); + return d->cleanProducts(d->allEnabledInternalProducts(), options, jobOwner); } /*! @@ -465,8 +473,7 @@ CleanJob *Project::cleanOneProduct(const ProductData &product, const CleanOption */ InstallJob *Project::installAllProducts(const InstallOptions &options, QObject *jobOwner) const { - return d->installProducts(d->internalProject->buildProducts().toList(), options, false, - jobOwner); + return d->installProducts(d->allEnabledInternalProducts(), options, false, jobOwner); } /*! @@ -495,7 +502,7 @@ InstallJob *Project::installOneProduct(const ProductData &product, const Install */ void Project::updateTimestamps(const QList<ProductData> &products) { - TimestampsUpdater().updateTimestamps(d->internalProducts(products)); + TimestampsUpdater().updateTimestamps(d->internalProducts(products), d->logger); } } // namespace qbs diff --git a/src/lib/api/project.h b/src/lib/api/project.h index c6072f312..ec9ac3a46 100644 --- a/src/lib/api/project.h +++ b/src/lib/api/project.h @@ -29,7 +29,7 @@ #ifndef QBS_PROJECT_H #define QBS_PROJECT_H -#include "../buildgraph/forward_decls.h" +#include "../language/forward_decls.h" #include "../tools/qbs_export.h" #include <QExplicitlySharedDataPointer> @@ -56,7 +56,6 @@ class SetupProjectJob; class SetupProjectParameters; namespace Internal { -class BuildProject; class Logger; class ProjectPrivate; } // namespace Internal; @@ -104,7 +103,7 @@ public: private: Project(); - Project(const Internal::BuildProjectPtr &internalProject, const Internal::Logger &logger); + Project(const Internal::ResolvedProjectPtr &internalProject, const Internal::Logger &logger); QExplicitlySharedDataPointer<Internal::ProjectPrivate> d; }; |
