forked from qt-creator/qt-creator
ProjectExplorer: De-noise buildconfiguration.cpp
Change-Id: I82084b950f8256a5c17dcf20dc3373921c17ee02 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -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());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user