From 843dd8a3dc67ae24c119741007ce175ce05b4b8d Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 23 Oct 2024 09:41:25 +0200 Subject: [PATCH] Android: avoid collecting abis for all qt versions on android check Use an explicit function that does not require to collect the abi of all qt versions just to check whether this Qt version is targeting Android. Change-Id: I76ba56cbe6b8f7559e871a2db498f47670059a05 Reviewed-by: Alessandro Portale --- src/plugins/android/androidconfigurations.cpp | 5 +---- src/plugins/android/androidplugin.cpp | 7 +++---- src/plugins/android/androidqtversion.h | 2 ++ src/plugins/android/androidtoolchain.cpp | 4 +--- src/plugins/qtsupport/baseqtversion.h | 1 + 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index ecdb290c6b0..01752ef7581 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -959,10 +959,7 @@ static QStringList essentialsFromQtVersion(const QtVersion &version) QStringList allEssentials() { - QtVersions installedVersions = QtVersionManager::versions( - [](const QtVersion *v) { - return v->targetDeviceTypes().contains(Android::Constants::ANDROID_DEVICE_TYPE); - }); + const QtVersions installedVersions = QtVersionManager::versions(&QtVersion::isAndroidQtVersion); QStringList allPackages(commonEssentials()); for (const QtVersion *version : installedVersions) diff --git a/src/plugins/android/androidplugin.cpp b/src/plugins/android/androidplugin.cpp index d94014fdfb5..f3500c9d8c6 100644 --- a/src/plugins/android/androidplugin.cpp +++ b/src/plugins/android/androidplugin.cpp @@ -126,10 +126,9 @@ class AndroidPlugin final : public ExtensionSystem::IPlugin void kitsRestored() { - const bool qtForAndroidInstalled - = !QtSupport::QtVersionManager::versions([](const QtSupport::QtVersion *v) { - return v->targetDeviceTypes().contains(Android::Constants::ANDROID_DEVICE_TYPE); - }).isEmpty(); + const bool qtForAndroidInstalled = !QtSupport::QtVersionManager::versions( + &QtSupport::QtVersion::isAndroidQtVersion) + .isEmpty(); if (!AndroidConfig::sdkFullyConfigured() && qtForAndroidInstalled) askUserAboutAndroidSetup(); diff --git a/src/plugins/android/androidqtversion.h b/src/plugins/android/androidqtversion.h index 3edaa544660..d01197ecab3 100644 --- a/src/plugins/android/androidqtversion.h +++ b/src/plugins/android/androidqtversion.h @@ -39,6 +39,8 @@ public: static BuiltWith parseBuiltWith(const QByteArray &modulesCoreJsonData, bool *ok = nullptr); BuiltWith builtWith(bool *ok = nullptr) const; + bool isAndroidQtVersion() const override { return true; }; + protected: void parseMkSpec(ProFileEvaluator *) const override; diff --git a/src/plugins/android/androidtoolchain.cpp b/src/plugins/android/androidtoolchain.cpp index e358617ff34..0961c6e47ac 100644 --- a/src/plugins/android/androidtoolchain.cpp +++ b/src/plugins/android/androidtoolchain.cpp @@ -146,9 +146,7 @@ static FilePath clangPlusPlusPath(const FilePath &clangPath) static FilePaths uniqueNdksForCurrentQtVersions() { auto androidQtVersions = QtSupport::QtVersionManager::versions( - [](const QtSupport::QtVersion *v) { - return v->targetDeviceTypes().contains(Android::Constants::ANDROID_DEVICE_TYPE); - }); + &QtSupport::QtVersion::isAndroidQtVersion); FilePaths uniqueNdks; for (const QtSupport::QtVersion *version : androidQtVersions) { diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h index a31ef9f5de8..607909f9a4a 100644 --- a/src/plugins/qtsupport/baseqtversion.h +++ b/src/plugins/qtsupport/baseqtversion.h @@ -192,6 +192,7 @@ public: QSet features() const; virtual bool supportsMultipleQtAbis() const; + virtual bool isAndroidQtVersion() const { return false; }; protected: QtVersion();