ProjectExplorer: De-noise buildconfiguration.cpp

Change-Id: I82084b950f8256a5c17dcf20dc3373921c17ee02
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2020-01-07 11:37:32 +01:00
parent 6d897c00f4
commit 14d64b4a5f

View File

@@ -59,10 +59,10 @@
using namespace Utils; using namespace Utils;
static const char BUILD_STEP_LIST_COUNT[] = "ProjectExplorer.BuildConfiguration.BuildStepListCount"; const char BUILD_STEP_LIST_COUNT[] = "ProjectExplorer.BuildConfiguration.BuildStepListCount";
static const char BUILD_STEP_LIST_PREFIX[] = "ProjectExplorer.BuildConfiguration.BuildStepList."; const char BUILD_STEP_LIST_PREFIX[] = "ProjectExplorer.BuildConfiguration.BuildStepList.";
static const char CLEAR_SYSTEM_ENVIRONMENT_KEY[] = "ProjectExplorer.BuildConfiguration.ClearSystemEnvironment"; const char CLEAR_SYSTEM_ENVIRONMENT_KEY[] = "ProjectExplorer.BuildConfiguration.ClearSystemEnvironment";
static const char USER_ENVIRONMENT_CHANGES_KEY[] = "ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"; const char USER_ENVIRONMENT_CHANGES_KEY[] = "ProjectExplorer.BuildConfiguration.UserEnvironmentChanges";
namespace ProjectExplorer { namespace ProjectExplorer {
namespace Internal { namespace Internal {
@@ -76,12 +76,12 @@ public:
{} {}
bool m_clearSystemEnvironment = false; bool m_clearSystemEnvironment = false;
Utils::EnvironmentItems m_userEnvironmentChanges; EnvironmentItems m_userEnvironmentChanges;
BuildStepList m_buildSteps; BuildStepList m_buildSteps;
BuildStepList m_cleanSteps; BuildStepList m_cleanSteps;
BuildDirectoryAspect *m_buildDirectoryAspect = nullptr; BuildDirectoryAspect *m_buildDirectoryAspect = nullptr;
Utils::FilePath m_lastEmittedBuildDirectory; FilePath m_lastEmittedBuildDirectory;
mutable Utils::Environment m_cachedEnvironment; mutable Environment m_cachedEnvironment;
QString m_configWidgetDisplayName; QString m_configWidgetDisplayName;
bool m_configWidgetHasFrame = false; bool m_configWidgetHasFrame = false;
QList<Core::Id> m_initialBuildSteps; QList<Core::Id> m_initialBuildSteps;
@@ -99,7 +99,7 @@ BuildConfiguration::BuildConfiguration(Target *target, Core::Id id)
{ {
QTC_CHECK(target && target == this->target()); QTC_CHECK(target && target == this->target());
Utils::MacroExpander *expander = macroExpander(); MacroExpander *expander = macroExpander();
expander->setDisplayName(tr("Build Settings")); expander->setDisplayName(tr("Build Settings"));
expander->setAccumulating(true); expander->setAccumulating(true);
expander->registerSubProvider([target] { return target->macroExpander(); }); expander->registerSubProvider([target] { return target->macroExpander(); });
@@ -151,19 +151,19 @@ BuildConfiguration::~BuildConfiguration()
delete d; delete d;
} }
Utils::FilePath BuildConfiguration::buildDirectory() const FilePath BuildConfiguration::buildDirectory() const
{ {
QString path = environment().expandVariables(d->m_buildDirectoryAspect->value().trimmed()); QString path = environment().expandVariables(d->m_buildDirectoryAspect->value().trimmed());
path = QDir::cleanPath(macroExpander()->expand(path)); path = QDir::cleanPath(macroExpander()->expand(path));
return Utils::FilePath::fromString(QDir::cleanPath(QDir(target()->project()->projectDirectory().toString()).absoluteFilePath(path))); return FilePath::fromString(QDir::cleanPath(QDir(target()->project()->projectDirectory().toString()).absoluteFilePath(path)));
} }
Utils::FilePath BuildConfiguration::rawBuildDirectory() const FilePath BuildConfiguration::rawBuildDirectory() const
{ {
return d->m_buildDirectoryAspect->filePath(); return d->m_buildDirectoryAspect->filePath();
} }
void BuildConfiguration::setBuildDirectory(const Utils::FilePath &dir) void BuildConfiguration::setBuildDirectory(const FilePath &dir)
{ {
if (dir == d->m_buildDirectoryAspect->filePath()) if (dir == d->m_buildDirectoryAspect->filePath())
return; return;
@@ -216,9 +216,9 @@ NamedWidget *BuildConfiguration::createConfigWidget()
QWidget *widget = nullptr; QWidget *widget = nullptr;
if (d->m_configWidgetHasFrame) { if (d->m_configWidgetHasFrame) {
auto container = new Utils::DetailsWidget(named); auto container = new DetailsWidget(named);
widget = new QWidget(container); widget = new QWidget(container);
container->setState(Utils::DetailsWidget::NoSummary); container->setState(DetailsWidget::NoSummary);
container->setWidget(widget); container->setWidget(widget);
auto vbox = new QVBoxLayout(named); auto vbox = new QVBoxLayout(named);
@@ -273,7 +273,7 @@ QVariantMap BuildConfiguration::toMap() const
QVariantMap map = ProjectConfiguration::toMap(); QVariantMap map = ProjectConfiguration::toMap();
map.insert(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), d->m_clearSystemEnvironment); map.insert(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), d->m_clearSystemEnvironment);
map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), Utils::EnvironmentItem::toStringList(d->m_userEnvironmentChanges)); map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), EnvironmentItem::toStringList(d->m_userEnvironmentChanges));
map.insert(QLatin1String(BUILD_STEP_LIST_COUNT), 2); map.insert(QLatin1String(BUILD_STEP_LIST_COUNT), 2);
map.insert(QLatin1String(BUILD_STEP_LIST_PREFIX) + QString::number(0), d->m_buildSteps.toMap()); map.insert(QLatin1String(BUILD_STEP_LIST_PREFIX) + QString::number(0), d->m_buildSteps.toMap());
@@ -285,7 +285,7 @@ QVariantMap BuildConfiguration::toMap() const
bool BuildConfiguration::fromMap(const QVariantMap &map) bool BuildConfiguration::fromMap(const QVariantMap &map)
{ {
d->m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)).toBool(); d->m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)).toBool();
d->m_userEnvironmentChanges = Utils::EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList()); d->m_userEnvironmentChanges = EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
updateCacheAndEmitEnvironmentChanged(); updateCacheAndEmitEnvironmentChanged();
@@ -316,7 +316,7 @@ bool BuildConfiguration::fromMap(const QVariantMap &map)
void BuildConfiguration::updateCacheAndEmitEnvironmentChanged() void BuildConfiguration::updateCacheAndEmitEnvironmentChanged()
{ {
Utils::Environment env = baseEnvironment(); Environment env = baseEnvironment();
env.modify(userEnvironmentChanges()); env.modify(userEnvironmentChanges());
if (env == d->m_cachedEnvironment) if (env == d->m_cachedEnvironment)
return; return;
@@ -357,11 +357,11 @@ void BuildConfiguration::setBuildDirectorySettingsKey(const QString &key)
d->m_buildDirectoryAspect->setSettingsKey(key); d->m_buildDirectoryAspect->setSettingsKey(key);
} }
Utils::Environment BuildConfiguration::baseEnvironment() const Environment BuildConfiguration::baseEnvironment() const
{ {
Utils::Environment result; Environment result;
if (useSystemEnvironment()) if (useSystemEnvironment())
result = Utils::Environment::systemEnvironment(); result = Environment::systemEnvironment();
addToEnvironment(result); addToEnvironment(result);
target()->kit()->addToEnvironment(result); target()->kit()->addToEnvironment(result);
result.modify(project()->additionalEnvironment()); result.modify(project()->additionalEnvironment());
@@ -376,7 +376,7 @@ QString BuildConfiguration::baseEnvironmentText() const
return tr("Clean Environment"); return tr("Clean Environment");
} }
Utils::Environment BuildConfiguration::environment() const Environment BuildConfiguration::environment() const
{ {
return d->m_cachedEnvironment; return d->m_cachedEnvironment;
} }
@@ -389,7 +389,7 @@ void BuildConfiguration::setUseSystemEnvironment(bool b)
updateCacheAndEmitEnvironmentChanged(); updateCacheAndEmitEnvironmentChanged();
} }
void BuildConfiguration::addToEnvironment(Utils::Environment &env) const void BuildConfiguration::addToEnvironment(Environment &env) const
{ {
Q_UNUSED(env) Q_UNUSED(env)
} }
@@ -399,12 +399,12 @@ bool BuildConfiguration::useSystemEnvironment() const
return !d->m_clearSystemEnvironment; return !d->m_clearSystemEnvironment;
} }
Utils::EnvironmentItems BuildConfiguration::userEnvironmentChanges() const EnvironmentItems BuildConfiguration::userEnvironmentChanges() const
{ {
return d->m_userEnvironmentChanges; return d->m_userEnvironmentChanges;
} }
void BuildConfiguration::setUserEnvironmentChanges(const Utils::EnvironmentItems &diff) void BuildConfiguration::setUserEnvironmentChanges(const EnvironmentItems &diff)
{ {
if (d->m_userEnvironmentChanges == diff) if (d->m_userEnvironmentChanges == diff)
return; return;
@@ -468,7 +468,7 @@ bool BuildConfiguration::isActive() const
* to provide hints about which compiler to use. * to provide hints about which compiler to use.
*/ */
void BuildConfiguration::prependCompilerPathToEnvironment(Kit *k, Utils::Environment &env) void BuildConfiguration::prependCompilerPathToEnvironment(Kit *k, Environment &env)
{ {
const ToolChain *tc const ToolChain *tc
= ToolChainKitAspect::toolChain(k, ProjectExplorer::Constants::CXX_LANGUAGE_ID); = ToolChainKitAspect::toolChain(k, ProjectExplorer::Constants::CXX_LANGUAGE_ID);
@@ -476,7 +476,7 @@ void BuildConfiguration::prependCompilerPathToEnvironment(Kit *k, Utils::Environ
if (!tc) if (!tc)
return; return;
const Utils::FilePath compilerDir = tc->compilerCommand().parentDir(); const FilePath compilerDir = tc->compilerCommand().parentDir();
if (!compilerDir.isEmpty()) if (!compilerDir.isEmpty())
env.prependOrSetPath(compilerDir.toString()); env.prependOrSetPath(compilerDir.toString());
} }