QbsProjectManager: Fix overriding of properties.

We have to mark the user-set properties appropriately; otherwise,
properties in project files will not get overridden.

Change-Id: I3bcb013fde2b76521a85c3283e2b158beaf40b26
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Christian Kandeler
2013-10-24 15:10:04 +02:00
parent 9aea8087a1
commit 3c7af78448

View File

@@ -416,7 +416,14 @@ void QbsProject::parse(const QVariantMap &config, const Environment &env, const
QTC_ASSERT(!dir.isNull(), return);
qbs::SetupProjectParameters params;
params.setBuildConfiguration(config);
QVariantMap baseConfig;
QVariantMap userConfig = config;
QString specialKey = QLatin1String(Constants::QBS_CONFIG_PROFILE_KEY);
baseConfig.insert(specialKey, userConfig.take(specialKey));
specialKey = QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY);
baseConfig.insert(specialKey, userConfig.take(specialKey));
params.setBuildConfiguration(baseConfig);
params.setOverriddenValues(userConfig);
qbs::ErrorInfo err = params.expandBuildConfiguration(m_manager->settings());
if (err.hasError()) {
generateErrors(err);