forked from qt-creator/qt-creator
Qbs: Use Store instead of QVariantMap in a few places
Change-Id: I0636fad4ca032ec6657f2e35154c2e0ea4d0c9ca Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -62,7 +62,7 @@ QbsBuildConfiguration::QbsBuildConfiguration(Target *target, Utils::Id id)
|
||||
|
||||
setInitializer([this, target](const BuildInfo &info) {
|
||||
const Kit *kit = target->kit();
|
||||
QVariantMap configData = info.extraInfo.value<QVariantMap>();
|
||||
Store configData = storeFromVariant(info.extraInfo);
|
||||
const QString buildVariant = [](BuildConfiguration::BuildType buildType) -> QString {
|
||||
switch (buildType) {
|
||||
case BuildConfiguration::Release: return Constants::QBS_VARIANT_RELEASE;
|
||||
@@ -73,7 +73,7 @@ QbsBuildConfiguration::QbsBuildConfiguration(Target *target, Utils::Id id)
|
||||
}
|
||||
return Constants::QBS_VARIANT_DEBUG;
|
||||
}(info.buildType);
|
||||
configData.insert(QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY), buildVariant);
|
||||
configData.insert(Constants::QBS_CONFIG_VARIANT_KEY, buildVariant);
|
||||
FilePath buildDir = info.buildDirectory;
|
||||
if (buildDir.isEmpty())
|
||||
buildDir = defaultBuildDirectory(target->project()->projectFilePath(),
|
||||
@@ -82,7 +82,7 @@ QbsBuildConfiguration::QbsBuildConfiguration(Target *target, Utils::Id id)
|
||||
setBuildDirectory(buildDir);
|
||||
|
||||
// Add the build configuration.
|
||||
QVariantMap bd = configData;
|
||||
Store bd = configData;
|
||||
QString configName = bd.take("configName").toString();
|
||||
if (configName.isEmpty()) {
|
||||
configName = "qtc_" + kit->fileSystemFriendlyName() + '_'
|
||||
@@ -162,7 +162,7 @@ void QbsBuildConfiguration::fromMap(const Store &map)
|
||||
if (configurationName().isEmpty()) { // pre-4.4 backwards compatibility
|
||||
const QString profileName = QbsProfileManager::profileNameForKit(target()->kit());
|
||||
const QString buildVariant = qbsConfiguration()
|
||||
.value(QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY)).toString();
|
||||
.value(Constants::QBS_CONFIG_VARIANT_KEY).toString();
|
||||
configurationName.setValue(profileName + '-' + buildVariant);
|
||||
}
|
||||
}
|
||||
@@ -183,9 +183,9 @@ QbsBuildStep *QbsBuildConfiguration::qbsStep() const
|
||||
return buildSteps()->firstOfType<QbsBuildStep>();
|
||||
}
|
||||
|
||||
QVariantMap QbsBuildConfiguration::qbsConfiguration() const
|
||||
Store QbsBuildConfiguration::qbsConfiguration() const
|
||||
{
|
||||
QVariantMap config;
|
||||
Store config;
|
||||
QbsBuildStep *qbsBs = qbsStep();
|
||||
if (qbsBs)
|
||||
config = qbsBs->qbsConfiguration(QbsBuildStep::ExpandVariables);
|
||||
@@ -269,7 +269,7 @@ QString QbsBuildConfiguration::equivalentCommandLine(const QbsBuildStepData &ste
|
||||
|
||||
const QString profileName = QbsProfileManager::profileNameForKit(target()->kit());
|
||||
const QString buildVariant = qbsConfiguration()
|
||||
.value(QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY)).toString();
|
||||
.value(Constants::QBS_CONFIG_VARIANT_KEY).toString();
|
||||
commandLine.addArg("config:" + configurationName());
|
||||
commandLine.addArg(QString(Constants::QBS_CONFIG_VARIANT_KEY) + ':' + buildVariant);
|
||||
const FilePath installRoot = stepData.installRoot;
|
||||
|
@@ -47,7 +47,7 @@ public:
|
||||
ProjectExplorer::BuildSystem *buildSystem() const final;
|
||||
|
||||
QbsBuildStep *qbsStep() const;
|
||||
QVariantMap qbsConfiguration() const;
|
||||
Utils::Store qbsConfiguration() const;
|
||||
|
||||
BuildType buildType() const override;
|
||||
|
||||
|
@@ -124,7 +124,7 @@ public:
|
||||
|
||||
private:
|
||||
void updateState();
|
||||
void updatePropertyEdit(const QVariantMap &data);
|
||||
void updatePropertyEdit(const Store &data);
|
||||
|
||||
void changeUseDefaultInstallDir(bool useDefault);
|
||||
void changeInstallDir();
|
||||
@@ -172,7 +172,7 @@ QbsBuildStep::QbsBuildStep(BuildStepList *bsl, Id id) :
|
||||
setDisplayName(QbsProjectManager::Tr::tr("Qbs Build"));
|
||||
setSummaryText(QbsProjectManager::Tr::tr("<b>Qbs:</b> %1").arg("build"));
|
||||
|
||||
setQbsConfiguration(QVariantMap());
|
||||
setQbsConfiguration(Store());
|
||||
|
||||
auto qbsBuildConfig = qobject_cast<QbsBuildConfiguration *>(buildConfiguration());
|
||||
QTC_CHECK(qbsBuildConfig);
|
||||
@@ -273,13 +273,13 @@ QWidget *QbsBuildStep::createConfigWidget()
|
||||
return new QbsBuildStepConfigWidget(this);
|
||||
}
|
||||
|
||||
QVariantMap QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) const
|
||||
Store QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) const
|
||||
{
|
||||
QVariantMap config = m_qbsConfiguration;
|
||||
Store config = m_qbsConfiguration;
|
||||
const auto qbsBuildConfig = qbsBuildConfiguration();
|
||||
config.insert(Constants::QBS_FORCE_PROBES_KEY, forceProbes());
|
||||
|
||||
const auto store = [&config](TriState ts, const QString &key) {
|
||||
const auto store = [&config](TriState ts, const Key &key) {
|
||||
if (ts == TriState::Enabled)
|
||||
config.insert(key, true);
|
||||
else if (ts == TriState::Disabled)
|
||||
@@ -308,9 +308,9 @@ QVariantMap QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) co
|
||||
return config;
|
||||
}
|
||||
|
||||
void QbsBuildStep::setQbsConfiguration(const QVariantMap &config)
|
||||
void QbsBuildStep::setQbsConfiguration(const Store &config)
|
||||
{
|
||||
QVariantMap tmp = config;
|
||||
Store tmp = config;
|
||||
tmp.insert(Constants::QBS_CONFIG_PROFILE_KEY, qbsBuildSystem()->profile());
|
||||
QString buildVariant = tmp.value(Constants::QBS_CONFIG_VARIANT_KEY).toString();
|
||||
if (buildVariant.isEmpty()) {
|
||||
@@ -355,13 +355,13 @@ void QbsBuildStep::fromMap(const Store &map)
|
||||
BuildStep::fromMap(map);
|
||||
if (hasError())
|
||||
return;
|
||||
setQbsConfiguration(mapEntryFromStoreEntry(map.value(QBS_CONFIG)).toMap());
|
||||
setQbsConfiguration(storeFromVariant(map.value(QBS_CONFIG)));
|
||||
}
|
||||
|
||||
void QbsBuildStep::toMap(Store &map) const
|
||||
{
|
||||
ProjectExplorer::BuildStep::toMap(map);
|
||||
map.insert(QBS_CONFIG, m_qbsConfiguration);
|
||||
map.insert(QBS_CONFIG, variantFromStore(m_qbsConfiguration));
|
||||
}
|
||||
|
||||
QString QbsBuildStep::buildVariant() const
|
||||
@@ -579,9 +579,9 @@ void QbsBuildStepConfigWidget::updateState()
|
||||
}
|
||||
|
||||
|
||||
void QbsBuildStepConfigWidget::updatePropertyEdit(const QVariantMap &data)
|
||||
void QbsBuildStepConfigWidget::updatePropertyEdit(const Store &data)
|
||||
{
|
||||
QVariantMap editable = data;
|
||||
Store editable = data;
|
||||
|
||||
// remove data that is edited with special UIs:
|
||||
editable.remove(Constants::QBS_CONFIG_PROFILE_KEY);
|
||||
@@ -596,8 +596,8 @@ void QbsBuildStepConfigWidget::updatePropertyEdit(const QVariantMap &data)
|
||||
editable.remove(Constants::QBS_ARCHITECTURES);
|
||||
|
||||
QStringList propertyList;
|
||||
for (QVariantMap::const_iterator i = editable.constBegin(); i != editable.constEnd(); ++i)
|
||||
propertyList.append(i.key() + ':' + i.value().toString());
|
||||
for (Store::const_iterator i = editable.constBegin(); i != editable.constEnd(); ++i)
|
||||
propertyList.append(QString::fromUtf8(i.key().toByteArray()) + ':' + i.value().toString());
|
||||
|
||||
propertyEdit->setText(ProcessArgs::joinArgs(propertyList));
|
||||
}
|
||||
@@ -605,7 +605,7 @@ void QbsBuildStepConfigWidget::updatePropertyEdit(const QVariantMap &data)
|
||||
void QbsBuildStepConfigWidget::changeUseDefaultInstallDir(bool useDefault)
|
||||
{
|
||||
const GuardLocker locker(m_ignoreChanges);
|
||||
QVariantMap config = m_qbsStep->qbsConfiguration(QbsBuildStep::PreserveVariables);
|
||||
Store config = m_qbsStep->qbsConfiguration(QbsBuildStep::PreserveVariables);
|
||||
installDirChooser->setEnabled(!useDefault);
|
||||
if (useDefault)
|
||||
config.remove(Constants::QBS_INSTALL_ROOT_KEY);
|
||||
@@ -619,29 +619,29 @@ void QbsBuildStepConfigWidget::changeInstallDir()
|
||||
if (!m_qbsStep->hasCustomInstallRoot())
|
||||
return;
|
||||
const GuardLocker locker(m_ignoreChanges);
|
||||
QVariantMap config = m_qbsStep->qbsConfiguration(QbsBuildStep::PreserveVariables);
|
||||
Store config = m_qbsStep->qbsConfiguration(QbsBuildStep::PreserveVariables);
|
||||
config.insert(Constants::QBS_INSTALL_ROOT_KEY, installDirChooser->rawFilePath().toString());
|
||||
m_qbsStep->setQbsConfiguration(config);
|
||||
}
|
||||
|
||||
void QbsBuildStepConfigWidget::applyCachedProperties()
|
||||
{
|
||||
QVariantMap data;
|
||||
const QVariantMap tmp = m_qbsStep->qbsConfiguration(QbsBuildStep::PreserveVariables);
|
||||
Store data;
|
||||
const Store tmp = m_qbsStep->qbsConfiguration(QbsBuildStep::PreserveVariables);
|
||||
|
||||
// Insert values set up with special UIs:
|
||||
data.insert(Constants::QBS_CONFIG_PROFILE_KEY,
|
||||
tmp.value(Constants::QBS_CONFIG_PROFILE_KEY));
|
||||
data.insert(Constants::QBS_CONFIG_VARIANT_KEY,
|
||||
tmp.value(Constants::QBS_CONFIG_VARIANT_KEY));
|
||||
QStringList additionalSpecialKeys({Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY,
|
||||
Constants::QBS_CONFIG_QUICK_DEBUG_KEY,
|
||||
Constants::QBS_CONFIG_QUICK_COMPILER_KEY,
|
||||
Constants::QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY,
|
||||
Constants::QBS_INSTALL_ROOT_KEY});
|
||||
KeyList additionalSpecialKeys({Constants::QBS_CONFIG_DECLARATIVE_DEBUG_KEY,
|
||||
Constants::QBS_CONFIG_QUICK_DEBUG_KEY,
|
||||
Constants::QBS_CONFIG_QUICK_COMPILER_KEY,
|
||||
Constants::QBS_CONFIG_SEPARATE_DEBUG_INFO_KEY,
|
||||
Constants::QBS_INSTALL_ROOT_KEY});
|
||||
if (m_qbsStep->selectedAbis.isManagedByTarget())
|
||||
additionalSpecialKeys << Constants::QBS_ARCHITECTURES;
|
||||
for (const QString &key : std::as_const(additionalSpecialKeys)) {
|
||||
for (const Key &key : std::as_const(additionalSpecialKeys)) {
|
||||
const auto it = tmp.constFind(key);
|
||||
if (it != tmp.cend())
|
||||
data.insert(key, it.value());
|
||||
@@ -649,7 +649,7 @@ void QbsBuildStepConfigWidget::applyCachedProperties()
|
||||
|
||||
for (int i = 0; i < m_propertyCache.count(); ++i) {
|
||||
const Property &property = m_propertyCache.at(i);
|
||||
data.insert(property.name, property.value);
|
||||
data.insert(property.name.toUtf8(), property.value);
|
||||
}
|
||||
|
||||
const GuardLocker locker(m_ignoreChanges);
|
||||
|
@@ -46,8 +46,8 @@ public:
|
||||
|
||||
QbsBuildStep(ProjectExplorer::BuildStepList *bsl, Utils::Id id);
|
||||
|
||||
QVariantMap qbsConfiguration(VariableHandling variableHandling) const;
|
||||
void setQbsConfiguration(const QVariantMap &config);
|
||||
Utils::Store qbsConfiguration(VariableHandling variableHandling) const;
|
||||
void setQbsConfiguration(const Utils::Store &config);
|
||||
|
||||
Utils::FilePath installRoot(VariableHandling variableHandling = ExpandVariables) const;
|
||||
QString buildVariant() const;
|
||||
@@ -82,7 +82,7 @@ private:
|
||||
void updateState();
|
||||
QStringList configuredArchitectures() const;
|
||||
|
||||
QVariantMap m_qbsConfiguration;
|
||||
Utils::Store m_qbsConfiguration;
|
||||
|
||||
// Temporary data:
|
||||
QStringList m_changedFiles;
|
||||
|
@@ -577,7 +577,7 @@ void QbsBuildSystem::startParsing()
|
||||
{
|
||||
QTC_ASSERT(!m_qbsProjectParser, return);
|
||||
|
||||
QVariantMap config = m_buildConfiguration->qbsConfiguration();
|
||||
Store config = m_buildConfiguration->qbsConfiguration();
|
||||
if (!config.contains(Constants::QBS_INSTALL_ROOT_KEY)) {
|
||||
config.insert(Constants::QBS_INSTALL_ROOT_KEY, m_buildConfiguration->macroExpander()
|
||||
->expand(QbsSettings::defaultInstallDirTemplate()));
|
||||
|
@@ -205,9 +205,9 @@ const QList<BuildInfo> QbsProjectImporter::buildInfoList(void *directoryData) co
|
||||
? BuildConfiguration::Profile : bgData->buildVariant == QbsConstants::QBS_VARIANT_RELEASE
|
||||
? BuildConfiguration::Release : BuildConfiguration::Debug;
|
||||
info.buildDirectory = bgData->bgFilePath.parentDir().parentDir();
|
||||
QVariantMap config = bgData->overriddenProperties;
|
||||
Store config = storeFromMap(bgData->overriddenProperties);
|
||||
config.insert("configName", info.displayName);
|
||||
info.extraInfo = config;
|
||||
info.extraInfo = variantFromStore(config);
|
||||
qCDebug(qbsPmLog) << "creating build info for " << info.displayName << ' ' << bgData->buildVariant;
|
||||
return {info};
|
||||
}
|
||||
|
@@ -41,7 +41,7 @@ QbsProjectParser::~QbsProjectParser()
|
||||
m_fi = nullptr; // we do not own m_fi, do not delete
|
||||
}
|
||||
|
||||
void QbsProjectParser::parse(const QVariantMap &config, const Environment &env,
|
||||
void QbsProjectParser::parse(const Store &config, const Environment &env,
|
||||
const FilePath &dir, const QString &configName)
|
||||
{
|
||||
QTC_ASSERT(m_session, return);
|
||||
@@ -50,7 +50,7 @@ void QbsProjectParser::parse(const QVariantMap &config, const Environment &env,
|
||||
m_environment = env;
|
||||
QJsonObject request;
|
||||
request.insert("type", "resolve-project");
|
||||
QVariantMap userConfig = config;
|
||||
Store userConfig = config;
|
||||
request.insert("top-level-profile",
|
||||
userConfig.take(Constants::QBS_CONFIG_PROFILE_KEY).toString());
|
||||
request.insert("configuration-name", configName);
|
||||
@@ -58,7 +58,7 @@ void QbsProjectParser::parse(const QVariantMap &config, const Environment &env,
|
||||
userConfig.take(Constants::QBS_FORCE_PROBES_KEY).toBool());
|
||||
if (QbsSettings::useCreatorSettingsDirForQbs())
|
||||
request.insert("settings-directory", QbsSettings::qbsSettingsBaseDir());
|
||||
request.insert("overridden-properties", QJsonObject::fromVariantMap(userConfig));
|
||||
request.insert("overridden-properties", QJsonObject::fromVariantMap(mapFromStore(userConfig)));
|
||||
|
||||
// People don't like it when files are created as a side effect of opening a project,
|
||||
// so do not store the build graph if the build directory does not exist yet.
|
||||
|
@@ -6,6 +6,7 @@
|
||||
#include "qbssession.h"
|
||||
|
||||
#include <utils/environment.h>
|
||||
#include <utils/store.h>
|
||||
|
||||
#include <QFutureInterface>
|
||||
#include <QJsonObject>
|
||||
@@ -23,7 +24,7 @@ public:
|
||||
QbsProjectParser(QbsBuildSystem *buildSystem, QFutureInterface<bool> *fi);
|
||||
~QbsProjectParser() override;
|
||||
|
||||
void parse(const QVariantMap &config,
|
||||
void parse(const Utils::Store &config,
|
||||
const Utils::Environment &env,
|
||||
const Utils::FilePath &dir,
|
||||
const QString &configName);
|
||||
|
Reference in New Issue
Block a user