diff options
Diffstat (limited to 'src/plugins/android/androidconfigurations.cpp')
-rw-r--r-- | src/plugins/android/androidconfigurations.cpp | 77 |
1 files changed, 38 insertions, 39 deletions
diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 555b4622ab..0ceb88240f 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -93,7 +93,6 @@ namespace { const QLatin1String OpenJDKLocationKey("OpenJDKLocation"); const QLatin1String KeystoreLocationKey("KeystoreLocation"); const QLatin1String AutomaticKitCreationKey("AutomatiKitCreation"); - const QLatin1String DeviceQmlsceneCommandKey("DeviceQmlsceneCommand"); const QLatin1String MakeExtraSearchDirectory("MakeExtraSearchDirectory"); const QLatin1String PartitionSizeKey("PartitionSize"); const QLatin1String ToolchainHostKey("ToolchainHost"); @@ -126,8 +125,8 @@ namespace { const QLatin1String sdkToolsVersionKey("Pkg.Revision"); const QLatin1String ndkRevisionKey("Pkg.Revision"); - const QLatin1String defaultQmlScene("org.qtproject.example.qmlscene/" - "org.qtproject.qt5.android.bindings.QtActivity"); + const QString defaultQtLiveApk = Core::ICore::resourcePath() + + ("/qtlive/android/armv7/qt_live_viewer.apk"); static QString sdkSettingsFileName() { @@ -257,7 +256,6 @@ void AndroidConfig::load(const QSettings &settings) m_keystoreLocation = FileName::fromString(settings.value(KeystoreLocationKey).toString()); m_toolchainHost = settings.value(ToolchainHostKey).toString(); m_automaticKitCreation = settings.value(AutomaticKitCreationKey, true).toBool(); - m_deviceQmlsceneCommand = settings.value(DeviceQmlsceneCommandKey, defaultQmlScene).toString(); QString extraDirectory = settings.value(MakeExtraSearchDirectory).toString(); m_makeExtraSearchDirectories.clear(); if (!extraDirectory.isEmpty()) @@ -274,7 +272,6 @@ void AndroidConfig::load(const QSettings &settings) m_keystoreLocation = FileName::fromString(reader.restoreValue(KeystoreLocationKey, m_keystoreLocation.toString()).toString()); m_toolchainHost = reader.restoreValue(ToolchainHostKey, m_toolchainHost).toString(); m_automaticKitCreation = reader.restoreValue(AutomaticKitCreationKey, m_automaticKitCreation).toBool(); - m_deviceQmlsceneCommand = reader.restoreValue(DeviceQmlsceneCommandKey, m_deviceQmlsceneCommand).toString(); QString extraDirectory = reader.restoreValue(MakeExtraSearchDirectory).toString(); m_makeExtraSearchDirectories.clear(); if (!extraDirectory.isEmpty()) @@ -298,7 +295,6 @@ void AndroidConfig::save(QSettings &settings) const settings.setValue(KeystoreLocationKey, m_keystoreLocation.toString()); settings.setValue(PartitionSizeKey, m_partitionSize); settings.setValue(AutomaticKitCreationKey, m_automaticKitCreation); - settings.setValue(DeviceQmlsceneCommandKey, m_deviceQmlsceneCommand); settings.setValue(ToolchainHostKey, m_toolchainHost); settings.setValue(MakeExtraSearchDirectory, m_makeExtraSearchDirectories.isEmpty() ? QString() @@ -316,7 +312,7 @@ void AndroidConfig::updateNdkInformation() const const QString &fileName = it.next(); m_availableNdkPlatforms.push_back(fileName.midRef(fileName.lastIndexOf(QLatin1Char('-')) + 1).toInt()); } - Utils::sort(m_availableNdkPlatforms, std::greater<int>()); + Utils::sort(m_availableNdkPlatforms, std::greater<>()); // detect toolchain host QStringList hostPatterns; @@ -713,13 +709,13 @@ bool AndroidConfig::useNativeUiTools() const QString AndroidConfig::bestNdkPlatformMatch(int target) const { - target = std::max(9, target); + target = std::max(AndroidManager::apiLevelRange().first, target); updateNdkInformation(); foreach (int apiLevel, m_availableNdkPlatforms) { if (apiLevel <= target) return QString::fromLatin1("android-%1").arg(apiLevel); } - return QLatin1String("android-9"); + return QString("android-%1").arg(AndroidManager::apiLevelRange().first); } FileName AndroidConfig::sdkLocation() const @@ -876,14 +872,12 @@ void AndroidConfig::setAutomaticKitCreation(bool b) m_automaticKitCreation = b; } -QString AndroidConfig::deviceQmlsceneCommand() const +FileName AndroidConfig::qtLiveApkPath() const { - return m_deviceQmlsceneCommand; -} - -void AndroidConfig::setDeviceQmlsceneCommand(const QString &qmlsceneCommand) -{ - m_deviceQmlsceneCommand = qmlsceneCommand; + QString apkPathStr(defaultQtLiveApk); + if (qEnvironmentVariableIsSet("QTC_QT_LIVE_APK_PATH")) + apkPathStr = QString::fromLocal8Bit(qgetenv("QTC_QT_LIVE_APK_PATH")); + return Utils::FileName::fromString(apkPathStr); } /////////////////////////////////// @@ -1043,9 +1037,7 @@ void AndroidConfigurations::updateAutomaticKitList() && tc->typeId() == Constants::ANDROID_TOOLCHAIN_ID && !static_cast<const AndroidToolChain *>(tc)->isSecondaryToolChain(); }); - const QList<AndroidToolChain *> toolchains = Utils::transform(tmp, [](ToolChain *tc) { - return static_cast<AndroidToolChain *>(tc); - }); + const auto toolchains = Utils::static_container_cast<AndroidToolChain *>(tmp); for (AndroidToolChain *tc : toolchains) { if (tc->isSecondaryToolChain() || tc->language() != Core::Id(ProjectExplorer::Constants::CXX_LANGUAGE_ID)) continue; @@ -1065,17 +1057,18 @@ void AndroidConfigurations::updateAutomaticKitList() }; for (const QtSupport::BaseQtVersion *qt : qtVersionsForArch.value(tc->targetAbi())) { - Kit *newKit = new Kit; - initBasicKitData(newKit, qt); - Kit *existingKit = Utils::findOrDefault(existingKits, [newKit](const Kit *k) { - return matchKits(newKit, k); + auto newKit = std::make_unique<Kit>(); + Kit *toSetup = newKit.get(); + initBasicKitData(toSetup, qt); + Kit *existingKit = Utils::findOrDefault(existingKits, [toSetup](const Kit *k) { + return matchKits(toSetup, k); }); if (existingKit) { // Existing kit found. // Update the existing kit with new data. initBasicKitData(existingKit, qt); - KitManager::deleteKit(newKit); - newKit = existingKit; + newKit.reset(); + toSetup = existingKit; } Debugger::DebuggerItem debugger; @@ -1086,16 +1079,16 @@ void AndroidConfigurations::updateAutomaticKitList() debugger.setAbi(tc->targetAbi()); debugger.reinitializeFromFile(); QVariant id = Debugger::DebuggerItemManager::registerDebugger(debugger); - Debugger::DebuggerKitInformation::setDebugger(newKit, id); - - AndroidGdbServerKitInformation::setGdbSever(newKit, tc->suggestedGdbServer()); - newKit->makeSticky(); - newKit->setUnexpandedDisplayName(tr("Android for %1 (GCC %2, %3)") - .arg(static_cast<const AndroidQtVersion *>(qt)->targetArch()) - .arg(tc->ndkToolChainVersion()) - .arg(qt->displayName())); + Debugger::DebuggerKitInformation::setDebugger(toSetup, id); + + AndroidGdbServerKitInformation::setGdbSever(toSetup, tc->suggestedGdbServer()); + toSetup->makeSticky(); + toSetup->setUnexpandedDisplayName(tr("Android for %1 (GCC %2, %3)") + .arg(static_cast<const AndroidQtVersion *>(qt)->targetArch()) + .arg(tc->ndkToolChainVersion()) + .arg(qt->displayName())); if (!existingKit) - KitManager::registerKit(newKit); + KitManager::registerKit(std::move(newKit)); } } } @@ -1181,10 +1174,7 @@ AndroidConfigurations::AndroidConfigurations() m_instance = this; } -AndroidConfigurations::~AndroidConfigurations() -{ - -} +AndroidConfigurations::~AndroidConfigurations() = default; static FileName javaHomeForJavac(const FileName &location) { @@ -1293,6 +1283,15 @@ void AndroidConfigurations::updateAndroidDevice() devMgr->removeDevice(Core::Id(Constants::ANDROID_DEVICE_ID)); } -AndroidConfigurations *AndroidConfigurations::m_instance = 0; +AndroidConfigurations *AndroidConfigurations::m_instance = nullptr; + +QDebug &operator<<(QDebug &stream, const AndroidDeviceInfo &device) +{ + stream << "Type:"<< (device.type == AndroidDeviceInfo::Emulator ? "Emulator" : "Device") + << ", ABI:" << device.cpuAbi << ", Serial:" << device.serialNumber + << ", Name:" << device.avdname << ", API:" << device.sdk + << ", Authorised:" << !device.unauthorized; + return stream; +} } // namespace Android |