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 <alessandro.portale@qt.io>
This commit is contained in:
David Schulz
2024-10-23 09:41:25 +02:00
parent 82e115512d
commit 843dd8a3dc
5 changed files with 8 additions and 11 deletions

View File

@@ -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)

View File

@@ -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();

View File

@@ -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;

View File

@@ -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) {

View File

@@ -192,6 +192,7 @@ public:
QSet<Utils::Id> features() const;
virtual bool supportsMultipleQtAbis() const;
virtual bool isAndroidQtVersion() const { return false; };
protected:
QtVersion();