diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp index 4a2c49bdca8..cff67ce2834 100644 --- a/src/plugins/android/androidmanager.cpp +++ b/src/plugins/android/androidmanager.cpp @@ -67,7 +67,6 @@ namespace { const QLatin1String AndroidManifestName("AndroidManifest.xml"); - const QLatin1String AndroidLibsFileName("/res/values/libs.xml"); const QLatin1String AndroidDefaultPropertiesName("project.properties"); const QLatin1String AndroidDeviceSn("AndroidDeviceSerialNumber"); @@ -91,17 +90,6 @@ typedef QMap LibrariesMap; static bool openXmlFile(QDomDocument &doc, const Utils::FileName &fileName); static bool openManifest(ProjectExplorer::Target *target, QDomDocument &doc); -static QStringList libsXml(ProjectExplorer::Target *target, const QString &tag); - -enum ItemType -{ - Lib, - Jar, - BundledFile, - BundledJar -}; -static QString loadLocal(ProjectExplorer::Target *target, int apiLevel, ItemType item, const QString &attribute=QLatin1String("file")); - bool AndroidManager::supportsAndroid(const ProjectExplorer::Kit *kit) { @@ -211,11 +199,6 @@ Utils::FileName AndroidManager::manifestPath(ProjectExplorer::Target *target) return dirPath(target).appendPath(AndroidManifestName); } -Utils::FileName AndroidManager::libsPath(ProjectExplorer::Target *target) -{ - return dirPath(target).appendPath(AndroidLibsFileName); -} - Utils::FileName AndroidManager::defaultPropertiesPath(ProjectExplorer::Target *target) { return dirPath(target).appendPath(AndroidDefaultPropertiesName); @@ -231,18 +214,6 @@ bool AndroidManager::bundleQt(ProjectExplorer::Target *target) return false; } -bool AndroidManager::useLocalLibs(ProjectExplorer::Target *target) -{ - AndroidBuildApkStep *androidBuildApkStep - = AndroidGlobal::buildStep(target->activeBuildConfiguration()); - if (androidBuildApkStep) { - return androidBuildApkStep->deployAction() == AndroidBuildApkStep::DebugDeployment - || androidBuildApkStep->deployAction() == AndroidBuildApkStep::BundleLibrariesDeployment; - } - - return false; -} - QString AndroidManager::deviceSerialNumber(ProjectExplorer::Target *target) { return target->namedSettings(AndroidDeviceSn).toString(); @@ -253,31 +224,6 @@ void AndroidManager::setDeviceSerialNumber(ProjectExplorer::Target *target, cons target->setNamedSettings(AndroidDeviceSn, deviceSerialNumber); } -Utils::FileName AndroidManager::localLibsRulesFilePath(ProjectExplorer::Target *target) -{ - QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(target->kit()); - if (!version) - return Utils::FileName(); - return Utils::FileName::fromString(version->qmakeProperty("QT_INSTALL_LIBS")); -} - -QString AndroidManager::loadLocalLibs(ProjectExplorer::Target *target, int apiLevel) -{ - return loadLocal(target, apiLevel, Lib); -} - -QString AndroidManager::loadLocalJars(ProjectExplorer::Target *target, int apiLevel) -{ - ItemType type = bundleQt(target) ? BundledJar : Jar; - return loadLocal(target, apiLevel, type); -} - -QString AndroidManager::loadLocalJarsInitClasses(ProjectExplorer::Target *target, int apiLevel) -{ - ItemType type = bundleQt(target) ? BundledJar : Jar; - return loadLocal(target, apiLevel, type, QLatin1String("initClass")); -} - QPair AndroidManager::apiLevelRange() { return qMakePair(9, 23); @@ -331,125 +277,11 @@ QString AndroidManager::androidNameForApiLevel(int x) } } -QStringList AndroidManager::qtLibs(ProjectExplorer::Target *target) -{ - return libsXml(target, QLatin1String("qt_libs")); -} - -QStringList AndroidManager::prebundledLibs(ProjectExplorer::Target *target) -{ - return libsXml(target, QLatin1String("bundled_libs")); -} - -static bool openLibsXml(ProjectExplorer::Target *target, QDomDocument &doc) -{ - return openXmlFile(doc, AndroidManager::libsPath(target)); -} - static void raiseError(const QString &reason) { QMessageBox::critical(0, AndroidManager::tr("Error creating Android templates."), reason); } -static QString loadLocal(ProjectExplorer::Target *target, int apiLevel, ItemType item, const QString &attribute) -{ - QString itemType; - if (item == Lib) - itemType = QLatin1String("lib"); - else if (item == BundledFile) - itemType = QLatin1String("bundled"); - else // Jar or BundledJar - itemType = QLatin1String("jar"); - - QString localLibs; - - QDir rulesFilesDir(AndroidManager::localLibsRulesFilePath(target).toString()); - if (!rulesFilesDir.exists()) - return localLibs; - - QStringList libs; - libs << AndroidManager::qtLibs(target) << AndroidManager::prebundledLibs(target); - - QFileInfoList rulesFiles = rulesFilesDir.entryInfoList(QStringList() << QLatin1String("*.xml"), - QDir::Files | QDir::Readable); - - QStringList dependencyLibs; - QStringList replacedLibs; - foreach (QFileInfo rulesFile, rulesFiles) { - if (rulesFile.baseName() != QLatin1String("rules") - && !rulesFile.baseName().endsWith(QLatin1String("-android-dependencies"))) { - continue; - } - - QDomDocument doc; - if (!openXmlFile(doc, Utils::FileName::fromString(rulesFile.absoluteFilePath()))) - return localLibs; - - QDomElement element = doc.documentElement().firstChildElement(QLatin1String("platforms")).firstChildElement(itemType + QLatin1Char('s')).firstChildElement(QLatin1String("version")); - while (!element.isNull()) { - if (element.attribute(QLatin1String("value")).toInt() == apiLevel) { - if (element.hasAttribute(QLatin1String("symlink"))) - apiLevel = element.attribute(QLatin1String("symlink")).toInt(); - break; - } - element = element.nextSiblingElement(QLatin1String("version")); - } - - element = doc.documentElement().firstChildElement(QLatin1String("dependencies")).firstChildElement(QLatin1String("lib")); - while (!element.isNull()) { - if (libs.contains(element.attribute(QLatin1String("name")))) { - QDomElement libElement = element.firstChildElement(QLatin1String("depends")).firstChildElement(itemType); - while (!libElement.isNull()) { - if (libElement.attribute(QLatin1String("bundling")).toInt() == (item == BundledJar ? 1 : 0)) { - if (libElement.hasAttribute(attribute)) { - QString dependencyLib = libElement.attribute(attribute); - if (dependencyLib.contains(QLatin1String("%1"))) - dependencyLib = dependencyLib.arg(apiLevel); - if (libElement.hasAttribute(QLatin1String("extends"))) { - const QString extends = libElement.attribute(QLatin1String("extends")); - if (libs.contains(extends)) - dependencyLibs << dependencyLib; - } else if (!dependencyLibs.contains(dependencyLib)) { - dependencyLibs << dependencyLib; - } - } - - if (libElement.hasAttribute(QLatin1String("replaces"))) { - QString replacedLib = libElement.attribute(QLatin1String("replaces")); - if (replacedLib.contains(QLatin1String("%1"))) - replacedLib = replacedLib.arg(apiLevel); - if (!replacedLibs.contains(replacedLib)) - replacedLibs << replacedLib; - } - } - - libElement = libElement.nextSiblingElement(itemType); - } - - libElement = element.firstChildElement(QLatin1String("replaces")).firstChildElement(itemType); - while (!libElement.isNull()) { - if (libElement.hasAttribute(attribute)) { - QString replacedLib = libElement.attribute(attribute).arg(apiLevel); - if (!replacedLibs.contains(replacedLib)) - replacedLibs << replacedLib; - } - - libElement = libElement.nextSiblingElement(itemType); - } - } - element = element.nextSiblingElement(QLatin1String("lib")); - } - } - - // The next loop requires all library names to end with a ":" so we append one - // to the end after joining. - localLibs = dependencyLibs.join(QLatin1Char(':')) + QLatin1Char(':'); - foreach (QString replacedLib, replacedLibs) - localLibs.remove(replacedLib + QLatin1Char(':')); - - return localLibs; -} - static bool openXmlFile(QDomDocument &doc, const Utils::FileName &fileName) { QFile f(fileName.toString()); @@ -468,27 +300,6 @@ static bool openManifest(ProjectExplorer::Target *target, QDomDocument &doc) return openXmlFile(doc, AndroidManager::manifestPath(target)); } -static QStringList libsXml(ProjectExplorer::Target *target, const QString &tag) -{ - QStringList libs; - QDomDocument doc; - if (!openLibsXml(target, doc)) - return libs; - QDomElement arrayElem = doc.documentElement().firstChildElement(QLatin1String("array")); - while (!arrayElem.isNull()) { - if (arrayElem.attribute(QLatin1String("name")) == tag) { - arrayElem = arrayElem.firstChildElement(QLatin1String("item")); - while (!arrayElem.isNull()) { - libs << arrayElem.text(); - arrayElem = arrayElem.nextSiblingElement(QLatin1String("item")); - } - return libs; - } - arrayElem = arrayElem.nextSiblingElement(QLatin1String("array")); - } - return libs; -} - void AndroidManager::cleanLibsOnDevice(ProjectExplorer::Target *target) { const QString targetArch = AndroidManager::targetArch(target); diff --git a/src/plugins/android/androidmanager.h b/src/plugins/android/androidmanager.h index 771963a1fca..04db2944166 100644 --- a/src/plugins/android/androidmanager.h +++ b/src/plugins/android/androidmanager.h @@ -64,7 +64,6 @@ public: static QString activityName(ProjectExplorer::Target *target); static bool bundleQt(ProjectExplorer::Target *target); - static bool useLocalLibs(ProjectExplorer::Target *target); static QString deviceSerialNumber(ProjectExplorer::Target *target); static void setDeviceSerialNumber(ProjectExplorer::Target *target, const QString &deviceSerialNumber); @@ -79,20 +78,11 @@ public: static Utils::FileName dirPath(ProjectExplorer::Target *target); static Utils::FileName manifestPath(ProjectExplorer::Target *target); static Utils::FileName manifestSourcePath(ProjectExplorer::Target *target); - static Utils::FileName libsPath(ProjectExplorer::Target *target); static Utils::FileName defaultPropertiesPath(ProjectExplorer::Target *target); - static Utils::FileName localLibsRulesFilePath(ProjectExplorer::Target *target); - static QString loadLocalLibs(ProjectExplorer::Target *target, int apiLevel = -1); - static QString loadLocalJars(ProjectExplorer::Target *target, int apiLevel = -1); - static QString loadLocalJarsInitClasses(ProjectExplorer::Target *target, int apiLevel = -1); - static QPair apiLevelRange(); static QString androidNameForApiLevel(int x); - static QStringList qtLibs(ProjectExplorer::Target *target); - static QStringList prebundledLibs(ProjectExplorer::Target *target); - static void cleanLibsOnDevice(ProjectExplorer::Target *target); static void installQASIPackage(ProjectExplorer::Target *target, const QString &packagePath); diff --git a/src/plugins/android/androidrunner.cpp b/src/plugins/android/androidrunner.cpp index 6747bd89a23..00b03f13910 100644 --- a/src/plugins/android/androidrunner.cpp +++ b/src/plugins/android/androidrunner.cpp @@ -154,13 +154,6 @@ AndroidRunner::AndroidRunner(QObject *parent, m_qmlPort = 0; } ProjectExplorer::Target *target = runConfig->target(); - m_useLocalQtLibs = AndroidManager::useLocalLibs(target); - if (m_useLocalQtLibs) { - int deviceApiLevel = AndroidManager::minimumSDK(target); - m_localLibs = AndroidManager::loadLocalLibs(target, deviceApiLevel); - m_localJars = AndroidManager::loadLocalJars(target, deviceApiLevel); - m_localJarsInitClasses = AndroidManager::loadLocalJarsInitClasses(target, deviceApiLevel); - } m_intentName = AndroidManager::intentName(target); m_packageName = m_intentName.left(m_intentName.indexOf(QLatin1Char('/'))); diff --git a/src/plugins/android/androidrunner.h b/src/plugins/android/androidrunner.h index 9a79b925d10..9cef3b66a45 100644 --- a/src/plugins/android/androidrunner.h +++ b/src/plugins/android/androidrunner.h @@ -108,14 +108,10 @@ private: QmlDebug::QmlDebugServicesPreset m_qmlDebugServices; ushort m_localGdbServerPort; // Local end of forwarded debug socket. quint16 m_qmlPort; - bool m_useLocalQtLibs; QString m_pingFile; QString m_pongFile; QString m_gdbserverPath; QString m_gdbserverSocket; - QString m_localLibs; - QString m_localJars; - QString m_localJarsInitClasses; QString m_adb; bool m_isBusyBox; QStringList m_selector;