forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.11'
Conflicts: src/plugins/genericprojectmanager/genericproject.cpp Change-Id: Ib54f1645ec70a9e6460a888a13190ede130bccca
This commit is contained in:
@@ -54,17 +54,18 @@
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/synchronousprocess.h>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QDir>
|
||||
#include <QDomDocument>
|
||||
#include <QFileSystemWatcher>
|
||||
#include <QJsonDocument>
|
||||
#include <QList>
|
||||
#include <QLoggingCategory>
|
||||
#include <QMessageBox>
|
||||
#include <QProcess>
|
||||
#include <QRegExp>
|
||||
#include <QMessageBox>
|
||||
#include <QApplication>
|
||||
#include <QDomDocument>
|
||||
#include <QVersionNumber>
|
||||
#include <QRegularExpression>
|
||||
#include <QVersionNumber>
|
||||
|
||||
namespace {
|
||||
const QLatin1String AndroidManifestName("AndroidManifest.xml");
|
||||
@@ -76,6 +77,7 @@ namespace {
|
||||
const QString activityRegEx("(?<token>launchable-activity: )(.*?)(name=)'(?<target>.*?)'");
|
||||
const QString apkVersionRegEx("(?<token>package: )(.*?)(versionCode=)'(?<target>.*?)'");
|
||||
const QString versionCodeRegEx("(?<token>versionCode=)(?<version>\\d*)");
|
||||
const QString qtcSignature("This file is generated by QtCreator to be read by androiddeployqt and should not be modified by hand.");
|
||||
|
||||
static Q_LOGGING_CATEGORY(androidManagerLog, "qtc.android.androidManager", QtWarningMsg)
|
||||
|
||||
@@ -266,6 +268,18 @@ QStringList AndroidManager::applicationAbis(const Target *target)
|
||||
return qt->androidAbis();
|
||||
}
|
||||
|
||||
QString AndroidManager::archTriplet(const QString &abi)
|
||||
{
|
||||
if (abi == "x86") {
|
||||
return {"i686-linux-android"};
|
||||
} else if (abi == "x86_64") {
|
||||
return {"x86_64-linux-android"};
|
||||
} else if (abi == "arm64-v8a") {
|
||||
return {"aarch64-linux-android"};
|
||||
}
|
||||
return {"arm-linux-androideabi"};
|
||||
}
|
||||
|
||||
QJsonObject AndroidManager::deploymentSettings(const Target *target)
|
||||
{
|
||||
QtSupport::BaseQtVersion *qt = QtSupport::QtKitAspect::qtVersion(target->kit());
|
||||
@@ -276,11 +290,20 @@ QJsonObject AndroidManager::deploymentSettings(const Target *target)
|
||||
if (!tc || tc->typeId() != Constants::ANDROID_TOOLCHAIN_TYPEID)
|
||||
return {};
|
||||
QJsonObject settings;
|
||||
settings["_description"] = "This file is generated by QtCreator to be read by androiddeployqt and should not be modified by hand.";
|
||||
settings["_description"] = qtcSignature;
|
||||
settings["qt"] = qt->prefix().toString();
|
||||
settings["ndk"] = AndroidConfigurations::currentConfig().ndkLocation().toString();
|
||||
settings["sdk"] = AndroidConfigurations::currentConfig().sdkLocation().toString();
|
||||
settings["stdcpp-path"] = AndroidConfigurations::currentConfig().toolchainPath().pathAppended("sysroot/usr/lib/").toString();
|
||||
if (qt->qtVersion() < QtSupport::QtVersionNumber(5, 14, 0)) {
|
||||
const QStringList abis = applicationAbis(target);
|
||||
QTC_ASSERT(abis.size() == 1, return {});
|
||||
settings["stdcpp-path"] = AndroidConfigurations::currentConfig().toolchainPath()
|
||||
.pathAppended("sysroot/usr/lib/")
|
||||
.pathAppended(archTriplet(abis.first()))
|
||||
.pathAppended("libc++_shared.so").toString();
|
||||
} else {
|
||||
settings["stdcpp-path"] = AndroidConfigurations::currentConfig().toolchainPath().pathAppended("sysroot/usr/lib/").toString();
|
||||
}
|
||||
settings["toolchain-prefix"] = "llvm";
|
||||
settings["tool-prefix"] = "llvm";
|
||||
settings["useLLVM"] = true;
|
||||
@@ -288,6 +311,14 @@ QJsonObject AndroidManager::deploymentSettings(const Target *target)
|
||||
return settings;
|
||||
}
|
||||
|
||||
bool AndroidManager::isQtCreatorGenerated(const FilePath &deploymentFile)
|
||||
{
|
||||
QFile f{deploymentFile.toString()};
|
||||
if (!f.open(QIODevice::ReadOnly))
|
||||
return false;
|
||||
return QJsonDocument::fromJson(f.readAll()).object()["_description"].toString() == qtcSignature;
|
||||
}
|
||||
|
||||
Utils::FilePath AndroidManager::dirPath(const ProjectExplorer::Target *target)
|
||||
{
|
||||
if (auto *bc = target->activeBuildConfiguration())
|
||||
|
||||
Reference in New Issue
Block a user