forked from qt-creator/qt-creator
Allow QC to directly set the build-tools version for the project. Such setting could be in qmake/cmake, however, ideally this value should be the latest available version, and doesn't need to be written to the project file. Thus, it is convenient to have this selectable from QC UI for convience, while developing. Apart from the first reason for avoiding writing this into the project file, there is QC limitation which doesn't allow writing such value to CMake project file. Task-number: QTBUG-97002 Change-Id: I5d54d36f7900f8445359188d6ae7a8ba14bd3a05 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: hjk <hjk@qt.io>
86 lines
2.3 KiB
C++
86 lines
2.3 KiB
C++
// Copyright (C) 2016 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
#pragma once
|
|
|
|
#include "androidsdkpackage.h"
|
|
|
|
#include <utils/fileutils.h>
|
|
|
|
#include <QObject>
|
|
#include <QFuture>
|
|
|
|
#include <memory>
|
|
|
|
namespace Android {
|
|
|
|
class AndroidConfig;
|
|
|
|
namespace Internal {
|
|
|
|
class AndroidSdkManagerPrivate;
|
|
|
|
class AndroidSdkManager : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
enum CommandType
|
|
{
|
|
None,
|
|
UpdateAll,
|
|
UpdatePackage,
|
|
LicenseCheck,
|
|
LicenseWorkflow
|
|
};
|
|
|
|
struct OperationOutput
|
|
{
|
|
bool success = false;
|
|
CommandType type = None;
|
|
QString stdOutput;
|
|
QString stdError;
|
|
};
|
|
|
|
explicit AndroidSdkManager(const AndroidConfig &config);
|
|
~AndroidSdkManager() override;
|
|
|
|
SdkPlatformList installedSdkPlatforms();
|
|
const AndroidSdkPackageList &allSdkPackages();
|
|
AndroidSdkPackageList installedSdkPackages();
|
|
SystemImageList installedSystemImages();
|
|
NdkList installedNdkPackages();
|
|
|
|
SdkPlatform *latestAndroidSdkPlatform(AndroidSdkPackage::PackageState state
|
|
= AndroidSdkPackage::Installed);
|
|
SdkPlatformList filteredSdkPlatforms(int minApiLevel,
|
|
AndroidSdkPackage::PackageState state
|
|
= AndroidSdkPackage::Installed);
|
|
BuildToolsList filteredBuildTools(int minApiLevel,
|
|
AndroidSdkPackage::PackageState state
|
|
= AndroidSdkPackage::Installed);
|
|
void reloadPackages(bool forceReload = false);
|
|
bool isBusy() const;
|
|
|
|
bool packageListingSuccessful() const;
|
|
|
|
QFuture<QString> availableArguments() const;
|
|
QFuture<OperationOutput> updateAll();
|
|
QFuture<OperationOutput> update(const QStringList &install, const QStringList &uninstall);
|
|
QFuture<OperationOutput> checkPendingLicenses();
|
|
QFuture<OperationOutput> runLicenseCommand();
|
|
|
|
void cancelOperatons();
|
|
void acceptSdkLicense(bool accept);
|
|
|
|
signals:
|
|
void packageReloadBegin();
|
|
void packageReloadFinished();
|
|
void cancelActiveOperations();
|
|
|
|
private:
|
|
friend class AndroidSdkManagerPrivate;
|
|
std::unique_ptr<AndroidSdkManagerPrivate> m_d;
|
|
};
|
|
|
|
} // namespace Internal
|
|
} // namespace Android
|