aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/corelib/api/internaljobs.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/lib/corelib/api/internaljobs.cpp b/src/lib/corelib/api/internaljobs.cpp
index f9159146d..93adeeef1 100644
--- a/src/lib/corelib/api/internaljobs.cpp
+++ b/src/lib/corelib/api/internaljobs.cpp
@@ -230,11 +230,13 @@ void InternalSetupProjectJob::start()
const ErrorInfo err = m_parameters.expandBuildConfiguration();
if (err.hasError())
throw err;
- if (!bgLocker) {
- const QString projectId = TopLevelProject::deriveId(m_parameters.topLevelProfile(),
- m_parameters.finalBuildConfigurationTree());
- const QString buildDir
- = TopLevelProject::deriveBuildDirectory(m_parameters.buildRoot(), projectId);
+ const QString projectId = TopLevelProject::deriveId(m_parameters.topLevelProfile(),
+ m_parameters.finalBuildConfigurationTree());
+ const QString buildDir
+ = TopLevelProject::deriveBuildDirectory(m_parameters.buildRoot(), projectId);
+ if (m_existingProject && m_existingProject->buildDirectory != buildDir)
+ m_existingProject.clear();
+ if (!m_existingProject) {
bgLocker = new BuildGraphLocker(ProjectBuildData::deriveBuildGraphFilePath(buildDir,
projectId));
}