androidbuildapkstep.h 3.96 KB
Newer Older
1 2
/**************************************************************************
**
Eike Ziller's avatar
Eike Ziller committed
3 4 5
** Copyright (C) 2015 BogDan Vatra <bog_dan_ro@yahoo.com>
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing
6 7 8 9 10 11 12
**
** 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
Eike Ziller's avatar
Eike Ziller committed
13 14
** a written agreement between you and The Qt Company.  For licensing terms and
** conditions see http://www.qt.io/terms-conditions.  For further information
Eike Ziller's avatar
Eike Ziller committed
15
** use the contact form at http://www.qt.io/contact-us.
16 17 18
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
Eike Ziller's avatar
Eike Ziller committed
19 20 21 22 23 24
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file.  Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25
**
Eike Ziller's avatar
Eike Ziller committed
26 27
** In addition, as a special exception, The Qt Company gives you certain additional
** rights.  These rights are described in The Qt Company LGPL Exception
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/

#ifndef ANDROIDBUILDAPKSTEP_H
#define ANDROIDBUILDAPKSTEP_H

#include "android_global.h"
#include <projectexplorer/abstractprocessstep.h>

QT_BEGIN_NAMESPACE
class QAbstractItemModel;
QT_END_NAMESPACE

namespace Android {

class ANDROID_EXPORT AndroidBuildApkStep : public ProjectExplorer::AbstractProcessStep
{
    Q_OBJECT
public:
    AndroidBuildApkStep(ProjectExplorer::BuildStepList *bc, const Core::Id id);

    enum AndroidDeployAction
    {
        MinistroDeployment, // use ministro
        DebugDeployment,
        BundleLibrariesDeployment
    };

57 58
    bool fromMap(const QVariantMap &map) override;
    QVariantMap toMap() const override;
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74

    AndroidDeployAction deployAction() 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);
BogDan Vatra's avatar
BogDan Vatra committed
75

76 77 78
    bool verboseOutput() const;
    void setVerboseOutput(bool verbose);

BogDan Vatra's avatar
BogDan Vatra committed
79 80 81
    bool useGradle() const;
    void setUseGradle(bool b);

82
    bool runInGuiThread() const override;
83 84 85

    QString buildTargetSdk() const;
    void setBuildTargetSdk(const QString &sdk);
BogDan Vatra's avatar
BogDan Vatra committed
86 87

    virtual Utils::FileName androidPackageSourceDir() const = 0;
88 89 90 91 92 93 94 95 96 97 98 99
public slots:
    void setDeployAction(AndroidDeployAction deploy);

protected slots:
    void showInGraphicalShell();

protected:
    AndroidBuildApkStep(ProjectExplorer::BuildStepList *bc,
        AndroidBuildApkStep *other);
    bool keystorePassword();
    bool certificatePassword();

100
    bool init(QList<const BuildStep *> &earlierSteps) override;
101 102 103
    ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override;
    bool immutable() const override { return true; }
    void processFinished(int exitCode, QProcess::ExitStatus status) override;
104 105 106 107 108

protected:
    AndroidDeployAction m_deployAction;
    bool m_signPackage;
    bool m_verbose;
BogDan Vatra's avatar
BogDan Vatra committed
109
    bool m_useGradle;
110 111 112 113 114 115 116 117 118 119 120 121 122 123
    bool m_openPackageLocation;
    bool m_openPackageLocationForRun;
    QString m_buildTargetSdk;

    Utils::FileName m_keystorePath;
    QString m_keystorePasswd;
    QString m_certificateAlias;
    QString m_certificatePasswd;
    QString m_apkPath;
};

} // namespace Android

#endif // ANDROIDBUILDAPKSTEP_H