diff options
author | Christian Kandeler <christian.kandeler@digia.com> | 2014-09-24 14:17:59 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2014-09-24 17:49:36 +0200 |
commit | f25526ee38331f3e5b9926de525de2d292b5b9fa (patch) | |
tree | 7353e62d68b34ce23ebf7b5066ce3849a0be537e | |
parent | 7a4988687d3db80d4d75ab13c87a629551fb7345 (diff) |
Store the build graph when adding or removing files.
Otherwise, if the project is closed without building, it will needlessly
be re-resolved the next time it is opened.
Change-Id: I6b88498c5576539d8ee9c5f84e22344af44d2bfe
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
-rw-r--r-- | src/lib/corelib/api/project.cpp | 8 | ||||
-rw-r--r-- | tests/auto/api/tst_api.cpp | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp index 2b36d971a..6856adaae 100644 --- a/src/lib/corelib/api/project.cpp +++ b/src/lib/corelib/api/project.cpp @@ -1060,6 +1060,8 @@ ErrorInfo Project::addGroup(const ProductData &product, const QString &groupName QBS_CHECK(isValid()); d->prepareChangeToProject(); d->addGroup(product, groupName); + d->internalProject->lastResolveTime = FileTime::currentTime(); + d->internalProject->store(d->logger); return ErrorInfo(); } catch (ErrorInfo errorInfo) { errorInfo.prepend(Tr::tr("Failure adding group '%1' to product '%2'.") @@ -1085,6 +1087,8 @@ ErrorInfo Project::addFiles(const ProductData &product, const GroupData &group, QBS_CHECK(isValid()); d->prepareChangeToProject(); d->addFiles(product, group, filePaths); + d->internalProject->lastResolveTime = FileTime::currentTime(); + d->internalProject->store(d->logger); return ErrorInfo(); } catch (ErrorInfo errorInfo) { errorInfo.prepend(Tr::tr("Failure adding files to product.")); @@ -1109,6 +1113,8 @@ ErrorInfo Project::removeFiles(const ProductData &product, const GroupData &grou QBS_CHECK(isValid()); d->prepareChangeToProject(); d->removeFiles(product, group, filePaths); + d->internalProject->lastResolveTime = FileTime::currentTime(); + d->internalProject->store(d->logger); return ErrorInfo(); } catch (ErrorInfo errorInfo) { errorInfo.prepend(Tr::tr("Failure removing files from product '%1'.").arg(product.name())); @@ -1128,6 +1134,8 @@ ErrorInfo Project::removeGroup(const ProductData &product, const GroupData &grou QBS_CHECK(isValid()); d->prepareChangeToProject(); d->removeGroup(product, group); + d->internalProject->lastResolveTime = FileTime::currentTime(); + d->internalProject->store(d->logger); return ErrorInfo(); } catch (ErrorInfo errorInfo) { errorInfo.prepend(Tr::tr("Failure removing group '%1' from product '%2'.") diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp index 687863876..1ed331cca 100644 --- a/tests/auto/api/tst_api.cpp +++ b/tests/auto/api/tst_api.cpp @@ -771,6 +771,7 @@ void TestApi::projectInvalidation() const QString projectDirPath = QDir::cleanPath(m_workingDataDir + "/project-invalidation"); setupParams.setProjectFilePath(projectDirPath + "/project.qbs"); QDir::setCurrent(projectDirPath); + setupParams.setBuildRoot(projectDirPath); QVERIFY(QFile::copy("project.no-error.qbs", "project.qbs")); QScopedPointer<qbs::SetupProjectJob> setupJob(qbs::Project().setupProject(setupParams, m_logSink, 0)); |