diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp index 87c855b12d7..c014a279642 100644 --- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp @@ -27,6 +27,7 @@ #include "buildinfo.h" #include "buildstepspage.h" #include "target.h" +#include "project.h" #include "buildconfiguration.h" #include "projectconfigurationmodel.h" #include "session.h" @@ -300,13 +301,16 @@ void BuildSettingsWidget::cloneConfiguration() return; bc->setDisplayName(name); - const std::function isBuildDirOk = [this](const FilePath &candidate) { - if (candidate.exists()) - return false; - return !anyOf(m_target->buildConfigurations(), [&candidate](const BuildConfiguration *bc) { - return bc->buildDirectory() == candidate; }); - }; - bc->setBuildDirectory(makeUniquelyNumbered(bc->buildDirectory(), isBuildDirOk)); + const FilePath buildDirectory = bc->buildDirectory(); + if (buildDirectory != m_target->project()->projectDirectory()) { + const std::function isBuildDirOk = [this](const FilePath &candidate) { + if (candidate.exists()) + return false; + return !anyOf(m_target->buildConfigurations(), [&candidate](const BuildConfiguration *bc) { + return bc->buildDirectory() == candidate; }); + }; + bc->setBuildDirectory(makeUniquelyNumbered(buildDirectory, isBuildDirOk)); + } m_target->addBuildConfiguration(bc); SessionManager::setActiveBuildConfiguration(m_target, bc, SetActive::Cascade); }