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,6 +30,8 @@
#ifndef ANDROIDCONFIGURATIONS_H
#define ANDROIDCONFIGURATIONS_H
#include "android_global.h"
#include <QObject>
#include <QString>
#include <QStringList>
@@ -37,7 +39,9 @@
#include <QHash>
#include <QMap>
#include <QFutureInterface>
#include <projectexplorer/abi.h>
#include <utils/fileutils.h>
#include <utils/environment.h>
@@ -49,7 +53,6 @@ namespace ProjectExplorer { class Project; }
namespace Android {
class AndroidPlugin;
namespace Internal {
struct AndroidDeviceInfo
{
@@ -76,7 +79,7 @@ public:
QStringList abis;
};
class AndroidConfig
class ANDROID_EXPORT AndroidConfig
{
public:
AndroidConfig();
@@ -85,6 +88,7 @@ public:
void save(QSettings &settings) const;
static QStringList apiLevelNamesFor(const QList<SdkPlatform> &platforms);
static QString apiLevelNameFor(const SdkPlatform &platform);
QList<SdkPlatform> sdkTargets(int minApiLevel = 0) const;
Utils::FileName sdkLocation() const;
@@ -192,7 +196,7 @@ private:
mutable QHash<QString, QString> m_serialNumberToDeviceName;
};
class AndroidConfigurations : public QObject
class ANDROID_EXPORT AndroidConfigurations : public QObject
{
friend class Android::AndroidPlugin;
Q_OBJECT
@@ -225,7 +229,6 @@ private:
QMap<ProjectExplorer::Project *, QMap<QString, QString> > m_defaultDeviceForAbi;
};
} // namespace Internal
} // namespace Android
#endif // ANDROIDCONFIGURATIONS_H