forked from qt-creator/qt-creator
AndroidQmake: De-noise AndroidQmakeBuildConfiguration class
Change-Id: I8965fc054fd479105276422eae43a4df636f7ca8 Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This commit is contained in:
@@ -39,9 +39,14 @@
|
|||||||
#include <qmakeprojectmanager/qmakebuildinfo.h>
|
#include <qmakeprojectmanager/qmakebuildinfo.h>
|
||||||
#include <qmakeprojectmanager/qmakeproject.h>
|
#include <qmakeprojectmanager/qmakeproject.h>
|
||||||
|
|
||||||
using namespace QmakeAndroidSupport::Internal;
|
using namespace Android;
|
||||||
|
using namespace ProjectExplorer;
|
||||||
|
using namespace QmakeProjectManager;
|
||||||
|
|
||||||
int AndroidQmakeBuildConfigurationFactory::priority(const ProjectExplorer::Kit *k, const QString &projectPath) const
|
namespace QmakeAndroidSupport {
|
||||||
|
namespace Internal {
|
||||||
|
|
||||||
|
int AndroidQmakeBuildConfigurationFactory::priority(const Kit *k, const QString &projectPath) const
|
||||||
{
|
{
|
||||||
if (QmakeBuildConfigurationFactory::priority(k, projectPath) >= 0
|
if (QmakeBuildConfigurationFactory::priority(k, projectPath) >= 0
|
||||||
&& Android::AndroidManager::supportsAndroid(k))
|
&& Android::AndroidManager::supportsAndroid(k))
|
||||||
@@ -49,7 +54,7 @@ int AndroidQmakeBuildConfigurationFactory::priority(const ProjectExplorer::Kit *
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int AndroidQmakeBuildConfigurationFactory::priority(const ProjectExplorer::Target *parent) const
|
int AndroidQmakeBuildConfigurationFactory::priority(const Target *parent) const
|
||||||
{
|
{
|
||||||
if (QmakeBuildConfigurationFactory::priority(parent) >= 0
|
if (QmakeBuildConfigurationFactory::priority(parent) >= 0
|
||||||
&& Android::AndroidManager::supportsAndroid(parent))
|
&& Android::AndroidManager::supportsAndroid(parent))
|
||||||
@@ -57,32 +62,32 @@ int AndroidQmakeBuildConfigurationFactory::priority(const ProjectExplorer::Targe
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::BuildConfiguration *AndroidQmakeBuildConfigurationFactory::create(ProjectExplorer::Target *parent,
|
BuildConfiguration *AndroidQmakeBuildConfigurationFactory::create(Target *parent,
|
||||||
const ProjectExplorer::BuildInfo *info) const
|
const BuildInfo *info) const
|
||||||
{
|
{
|
||||||
auto qmakeInfo = static_cast<const QmakeProjectManager::QmakeBuildInfo *>(info);
|
auto qmakeInfo = static_cast<const QmakeBuildInfo *>(info);
|
||||||
AndroidQmakeBuildConfiguration *bc = new AndroidQmakeBuildConfiguration(parent);
|
auto bc = new AndroidQmakeBuildConfiguration(parent);
|
||||||
configureBuildConfiguration(parent, bc, qmakeInfo);
|
configureBuildConfiguration(parent, bc, qmakeInfo);
|
||||||
|
|
||||||
ProjectExplorer::BuildStepList *buildSteps = bc->stepList(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD));
|
BuildStepList *buildSteps = bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD);
|
||||||
buildSteps->insertStep(2, new AndroidPackageInstallationStep(buildSteps));
|
buildSteps->insertStep(2, new AndroidPackageInstallationStep(buildSteps));
|
||||||
buildSteps->insertStep(3, new QmakeAndroidBuildApkStep(buildSteps));
|
buildSteps->insertStep(3, new QmakeAndroidBuildApkStep(buildSteps));
|
||||||
return bc;
|
return bc;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::BuildConfiguration *AndroidQmakeBuildConfigurationFactory::clone(ProjectExplorer::Target *parent, ProjectExplorer::BuildConfiguration *source)
|
BuildConfiguration *AndroidQmakeBuildConfigurationFactory::clone(Target *parent, BuildConfiguration *source)
|
||||||
{
|
{
|
||||||
if (!canClone(parent, source))
|
if (!canClone(parent, source))
|
||||||
return 0;
|
return 0;
|
||||||
AndroidQmakeBuildConfiguration *oldbc(static_cast<AndroidQmakeBuildConfiguration *>(source));
|
auto *oldbc = static_cast<AndroidQmakeBuildConfiguration *>(source);
|
||||||
return new AndroidQmakeBuildConfiguration(parent, oldbc);
|
return new AndroidQmakeBuildConfiguration(parent, oldbc);
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::BuildConfiguration *AndroidQmakeBuildConfigurationFactory::restore(ProjectExplorer::Target *parent, const QVariantMap &map)
|
BuildConfiguration *AndroidQmakeBuildConfigurationFactory::restore(Target *parent, const QVariantMap &map)
|
||||||
{
|
{
|
||||||
if (!canRestore(parent, map))
|
if (!canRestore(parent, map))
|
||||||
return 0;
|
return 0;
|
||||||
AndroidQmakeBuildConfiguration *bc = new AndroidQmakeBuildConfiguration(parent);
|
auto bc = new AndroidQmakeBuildConfiguration(parent);
|
||||||
if (bc->fromMap(map))
|
if (bc->fromMap(map))
|
||||||
return bc;
|
return bc;
|
||||||
delete bc;
|
delete bc;
|
||||||
@@ -90,43 +95,37 @@ ProjectExplorer::BuildConfiguration *AndroidQmakeBuildConfigurationFactory::rest
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
AndroidQmakeBuildConfiguration::AndroidQmakeBuildConfiguration(ProjectExplorer::Target *target)
|
AndroidQmakeBuildConfiguration::AndroidQmakeBuildConfiguration(Target *target)
|
||||||
: QmakeProjectManager::QmakeBuildConfiguration(target)
|
: QmakeBuildConfiguration(target)
|
||||||
{
|
{
|
||||||
using QmakeProjectManager::QmakeProject;
|
auto updateGrade = [this] { AndroidManager::updateGradleProperties(BuildConfiguration::target()); };
|
||||||
auto updateGrade = [this] {
|
|
||||||
Android::AndroidManager::updateGradleProperties(BuildConfiguration::target());
|
|
||||||
};
|
|
||||||
|
|
||||||
QmakeProject *project = qobject_cast<QmakeProject *>(target->project());
|
auto project = qobject_cast<QmakeProject *>(target->project());
|
||||||
if (project)
|
if (project)
|
||||||
connect(project, &QmakeProject::proFilesEvaluated, this, updateGrade);
|
connect(project, &QmakeProject::proFilesEvaluated, this, updateGrade);
|
||||||
else
|
else
|
||||||
connect(this, &AndroidQmakeBuildConfiguration::enabledChanged, this, updateGrade);
|
connect(this, &AndroidQmakeBuildConfiguration::enabledChanged, this, updateGrade);
|
||||||
}
|
}
|
||||||
|
|
||||||
AndroidQmakeBuildConfiguration::AndroidQmakeBuildConfiguration(ProjectExplorer::Target *target, AndroidQmakeBuildConfiguration *source)
|
AndroidQmakeBuildConfiguration::AndroidQmakeBuildConfiguration(Target *target, AndroidQmakeBuildConfiguration *source)
|
||||||
: QmakeProjectManager::QmakeBuildConfiguration(target, source)
|
: QmakeBuildConfiguration(target, source)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AndroidQmakeBuildConfiguration::AndroidQmakeBuildConfiguration(ProjectExplorer::Target *target, Core::Id id)
|
AndroidQmakeBuildConfiguration::AndroidQmakeBuildConfiguration(Target *target, Core::Id id)
|
||||||
: QmakeProjectManager::QmakeBuildConfiguration(target, id)
|
: QmakeBuildConfiguration(target, id)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidQmakeBuildConfiguration::addToEnvironment(Utils::Environment &env) const
|
void AndroidQmakeBuildConfiguration::addToEnvironment(Utils::Environment &env) const
|
||||||
{
|
{
|
||||||
m_androidNdkPlatform = Android::AndroidConfigurations::currentConfig().bestNdkPlatformMatch(Android::AndroidManager::minimumSDK(target()));
|
m_androidNdkPlatform = AndroidConfigurations::currentConfig().bestNdkPlatformMatch(AndroidManager::minimumSDK(target()));
|
||||||
env.set(QLatin1String("ANDROID_NDK_PLATFORM"), m_androidNdkPlatform);
|
env.set(QLatin1String("ANDROID_NDK_PLATFORM"), m_androidNdkPlatform);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidQmakeBuildConfiguration::manifestSaved()
|
void AndroidQmakeBuildConfiguration::manifestSaved()
|
||||||
{
|
{
|
||||||
using QmakeProjectManager::QMakeStep;
|
QString androidNdkPlatform = AndroidConfigurations::currentConfig().bestNdkPlatformMatch(AndroidManager::minimumSDK(target()));
|
||||||
QString androidNdkPlatform = Android::AndroidConfigurations::currentConfig().bestNdkPlatformMatch(Android::AndroidManager::minimumSDK(target()));
|
|
||||||
if (m_androidNdkPlatform == androidNdkPlatform)
|
if (m_androidNdkPlatform == androidNdkPlatform)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -138,8 +137,11 @@ void AndroidQmakeBuildConfiguration::manifestSaved()
|
|||||||
|
|
||||||
qs->setForced(true);
|
qs->setForced(true);
|
||||||
|
|
||||||
ProjectExplorer::BuildManager::buildList(stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN),
|
BuildManager::buildList(stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN),
|
||||||
ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(ProjectExplorer::Constants::BUILDSTEPS_CLEAN));
|
ProjectExplorerPlugin::displayNameForStepId(ProjectExplorer::Constants::BUILDSTEPS_CLEAN));
|
||||||
ProjectExplorer::BuildManager::appendStep(qs, ProjectExplorer::ProjectExplorerPlugin::displayNameForStepId(ProjectExplorer::Constants::BUILDSTEPS_CLEAN));
|
BuildManager::appendStep(qs, ProjectExplorerPlugin::displayNameForStepId(ProjectExplorer::Constants::BUILDSTEPS_CLEAN));
|
||||||
setSubNodeBuild(0);
|
setSubNodeBuild(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace Internal
|
||||||
|
} // namespace QmakeAndroidSupport
|
||||||
|
Reference in New Issue
Block a user