forked from qt-creator/qt-creator
ProjectExplorer: Do not generate new directory when original is in-place
If the original configuration is not a shadow build, there is no reason to generate a new directory name when cloning the configuration. Change-Id: Ie84ee01ac70c69161e65a0b58cdfbfbe1a1630ab Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
committed by
Orgad Shaneh
parent
b56c872b27
commit
7fc6af4ad6
@@ -27,6 +27,7 @@
|
|||||||
#include "buildinfo.h"
|
#include "buildinfo.h"
|
||||||
#include "buildstepspage.h"
|
#include "buildstepspage.h"
|
||||||
#include "target.h"
|
#include "target.h"
|
||||||
|
#include "project.h"
|
||||||
#include "buildconfiguration.h"
|
#include "buildconfiguration.h"
|
||||||
#include "projectconfigurationmodel.h"
|
#include "projectconfigurationmodel.h"
|
||||||
#include "session.h"
|
#include "session.h"
|
||||||
@@ -300,13 +301,16 @@ void BuildSettingsWidget::cloneConfiguration()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
bc->setDisplayName(name);
|
bc->setDisplayName(name);
|
||||||
const std::function<bool(const FilePath &)> isBuildDirOk = [this](const FilePath &candidate) {
|
const FilePath buildDirectory = bc->buildDirectory();
|
||||||
if (candidate.exists())
|
if (buildDirectory != m_target->project()->projectDirectory()) {
|
||||||
return false;
|
const std::function<bool(const FilePath &)> isBuildDirOk = [this](const FilePath &candidate) {
|
||||||
return !anyOf(m_target->buildConfigurations(), [&candidate](const BuildConfiguration *bc) {
|
if (candidate.exists())
|
||||||
return bc->buildDirectory() == candidate; });
|
return false;
|
||||||
};
|
return !anyOf(m_target->buildConfigurations(), [&candidate](const BuildConfiguration *bc) {
|
||||||
bc->setBuildDirectory(makeUniquelyNumbered(bc->buildDirectory(), isBuildDirOk));
|
return bc->buildDirectory() == candidate; });
|
||||||
|
};
|
||||||
|
bc->setBuildDirectory(makeUniquelyNumbered(buildDirectory, isBuildDirOk));
|
||||||
|
}
|
||||||
m_target->addBuildConfiguration(bc);
|
m_target->addBuildConfiguration(bc);
|
||||||
SessionManager::setActiveBuildConfiguration(m_target, bc, SetActive::Cascade);
|
SessionManager::setActiveBuildConfiguration(m_target, bc, SetActive::Cascade);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user