ProjectExplorer: Set up hack to funnel information to buildstep ctors

For now, store most of BuildInfo in the BuildConfiguration. This will
allow accessing it in the BuildStep ctors so the BuildSteps can
be fully setup without polishing afterwards (as currently done
in the main build steps of the three buildsystems, and Nim)

This in meant to be temporary to a large degree.

Change-Id: If6ade6052f4b96670995399ae97ef7d2313f632a
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-08-02 18:06:29 +02:00
parent 02707ecdad
commit fb631cb258
16 changed files with 72 additions and 71 deletions

View File

@@ -94,20 +94,21 @@ QbsBuildConfiguration::QbsBuildConfiguration(Target *target, Core::Id id)
this, &QbsBuildConfiguration::triggerReparseIfActive);
}
void QbsBuildConfiguration::initialize(const BuildInfo &info)
void QbsBuildConfiguration::initialize()
{
BuildConfiguration::initialize(info);
BuildConfiguration::initialize();
QVariantMap configData = info.extraInfo.value<QVariantMap>();
QVariantMap configData = extraInfo().value<QVariantMap>();
configData.insert(QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY),
(info.buildType == BuildConfiguration::Debug)
(initialBuildType() == BuildConfiguration::Debug)
? QLatin1String(Constants::QBS_VARIANT_DEBUG)
: QLatin1String(Constants::QBS_VARIANT_RELEASE));
Utils::FilePath buildDir = info.buildDirectory;
Utils::FilePath buildDir = initialBuildDirectory();
if (buildDir.isEmpty())
buildDir = defaultBuildDirectory(target()->project()->projectFilePath(),
target()->kit(), info.displayName, info.buildType);
target()->kit(), initialDisplayName(),
initialBuildType());
setBuildDirectory(buildDir);
// Add the build configuration.
@@ -115,14 +116,14 @@ void QbsBuildConfiguration::initialize(const BuildInfo &info)
QString configName = bd.take("configName").toString();
if (configName.isEmpty()) {
configName = "qtc_" + target()->kit()->fileSystemFriendlyName() + '_'
+ Utils::FileUtils::fileSystemFriendlyName(info.displayName);
+ Utils::FileUtils::fileSystemFriendlyName(initialDisplayName());
}
m_configurationName->setValue(configName);
BuildStepList *buildSteps = stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD);
auto bs = new QbsBuildStep(buildSteps);
if (info.buildType == Release)
if (initialBuildType() == Release)
bs->setQmlDebuggingEnabled(false);
bs->setQbsConfiguration(bd);
buildSteps->appendStep(bs);

View File

@@ -48,7 +48,7 @@ class QbsBuildConfiguration : public ProjectExplorer::BuildConfiguration
QbsBuildConfiguration(ProjectExplorer::Target *target, Core::Id id);
public:
void initialize(const ProjectExplorer::BuildInfo &info) override;
void initialize() override;
QbsBuildStep *qbsStep() const;
QVariantMap qbsConfiguration() const;