forked from qt-creator/qt-creator
This will use the available information from modules/Core.json and determine the abi version from the "compiler_target" used to build Qt. This is only available with Qt6. Qt 6.4 and 6.5 have this information. Otherwise the "android-clang" qmake mkspec will be parsed and evalauted to get the Qt ABIs. Change-Id: Ia0c73f5c87983f44a156b54335dc8b36698c15b2 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
61 lines
1.7 KiB
C++
61 lines
1.7 KiB
C++
// Copyright (C) 2016 BogDan Vatra <bog_dan_ro@yahoo.com>
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
|
|
#pragma once
|
|
|
|
#include <qtsupport/baseqtversion.h>
|
|
#include <qtsupport/qtversionfactory.h>
|
|
|
|
#include <QCoreApplication>
|
|
|
|
namespace Android {
|
|
namespace Internal {
|
|
|
|
class AndroidQtVersion : public QtSupport::QtVersion
|
|
{
|
|
public:
|
|
AndroidQtVersion();
|
|
|
|
bool isValid() const override;
|
|
QString invalidReason() const override;
|
|
|
|
bool supportsMultipleQtAbis() const override;
|
|
ProjectExplorer::Abis detectQtAbis() const override;
|
|
|
|
void addToEnvironment(const ProjectExplorer::Kit *k, Utils::Environment &env) const override;
|
|
void setupQmakeRunEnvironment(Utils::Environment &env) const override;
|
|
|
|
QSet<Utils::Id> availableFeatures() const override;
|
|
QSet<Utils::Id> targetDeviceTypes() const override;
|
|
|
|
QString description() const override;
|
|
const QStringList &androidAbis() const;
|
|
int minimumNDK() const;
|
|
|
|
static Utils::FilePath androidDeploymentSettings(const ProjectExplorer::Target *target);
|
|
|
|
struct BuiltWith {
|
|
int apiVersion = -1;
|
|
QVersionNumber ndkVersion;
|
|
QString androidAbi;
|
|
};
|
|
static BuiltWith parseBuiltWith(const QByteArray &modulesCoreJsonData, bool *ok = nullptr);
|
|
BuiltWith builtWith(bool *ok = nullptr) const;
|
|
|
|
protected:
|
|
void parseMkSpec(ProFileEvaluator *) const override;
|
|
private:
|
|
std::unique_ptr<QObject> m_guard;
|
|
mutable QStringList m_androidAbis;
|
|
mutable int m_minNdk = -1;
|
|
};
|
|
|
|
class AndroidQtVersionFactory : public QtSupport::QtVersionFactory
|
|
{
|
|
public:
|
|
AndroidQtVersionFactory();
|
|
};
|
|
|
|
} // namespace Internal
|
|
} // namespace Android
|