QmakeAndroidSupport: Remove plugin

The remaining dependency is hacked into QmakeProjectManager
by using a compile time-only dependency on androidconstants.h.

Change-Id: Id78125137bc75c145a072bc753276abbf0029647
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
This commit is contained in:
hjk
2018-12-05 13:00:36 +01:00
parent a2d5ebccd2
commit d52af48883
18 changed files with 55 additions and 329 deletions

View File

@@ -76,8 +76,6 @@ Q_LOGGING_CATEGORY(buildapkstepLog, "qtc.android.build.androidbuildapkstep", QtW
namespace Android {
const Core::Id ANDROID_BUILD_APK_ID("QmakeProjectManager.AndroidBuildApkStep");
const QVersionNumber gradleScriptRevokedSdkVersion(25, 3, 0);
const char KeystoreLocationKey[] = "KeystoreLocation";
const char BuildTargetSdkKey[] = "BuildTargetSdk";
@@ -126,7 +124,7 @@ private:
};
AndroidBuildApkStep::AndroidBuildApkStep(BuildStepList *parent)
: AbstractProcessStep(parent, ANDROID_BUILD_APK_ID),
: AbstractProcessStep(parent, Constants::ANDROID_BUILD_APK_ID),
m_buildTargetSdk(AndroidConfig::apiLevelNameFor(AndroidConfigurations::
sdkManager()->latestAndroidSdkPlatform()))
{
@@ -559,7 +557,7 @@ namespace Internal {
AndroidBuildApkStepFactory::AndroidBuildApkStepFactory()
{
registerStep<AndroidBuildApkStep>(ANDROID_BUILD_APK_ID);
registerStep<AndroidBuildApkStep>(Constants::ANDROID_BUILD_APK_ID);
setSupportedProjectType(QmakeProjectManager::Constants::QMAKEPROJECT_ID);
setSupportedDeviceType(Constants::ANDROID_DEVICE_TYPE);
setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD);

View File

@@ -73,6 +73,7 @@ const char ANDROID_EXTRA_LIBS[] = "AndroidExtraLibs";
const char ANDROID_PACKAGENAME[] = "Android.PackageName";
const char ANDROID_PACKAGE_INSTALLATION_STEP_ID[] = "Qt4ProjectManager.AndroidPackageInstallationStep";
const char ANDROID_BUILD_APK_ID[] = "QmakeProjectManager.AndroidBuildApkStep";
const char AndroidPackageSourceDir[] = "AndroidPackageSourceDir"; // QString
const char AndroidDeploySettingsFile[] = "AndroidDeploySettingsFile"; // QString

View File

@@ -186,7 +186,8 @@ void AndroidDebugSupport::start()
gdbServer.setPort(m_runner->gdbServerPort().number());
setRemoteChannel(gdbServer);
int sdkVersion = qMax(AndroidManager::minimumSDK(target), AndroidManager::minimumNDK(target));
int sdkVersion = qMax(AndroidManager::minimumSDK(target->kit()),
AndroidManager::minimumNDK(target->kit()));
Utils::FileName sysRoot = AndroidConfigurations::currentConfig().ndkLocation()
.appendPath("platforms")
.appendPath(QString("android-%1").arg(sdkVersion))

View File

@@ -247,10 +247,9 @@ int AndroidManager::minimumSDK(const ProjectExplorer::Kit *kit)
return minSDKVersion;
}
int AndroidManager::minimumNDK(ProjectExplorer::Target *target)
int AndroidManager::minimumNDK(const Kit *kit)
{
auto qt = static_cast<Android::Internal::AndroidQtVersion *>(
QtSupport::QtKitInformation::qtVersion(target->kit()));
auto qt = static_cast<AndroidQtVersion *>(QtSupport::QtKitInformation::qtVersion(kit));
return qt->mininmumNDK();
}

View File

@@ -89,7 +89,7 @@ public:
static int minimumSDK(ProjectExplorer::Target *target);
static int minimumSDK(const ProjectExplorer::Kit *kit);
static int minimumNDK(ProjectExplorer::Target *target);
static int minimumNDK(const ProjectExplorer::Kit *kit);
static QString targetArch(ProjectExplorer::Target *target);

View File

@@ -50,8 +50,11 @@
#endif
#include <projectexplorer/devicesupport/devicemanager.h>
#include <projectexplorer/buildconfiguration.h>
#include <projectexplorer/kitinformation.h>
#include <projectexplorer/kitmanager.h>
#include <projectexplorer/project.h>
#include <projectexplorer/session.h>
#include <projectexplorer/target.h>
#include <qtsupport/qtversionmanager.h>
@@ -77,9 +80,37 @@ public:
}
};
class AndroidPluginPrivate
class AndroidPluginPrivate : public QObject
{
public:
AndroidPluginPrivate()
{
connect(SessionManager::instance(), &SessionManager::projectAdded, this, [=](Project *project) {
for (Target *target : project->targets())
handleNewTarget(target);
connect(project, &Project::addedTarget, this, &AndroidPluginPrivate::handleNewTarget);
});
}
void handleNewTarget(Target *target)
{
if (DeviceTypeKitInformation::deviceTypeId(target->kit()) != Android::Constants::ANDROID_DEVICE_TYPE)
return;
for (BuildConfiguration *bc : target->buildConfigurations())
handleNewBuildConfiguration(bc);
connect(target, &Target::addedBuildConfiguration,
this, &AndroidPluginPrivate::handleNewBuildConfiguration);
}
void handleNewBuildConfiguration(BuildConfiguration *bc)
{
connect(bc->target()->project(), &Project::parsingFinished, bc, [bc] {
AndroidManager::updateGradleProperties(bc->target());
});
}
AndroidConfigurations androidConfiguration;
AndroidSettingsPage settingsPage;
AndroidDeployQtStepFactory deployQtStepFactory;

View File

@@ -98,10 +98,12 @@ QList<Abi> AndroidQtVersion::detectQtAbis() const
void AndroidQtVersion::addToEnvironment(const Kit *k, Utils::Environment &env) const
{
Q_UNUSED(k);
const AndroidConfig &config =AndroidConfigurations::currentConfig();
// this env vars are used by qmake mkspecs to generate makefiles (check QTDIR/mkspecs/android-g++/qmake.conf for more info)
env.set(QLatin1String("ANDROID_NDK_HOST"), AndroidConfigurations::currentConfig().toolchainHost());
env.set(QLatin1String("ANDROID_NDK_ROOT"), AndroidConfigurations::currentConfig().ndkLocation().toUserOutput());
env.set(QLatin1String("ANDROID_NDK_HOST"), config.toolchainHost());
env.set(QLatin1String("ANDROID_NDK_ROOT"), config.ndkLocation().toUserOutput());
env.set(QLatin1String("ANDROID_NDK_PLATFORM"),
config.bestNdkPlatformMatch(qMax(AndroidManager::minimumNDK(k), AndroidManager::minimumSDK(k))));
}
Utils::Environment AndroidQtVersion::qmakeRunEnvironment() const