void BuildConfiguration::setUserEnvironmentChanges(const QList<Utils::EnvironmentItem> &diff) { if (m_userEnvironmentChanges == diff) return; m_userEnvironmentChanges = diff; updateCacheAndEmitEnvironmentChanged(); }
BuildConfiguration::BuildConfiguration(Target *target, Core::Id id) : ProjectConfiguration(target, id) { Utils::MacroExpander *expander = macroExpander(); expander->setDisplayName(tr("Build Settings")); expander->setAccumulating(true); expander->registerSubProvider([target] { return target->macroExpander(); }); expander->registerVariable("buildDir", tr("Build directory"), [this] { return buildDirectory().toUserOutput(); }); expander->registerVariable(Constants::VAR_CURRENTBUILD_NAME, tr("Name of current build"), [this] { return displayName(); }, false); expander->registerPrefix(Constants::VAR_CURRENTBUILD_ENV, tr("Variables in the current build environment"), [this](const QString &var) { return environment().value(var); }); updateCacheAndEmitEnvironmentChanged(); connect(target, &Target::kitChanged, this, &BuildConfiguration::updateCacheAndEmitEnvironmentChanged); connect(this, &BuildConfiguration::environmentChanged, this, &BuildConfiguration::emitBuildDirectoryChanged); // Many macroexpanders are based on the current project, so they may change the environment: connect(ProjectTree::instance(), &ProjectTree::currentProjectChanged, this, &BuildConfiguration::updateCacheAndEmitEnvironmentChanged); }
void BuildConfiguration::setUseSystemEnvironment(bool b) { if (useSystemEnvironment() == b) return; m_clearSystemEnvironment = !b; updateCacheAndEmitEnvironmentChanged(); }
bool BuildConfiguration::fromMap(const QVariantMap &map) { m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)).toBool(); m_userEnvironmentChanges = Utils::EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList()); m_buildDirectory = Utils::FileName::fromString(map.value(QLatin1String(BUILDDIRECTORY_KEY)).toString()); updateCacheAndEmitEnvironmentChanged(); qDeleteAll(m_stepLists); m_stepLists.clear(); int maxI = map.value(QLatin1String(BUILD_STEP_LIST_COUNT), 0).toInt(); for (int i = 0; i < maxI; ++i) { QVariantMap data = map.value(QLatin1String(BUILD_STEP_LIST_PREFIX) + QString::number(i)).toMap(); if (data.isEmpty()) { qWarning() << "No data for build step list" << i << "found!"; continue; } auto list = new BuildStepList(this, idFromMap(data)); if (!list->fromMap(data)) { qWarning() << "Failed to restore build step list" << i; delete list; return false; } m_stepLists.append(list); } // We currently assume there to be at least a clean and build list! QTC_CHECK(knownStepLists().contains(Core::Id(Constants::BUILDSTEPS_BUILD))); QTC_CHECK(knownStepLists().contains(Core::Id(Constants::BUILDSTEPS_CLEAN))); return ProjectConfiguration::fromMap(map); }
AndroidQmakeBuildConfiguration::AndroidQmakeBuildConfiguration(Target *target, Core::Id id) : QmakeBuildConfiguration(target, id) { updateCacheAndEmitEnvironmentChanged(); connect(target->project(), &Project::parsingFinished, this, [this] { AndroidManager::updateGradleProperties(BuildConfiguration::target()); }); }
void AndroidQmakeBuildConfiguration::initialize(const BuildInfo *info) { QmakeBuildConfiguration::initialize(info); BuildStepList *buildSteps = stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD); buildSteps->appendStep(new AndroidPackageInstallationStep(buildSteps)); buildSteps->appendStep(new QmakeAndroidBuildApkStep(buildSteps)); updateCacheAndEmitEnvironmentChanged(); }
void GenericBuildConfiguration::initialize(const BuildInfo *info) { BuildConfiguration::initialize(info); BuildStepList *buildSteps = stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD); buildSteps->appendStep(new GenericMakeStep(buildSteps, "all")); BuildStepList *cleanSteps = stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN); cleanSteps->appendStep(new GenericMakeStep(cleanSteps, "clean")); updateCacheAndEmitEnvironmentChanged(); }
void AndroidQmakeBuildConfiguration::manifestSaved() { QString androidNdkPlatform = AndroidConfigurations::currentConfig().bestNdkPlatformMatch(AndroidManager::minimumSDK(target())); if (m_androidNdkPlatform == androidNdkPlatform) return; updateCacheAndEmitEnvironmentChanged(); QMakeStep *qs = qmakeStep(); if (!qs) return; qs->setForced(true); BuildManager::buildList(stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN)); BuildManager::appendStep(qs, ProjectExplorerPlugin::displayNameForStepId(ProjectExplorer::Constants::BUILDSTEPS_CLEAN)); setSubNodeBuild(0); }
GenericBuildConfiguration::GenericBuildConfiguration(Target *parent, Core::Id id) : BuildConfiguration(parent, id) { updateCacheAndEmitEnvironmentChanged(); }