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() QStringList allEssentials()
{ {
QtVersions installedVersions = QtVersionManager::versions( const QtVersions installedVersions = QtVersionManager::versions(&QtVersion::isAndroidQtVersion);
[](const QtVersion *v) {
return v->targetDeviceTypes().contains(Android::Constants::ANDROID_DEVICE_TYPE);
});
QStringList allPackages(commonEssentials()); QStringList allPackages(commonEssentials());
for (const QtVersion *version : installedVersions) for (const QtVersion *version : installedVersions)

View File

@@ -126,10 +126,9 @@ class AndroidPlugin final : public ExtensionSystem::IPlugin
void kitsRestored() void kitsRestored()
{ {
const bool qtForAndroidInstalled const bool qtForAndroidInstalled = !QtSupport::QtVersionManager::versions(
= !QtSupport::QtVersionManager::versions([](const QtSupport::QtVersion *v) { &QtSupport::QtVersion::isAndroidQtVersion)
return v->targetDeviceTypes().contains(Android::Constants::ANDROID_DEVICE_TYPE); .isEmpty();
}).isEmpty();
if (!AndroidConfig::sdkFullyConfigured() && qtForAndroidInstalled) if (!AndroidConfig::sdkFullyConfigured() && qtForAndroidInstalled)
askUserAboutAndroidSetup(); askUserAboutAndroidSetup();

View File

@@ -39,6 +39,8 @@ public:
static BuiltWith parseBuiltWith(const QByteArray &modulesCoreJsonData, bool *ok = nullptr); static BuiltWith parseBuiltWith(const QByteArray &modulesCoreJsonData, bool *ok = nullptr);
BuiltWith builtWith(bool *ok = nullptr) const; BuiltWith builtWith(bool *ok = nullptr) const;
bool isAndroidQtVersion() const override { return true; };
protected: protected:
void parseMkSpec(ProFileEvaluator *) const override; void parseMkSpec(ProFileEvaluator *) const override;

View File

@@ -146,9 +146,7 @@ static FilePath clangPlusPlusPath(const FilePath &clangPath)
static FilePaths uniqueNdksForCurrentQtVersions() static FilePaths uniqueNdksForCurrentQtVersions()
{ {
auto androidQtVersions = QtSupport::QtVersionManager::versions( auto androidQtVersions = QtSupport::QtVersionManager::versions(
[](const QtSupport::QtVersion *v) { &QtSupport::QtVersion::isAndroidQtVersion);
return v->targetDeviceTypes().contains(Android::Constants::ANDROID_DEVICE_TYPE);
});
FilePaths uniqueNdks; FilePaths uniqueNdks;
for (const QtSupport::QtVersion *version : androidQtVersions) { for (const QtSupport::QtVersion *version : androidQtVersions) {

View File

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