ProjectExplorer: Streamline access to buildDirectoryTemplate data

There's only one kind of use, in the context of BuildConfiguration.

Change-Id: I09628ff443ef08e28738125a614c17d5d979189b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2021-08-24 08:34:32 +02:00
parent cd3c2fdc5b
commit 22ecef0444
15 changed files with 89 additions and 177 deletions

View File

@@ -34,7 +34,6 @@
#include "kitinformation.h"
#include "makestep.h"
#include "projectexplorer.h"
#include "projectmacroexpander.h"
#include "projectnodes.h"
#include "runconfiguration.h"
#include "runcontrol.h"
@@ -450,17 +449,16 @@ bool Project::copySteps(Target *sourceTarget, Target *newTarget)
const Project * const project = newTarget->project();
for (BuildConfiguration *sourceBc : sourceTarget->buildConfigurations()) {
ProjectMacroExpander expander(project->projectFilePath(), project->displayName(),
newTarget->kit(), sourceBc->displayName(),
sourceBc->buildType());
BuildConfiguration *newBc = BuildConfigurationFactory::clone(newTarget, sourceBc);
if (!newBc) {
buildconfigurationError << sourceBc->displayName();
continue;
}
newBc->setDisplayName(sourceBc->displayName());
newBc->setBuildDirectory(project->projectDirectory()
.resolvePath(expander.expand(ProjectExplorerPlugin::buildDirectoryTemplate())));
newBc->setBuildDirectory(BuildConfiguration::buildDirectoryFromTemplate(
project->projectDirectory(), project->projectFilePath(),
project->displayName(), newTarget->kit(),
sourceBc->displayName(), sourceBc->buildType()));
newTarget->addBuildConfiguration(newBc);
if (sourceTarget->activeBuildConfiguration() == sourceBc)
SessionManager::setActiveBuildConfiguration(newTarget, newBc, SetActive::NoCascade);