forked from qt-creator/qt-creator
QtSupport: Add supportsMultipleQtAbis getter
Introduce bool QtSupport::supportsMultipleQtAbis(). Let AndroidQtVersion respond according to the QVersionNumber. This allows to replace the version arithmetics in several places with straight forward (and better findable) function calls. Task-number: QTCREATORBUG-24471 Change-Id: Ib6e39fd6485a54e08ad66f84d4e2582989043419 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -390,7 +390,7 @@ void AndroidBuildApkStep::doRun()
|
||||
|
||||
QJsonObject deploySettings = Android::AndroidManager::deploymentSettings(target());
|
||||
QString applicationBinary;
|
||||
if (version->qtVersion() < QtSupport::QtVersionNumber(5, 14, 0)) {
|
||||
if (!version->supportsMultipleQtAbis()) {
|
||||
QTC_ASSERT(androidAbis.size() == 1, return false);
|
||||
applicationBinary = buildSystem()->buildTarget(buildKey).targetFilePath.toString();
|
||||
FilePath androidLibsDir = buildDirectory() / "android-build/libs" / androidAbis.first();
|
||||
|
||||
@@ -235,7 +235,7 @@ QWidget *AndroidBuildApkWidget::createAdvancedGroup()
|
||||
|
||||
auto vbox = new QVBoxLayout(group);
|
||||
QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(step()->target()->kit());
|
||||
if (version && version->qtVersion() >= QtSupport::QtVersionNumber{5,14}) {
|
||||
if (version && version->supportsMultipleQtAbis()) {
|
||||
auto buildAAB = new QCheckBox(tr("Build .aab (Android App Bundle)"), group);
|
||||
buildAAB->setChecked(m_step->buildAAB());
|
||||
connect(buildAAB, &QAbstractButton::toggled, m_step, &AndroidBuildApkStep::setBuildAAB);
|
||||
|
||||
@@ -287,7 +287,7 @@ QJsonObject AndroidManager::deploymentSettings(const Target *target)
|
||||
settings["qt"] = qt->prefix().toString();
|
||||
settings["ndk"] = AndroidConfigurations::currentConfig().ndkLocation(qt).toString();
|
||||
settings["sdk"] = AndroidConfigurations::currentConfig().sdkLocation().toString();
|
||||
if (qt->qtVersion() < QtSupport::QtVersionNumber(5, 14, 0)) {
|
||||
if (!qt->supportsMultipleQtAbis()) {
|
||||
const QStringList abis = applicationAbis(target);
|
||||
QTC_ASSERT(abis.size() == 1, return {});
|
||||
settings["stdcpp-path"] = (AndroidConfigurations::currentConfig().toolchainPath(qt)
|
||||
|
||||
@@ -84,6 +84,11 @@ QString AndroidQtVersion::invalidReason() const
|
||||
return tmp;
|
||||
}
|
||||
|
||||
bool AndroidQtVersion::supportsMultipleQtAbis() const
|
||||
{
|
||||
return qtVersion() >= QtSupport::QtVersionNumber{5, 14};
|
||||
}
|
||||
|
||||
Abis AndroidQtVersion::detectQtAbis() const
|
||||
{
|
||||
auto androidAbi2Abi = [](const QString &androidAbi) {
|
||||
@@ -165,7 +170,7 @@ int AndroidQtVersion::minimumNDK() const
|
||||
|
||||
void AndroidQtVersion::parseMkSpec(ProFileEvaluator *evaluator) const
|
||||
{
|
||||
if (qtVersion() >= QtSupport::QtVersionNumber{5, 14})
|
||||
if (supportsMultipleQtAbis())
|
||||
m_androidAbis = evaluator->values("ALL_ANDROID_ABIS");
|
||||
else
|
||||
m_androidAbis = QStringList{evaluator->value("ANDROID_TARGET_ARCH")};
|
||||
|
||||
@@ -43,6 +43,7 @@ public:
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user