QbsProjectManager: Let users provide a default install root

Fixes: QTCREATORBUG-12983
Change-Id: I016d298aaf8abc0d96267115225ab825bdd039e9
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2019-11-21 17:07:11 +01:00
parent fd8afd564f
commit 142d4ddb28
5 changed files with 34 additions and 7 deletions

View File

@@ -227,7 +227,7 @@ QVariantMap QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) co
else
config.remove(Constants::QBS_CONFIG_QUICK_DEBUG_KEY);
if (variableHandling == ExpandVariables) {
const Utils::MacroExpander *expander = Utils::globalMacroExpander();
const MacroExpander * const expander = buildConfiguration()->macroExpander();
for (auto it = config.begin(), end = config.end(); it != end; ++it) {
const QString rawString = it.value().toString();
const QString expandedString = expander->expand(rawString);
@@ -264,10 +264,10 @@ Utils::FilePath QbsBuildStep::installRoot(VariableHandling variableHandling) con
qbsConfiguration(variableHandling).value(Constants::QBS_INSTALL_ROOT_KEY).toString();
if (!root.isNull())
return Utils::FilePath::fromString(root);
const QbsBuildConfiguration * const bc
= static_cast<QbsBuildConfiguration *>(buildConfiguration());
return bc->buildDirectory().pathAppended(bc->configurationName()).pathAppended("install-root");
QString defaultInstallDir = QbsSettings::defaultInstallDirTemplate();
if (variableHandling == VariableHandling::ExpandVariables)
defaultInstallDir = buildConfiguration()->macroExpander()->expand(defaultInstallDir);
return FilePath::fromString(defaultInstallDir);
}
int QbsBuildStep::maxJobs() const
@@ -640,6 +640,9 @@ QbsBuildStepConfigWidget::QbsBuildStepConfigWidget(QbsBuildStep *step) :
auto chooser = new Core::VariableChooser(this);
chooser->addSupportedWidget(propertyEdit);
chooser->addSupportedWidget(installDirChooser->lineEdit());
chooser->addMacroExpanderProvider([step] {
return step->buildConfiguration()->macroExpander();
});
propertyEdit->setValidationFunction([this](FancyLineEdit *edit, QString *errorMessage) {
return validateProperties(edit, errorMessage);
});
@@ -868,7 +871,7 @@ bool QbsBuildStepConfigWidget::validateProperties(Utils::FancyLineEdit *edit, QS
}
QList<Property> properties;
const Utils::MacroExpander *expander = Utils::globalMacroExpander();
const MacroExpander * const expander = step()->buildConfiguration()->macroExpander();
foreach (const QString &rawArg, argList) {
int pos = rawArg.indexOf(':');
if (pos > 0) {