summaryrefslogtreecommitdiff
path: root/src/plugins/android/androiddeployqtstep.h
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@digia.com>2013-09-17 18:24:57 +0200
committerDaniel Teske <daniel.teske@digia.com>2013-09-26 17:13:27 +0200
commit1262310798c699c13c2878c5eee66f94a6be8469 (patch)
tree18e7129681a0571dee91211e199669e50103c30c /src/plugins/android/androiddeployqtstep.h
parent455d597ac3cb6f1f6e1cc500c0a009df12cb4fcc (diff)
downloadqt-creator-1262310798c699c13c2878c5eee66f94a6be8469.tar.gz
Android: androiddeployqt support
Change-Id: I37d706b4e11c6e1353a8ee73378b7d080080678c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Diffstat (limited to 'src/plugins/android/androiddeployqtstep.h')
-rw-r--r--src/plugins/android/androiddeployqtstep.h160
1 files changed, 160 insertions, 0 deletions
diff --git a/src/plugins/android/androiddeployqtstep.h b/src/plugins/android/androiddeployqtstep.h
new file mode 100644
index 0000000000..d51a46e60e
--- /dev/null
+++ b/src/plugins/android/androiddeployqtstep.h
@@ -0,0 +1,160 @@
+/**************************************************************************
+**
+** Copyright (c) 2013 BogDan Vatra <bog_dan_ro@yahoo.com>
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+****************************************************************************/
+
+#ifndef ANDROIDDEPLOYQTSTEP_H
+#define ANDROIDDEPLOYQTSTEP_H
+
+#include "androidconfigurations.h"
+
+#include <projectexplorer/abstractprocessstep.h>
+#include <qtsupport/baseqtversion.h>
+
+QT_BEGIN_NAMESPACE
+class QAbstractItemModel;
+QT_END_NAMESPACE
+
+namespace Android {
+namespace Internal {
+
+class AndroidDeployQtStepFactory : public ProjectExplorer::IBuildStepFactory
+{
+ Q_OBJECT
+public:
+ explicit AndroidDeployQtStepFactory(QObject *parent = 0);
+
+ QList<Core::Id> availableCreationIds(ProjectExplorer::BuildStepList *parent) const;
+ QString displayNameForId(const Core::Id id) const;
+
+ bool canCreate(ProjectExplorer::BuildStepList *parent,
+ const Core::Id id) const;
+ ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, const Core::Id id);
+
+ bool canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const;
+ ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map);
+
+ bool canClone(ProjectExplorer::BuildStepList *parent,
+ ProjectExplorer::BuildStep *product) const;
+ ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStepList *parent,
+ ProjectExplorer::BuildStep *product);
+};
+
+class AndroidDeployQtStep : public ProjectExplorer::AbstractProcessStep
+{
+ Q_OBJECT
+ friend class AndroidDeployQtStepFactory;
+public:
+ AndroidDeployQtStep(ProjectExplorer::BuildStepList *bc);
+
+ enum AndroidDeployQtAction
+ {
+ MinistroDeployment, // use ministro
+ DebugDeployment,
+ BundleLibrariesDeployment
+ };
+
+ bool fromMap(const QVariantMap &map);
+ QVariantMap toMap() const;
+
+ AndroidDeployQtStep::AndroidDeployQtAction deployAction() const;
+ QString deviceSerialNumber();
+
+ void setBuildTargetSdk(const QString &sdk);
+ QString buildTargetSdk() const;
+
+ // signing
+ Utils::FileName keystorePath();
+ void setKeystorePath(const Utils::FileName &path);
+ void setKeystorePassword(const QString &pwd);
+ void setCertificateAlias(const QString &alias);
+ void setCertificatePassword(const QString &pwd);
+
+ QAbstractItemModel *keystoreCertificates();
+ bool signPackage() const;
+ void setSignPackage(bool b);
+
+ bool openPackageLocation() const;
+ void setOpenPackageLocation(bool open);
+ bool verboseOutput() const;
+ void setVerboseOutput(bool verbose);
+
+ QString inputFile() const;
+ void setInputFile(const QString &file);
+
+signals:
+ // also on purpose emitted if the possible values of this changed
+ void inputFileChanged();
+
+public slots:
+ void setDeployAction(AndroidDeployQtAction deploy); // slot?
+
+private slots:
+ void showInGraphicalShell();
+
+ void updateInputFile();
+private:
+ AndroidDeployQtStep(ProjectExplorer::BuildStepList *bc,
+ AndroidDeployQtStep *other);
+ void ctor();
+ bool keystorePassword();
+ bool certificatePassword();
+ void runCommand(const QString &program, const QStringList &arguments);
+
+ bool init();
+ void run(QFutureInterface<bool> &fi);
+ ProjectExplorer::BuildStepConfigWidget *createConfigWidget();
+ bool immutable() const { return true; }
+ void processFinished(int exitCode, QProcess::ExitStatus status);
+
+ QString m_buildTargetSdk;
+ QString m_serialNumber;
+ AndroidDeployQtAction m_deployAction;
+ bool m_signPackage;
+ bool m_verbose;
+ bool m_openPackageLocation;
+ bool m_openPackageLocationForRun;
+ QString m_buildDirectory;
+
+ Utils::FileName m_keystorePath;
+ QString m_keystorePasswd;
+ QString m_certificateAlias;
+ QString m_certificatePasswd;
+ QString m_avdName;
+ QString m_apkPath;
+ QString m_targetArch;
+ QString m_inputFile;
+ int m_deviceAPILevel;
+
+ static const Core::Id Id;
+};
+
+}
+}
+
+#endif // ANDROIDDEPLOYQTSTEP_H