forked from qt-creator/qt-creator
Utils: Continue Environment/EnvironmentChange consolidation
Make Environment a stack of changes that gets "expanded" to a full environment before things are actively accessed. Later this expansion should be done lazily if possible. Task-number: QTCREATORBUG-28357 Change-Id: If1c7bfdb9f58b81e71c51ed87ee75d6964a47019 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
@@ -482,16 +482,6 @@ static QHash<QString, QString> merge(const QHash<QString, QString> &first,
|
||||
return result;
|
||||
}
|
||||
|
||||
static Utils::Environment merge(const Utils::Environment &first, const Utils::Environment &second)
|
||||
{
|
||||
Utils::Environment result = first;
|
||||
second.forEachEntry([&](const QString &key, const QString &value, bool) {
|
||||
result.set(key, value);
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static CMakeConfig merge(const CMakeConfig &first, const CMakeConfig &second)
|
||||
{
|
||||
return Utils::setUnionMerge<CMakeConfig>(
|
||||
@@ -549,7 +539,7 @@ void PresetsDetails::ConfigurePreset::inheritFrom(const ConfigurePreset &other)
|
||||
if (!environment && other.environment)
|
||||
environment = other.environment;
|
||||
else if (environment && other.environment)
|
||||
environment = merge(other.environment.value(), environment.value());
|
||||
environment = environment.value().appliedToEnvironment(other.environment.value());
|
||||
|
||||
if (!warnings && other.warnings)
|
||||
warnings = other.warnings;
|
||||
@@ -575,7 +565,7 @@ void PresetsDetails::BuildPreset::inheritFrom(const BuildPreset &other)
|
||||
if (!environment && other.environment)
|
||||
environment = other.environment;
|
||||
else if (environment && other.environment)
|
||||
environment = merge(other.environment.value(), environment.value());
|
||||
environment = environment.value().appliedToEnvironment(other.environment.value());
|
||||
|
||||
if (!configurePreset && other.configurePreset)
|
||||
configurePreset = other.configurePreset;
|
||||
|
||||
Reference in New Issue
Block a user