Move qmake specific part to qmake plugin, generalize android support

- Split up androiddeployqt into two steps: One building the apk,
  and one deploying it to the device.
- The build apk step base class AndroidBuildApkStep is ihneritaged by
  the qmake specific class QmakeAndroidBuildApkStep.
- The deployment step is still called androiddeployqt
- Move all qmake specific code to the qmakeprojectmanager plguin
- Flip the depencency between the android and qmake plugin, now
  the qmake plugin depends on the android plugin, implementing
  a interface the android plugin provides.

- Note: This removes the debug deployment for now.

Change-Id: I1c386640159ed14b637668abde8eb3b9009ab803
Reviewed-by: BogDan Vatra <bogdan@kde.org>
This commit is contained in:
BogDan Vatra
2014-06-25 15:42:11 +02:00
committed by Daniel Teske
parent 4657ac7452
commit 64e5a543a8
57 changed files with 2617 additions and 1281 deletions

View File

@@ -30,45 +30,47 @@
#ifndef ANDROIDMANAGER_H
#define ANDROIDMANAGER_H
#include "android_global.h"
#include <utils/fileutils.h>
#include <QDomDocument>
#include <QPair>
#include <QObject>
#include <QStringList>
namespace ProjectExplorer { class Target; }
class QDomDocument;
namespace ProjectExplorer {
class Kit;
class Target;
}
namespace Android {
class AndroidQtSupport;
namespace Internal {
class AndroidManager : public QObject
class AndroidQtSupport;
class ANDROID_EXPORT AndroidManager : public QObject
{
Q_OBJECT
public:
enum BuildType
{
DebugBuild,
ReleaseBuildUnsigned,
ReleaseBuildSigned
};
static bool supportsAndroid(ProjectExplorer::Target *target);
static bool supportsAndroid(const ProjectExplorer::Kit *kit);
static bool supportsAndroid(const ProjectExplorer::Target *target);
static QString packageName(ProjectExplorer::Target *target);
static QString intentName(ProjectExplorer::Target *target);
static QString activityName(ProjectExplorer::Target *target);
static QStringList availableTargetApplications(ProjectExplorer::Target *target);
static bool bundleQt(ProjectExplorer::Target *target);
static bool useLocalLibs(ProjectExplorer::Target *target);
static QString deviceSerialNumber(ProjectExplorer::Target *target);
static void setDeviceSerialNumber(ProjectExplorer::Target *target, const QString &deviceSerialNumber);
static QString buildTargetSDK(ProjectExplorer::Target *target);
static bool signPackage(ProjectExplorer::Target *target);
static int minimumSDK(ProjectExplorer::Target *target);
static QString targetArch(ProjectExplorer::Target *target);
@@ -77,7 +79,6 @@ public:
static Utils::FileName manifestPath(ProjectExplorer::Target *target);
static Utils::FileName libsPath(ProjectExplorer::Target *target);
static Utils::FileName defaultPropertiesPath(ProjectExplorer::Target *target);
static Utils::FileName apkPath(ProjectExplorer::Target *target, BuildType buildType);
static Utils::FileName localLibsRulesFilePath(ProjectExplorer::Target *target);
static QString loadLocalLibs(ProjectExplorer::Target *target, int apiLevel = -1);
@@ -134,7 +135,6 @@ private:
};
} // namespace Internal
} // namespace Android
#endif // ANDROIDMANAGER_H