diff options
-rw-r--r-- | src/lib/corelib/api/internaljobs.cpp | 12 |
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)); } |