forked from qt-creator/qt-creator
QmakeAndroid: Move some build-system agnostic items to Android base
Change-Id: I0f258ee5e4afcb3abc7c2bbbaa612b1912a8d2b9 Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
This commit is contained in:
@@ -149,12 +149,14 @@ bool AndroidBuildApkStep::init(QList<const BuildStep *> &earlierSteps)
|
||||
parser->setProjectFileList(Utils::transform(target()->project()->files(ProjectExplorer::Project::AllFiles),
|
||||
&Utils::FileName::toString));
|
||||
|
||||
parser->setSourceDirectory(AndroidManager::androidQtSupport(target())->packageSourceDir(target()));
|
||||
AndroidQtSupport *qtSupport = AndroidManager::androidQtSupport(target());
|
||||
QFileInfo sourceDirInfo(qtSupport->targetDataItem(Constants::AndroidPackageSourceDir, target()));
|
||||
parser->setSourceDirectory(Utils::FileName::fromString(sourceDirInfo.canonicalFilePath()));
|
||||
parser->setBuildDirectory(Utils::FileName::fromString(bc->buildDirectory().appendPath(Constants::ANDROID_BUILDDIRECTORY).toString()));
|
||||
setOutputParser(parser);
|
||||
|
||||
m_openPackageLocationForRun = m_openPackageLocation;
|
||||
m_apkPath = AndroidManager::androidQtSupport(target())->apkPath(target()).toString();
|
||||
m_apkPath = qtSupport->apkPath(target()).toString();
|
||||
|
||||
bool result = AbstractProcessStep::init(earlierSteps);
|
||||
if (!result)
|
||||
|
||||
@@ -125,7 +125,7 @@ void AndroidDebugSupport::start()
|
||||
AndroidQtSupport *qtSupport = AndroidManager::androidQtSupport(target);
|
||||
QStringList solibSearchPath = qtSupport->soLibSearchPath(target);
|
||||
solibSearchPath.append(qtSoPaths(qtVersion));
|
||||
solibSearchPath.append(uniquePaths(qtSupport->androidExtraLibs(target)));
|
||||
solibSearchPath.append(uniquePaths(qtSupport->targetData(Android::Constants::AndroidExtraLibs, target)));
|
||||
setSolibSearchPath(solibSearchPath);
|
||||
setSymbolFile(target->activeBuildConfiguration()->buildDirectory().toString()
|
||||
+ "/app_process");
|
||||
|
||||
@@ -194,12 +194,12 @@ bool AndroidDeployQtStep::init(QList<const BuildStep *> &earlierSteps)
|
||||
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, m_workingDirectory);
|
||||
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, QLatin1String("--no-build"));
|
||||
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, QLatin1String("--input"));
|
||||
tmp = AndroidManager::androidQtSupport(target())->androiddeployJsonPath(target());
|
||||
if (tmp.isEmpty()) {
|
||||
const QString jsonFile = qtSupport->targetDataItem(Constants::AndroidDeploySettingsFile, target());
|
||||
if (jsonFile.isEmpty()) {
|
||||
emit addOutput(tr("Cannot find the androiddeploy Json file."), OutputFormat::Stderr);
|
||||
return false;
|
||||
}
|
||||
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, tmp.toString());
|
||||
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, jsonFile);
|
||||
if (androidBuildApkStep && androidBuildApkStep->useMinistro()) {
|
||||
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, QLatin1String("--deployment"));
|
||||
Utils::QtcProcess::addArg(&m_androiddeployqtArgs, QLatin1String("ministro"));
|
||||
|
||||
@@ -69,6 +69,9 @@ namespace {
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
using namespace Utils;
|
||||
|
||||
namespace Android {
|
||||
|
||||
using namespace Internal;
|
||||
@@ -203,9 +206,12 @@ Utils::FileName AndroidManager::dirPath(ProjectExplorer::Target *target)
|
||||
Utils::FileName AndroidManager::manifestSourcePath(ProjectExplorer::Target *target)
|
||||
{
|
||||
if (AndroidQtSupport *androidQtSupport = AndroidManager::androidQtSupport(target)) {
|
||||
Utils::FileName source = androidQtSupport->manifestSourcePath(target);
|
||||
if (!source.isEmpty())
|
||||
return source;
|
||||
const QString packageSource = androidQtSupport->targetDataItem(Android::Constants::AndroidPackageSourceDir, target);
|
||||
if (!packageSource.isEmpty()) {
|
||||
const FileName manifest = FileName::fromUserInput(packageSource + "/AndroidManifest.xml");
|
||||
if (manifest.exists())
|
||||
return manifest;
|
||||
}
|
||||
}
|
||||
return manifestPath(target);
|
||||
}
|
||||
@@ -545,7 +551,8 @@ bool AndroidManager::updateGradleProperties(ProjectExplorer::Target *target)
|
||||
if (!qtSupport)
|
||||
return false;
|
||||
|
||||
Utils::FileName packageSourceDir = qtSupport->packageSourceDir(target);
|
||||
QFileInfo sourceDirInfo(qtSupport->targetDataItem(Constants::AndroidPackageSourceDir, target));
|
||||
FileName packageSourceDir = FileName::fromString(sourceDirInfo.canonicalFilePath());
|
||||
if (!packageSourceDir.appendPath("gradlew").exists())
|
||||
return false;
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
|
||||
#include "android_global.h"
|
||||
|
||||
#include <coreplugin/id.h>
|
||||
|
||||
#include <QObject>
|
||||
#include <QList>
|
||||
|
||||
@@ -40,6 +42,13 @@ namespace ProjectExplorer {
|
||||
namespace Utils { class FileName; }
|
||||
|
||||
namespace Android {
|
||||
namespace Constants {
|
||||
|
||||
const char AndroidPackageSourceDir[] = "AndroidPackageSourceDir";
|
||||
const char AndroidDeploySettingsFile[] = "AndroidDeploySettingsFile";
|
||||
const char AndroidExtraLibs[] = "AndroidExtraLibs";
|
||||
|
||||
} // namespace Constants
|
||||
|
||||
class ANDROID_EXPORT AndroidQtSupport : public QObject
|
||||
{
|
||||
@@ -58,15 +67,13 @@ public:
|
||||
|
||||
virtual bool canHandle(const ProjectExplorer::Target *target) const = 0;
|
||||
virtual QStringList soLibSearchPath(const ProjectExplorer::Target *target) const = 0;
|
||||
virtual QStringList androidExtraLibs(const ProjectExplorer::Target *target) const = 0;
|
||||
virtual QStringList projectTargetApplications(const ProjectExplorer::Target *target) const = 0;
|
||||
virtual Utils::FileName apkPath(const ProjectExplorer::Target *target) const;
|
||||
virtual Utils::FileName androiddeployqtPath(const ProjectExplorer::Target *target) const = 0;
|
||||
virtual Utils::FileName androiddeployJsonPath(const ProjectExplorer::Target *target) const = 0;
|
||||
virtual void manifestSaved(const ProjectExplorer::Target *target) = 0;
|
||||
virtual Utils::FileName manifestSourcePath(const ProjectExplorer::Target *target) = 0;
|
||||
virtual QString deploySettingsFile(const ProjectExplorer::Target *target) const = 0;
|
||||
virtual Utils::FileName packageSourceDir(const ProjectExplorer::Target *target) const = 0;
|
||||
|
||||
virtual QString targetDataItem(Core::Id role, const ProjectExplorer::Target *target) const = 0;
|
||||
virtual QStringList targetData(Core::Id role, const ProjectExplorer::Target *target) const = 0;
|
||||
};
|
||||
|
||||
} // namespace Android
|
||||
|
||||
Reference in New Issue
Block a user