forked from qt-creator/qt-creator
QmakeAndroid: Introduce two new functions in QmakeAndroidQtSupport
... and use them to remove direct dependency of the QmakeAndroidBuildApkStep on qmake, so it can be merged into the base AndroidApkStep, leaving less build system dependent code in the QmakeAndroid plugin. Change-Id: Id7c6a9cb0e51d6b38850a0ad0e0e83a602f53338 Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
This commit is contained in:
@@ -148,7 +148,8 @@ bool AndroidBuildApkStep::init(QList<const BuildStep *> &earlierSteps)
|
||||
JavaParser *parser = new JavaParser;
|
||||
parser->setProjectFileList(Utils::transform(target()->project()->files(ProjectExplorer::Project::AllFiles),
|
||||
&Utils::FileName::toString));
|
||||
parser->setSourceDirectory(androidPackageSourceDir());
|
||||
|
||||
parser->setSourceDirectory(AndroidManager::androidQtSupport(target())->packageSourceDir(target()));
|
||||
parser->setBuildDirectory(Utils::FileName::fromString(bc->buildDirectory().appendPath(Constants::ANDROID_BUILDDIRECTORY).toString()));
|
||||
setOutputParser(parser);
|
||||
|
||||
|
||||
@@ -72,8 +72,6 @@ public:
|
||||
QString buildTargetSdk() const;
|
||||
void setBuildTargetSdk(const QString &sdk);
|
||||
|
||||
virtual Utils::FileName androidPackageSourceDir() const = 0;
|
||||
|
||||
protected:
|
||||
Q_INVOKABLE void showInGraphicalShell();
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
#include "androiddeployqtstep.h"
|
||||
#include "androidqtsupport.h"
|
||||
#include "androidqtversion.h"
|
||||
#include "androidbuildapkstep.h"
|
||||
#include "androidavdmanager.h"
|
||||
#include "androidsdkmanager.h"
|
||||
|
||||
@@ -542,13 +541,15 @@ bool AndroidManager::updateGradleProperties(ProjectExplorer::Target *target)
|
||||
if (!version)
|
||||
return false;
|
||||
|
||||
AndroidBuildApkStep *buildApkStep
|
||||
= AndroidGlobal::buildStep<AndroidBuildApkStep>(target->activeBuildConfiguration());
|
||||
|
||||
if (!buildApkStep || !buildApkStep->androidPackageSourceDir().appendPath(QLatin1String("gradlew")).exists())
|
||||
AndroidQtSupport *qtSupport = androidQtSupport(target);
|
||||
if (!qtSupport)
|
||||
return false;
|
||||
|
||||
Utils::FileName wrapperProps(buildApkStep->androidPackageSourceDir());
|
||||
Utils::FileName packageSourceDir = qtSupport->packageSourceDir(target);
|
||||
if (!packageSourceDir.appendPath("gradlew").exists())
|
||||
return false;
|
||||
|
||||
Utils::FileName wrapperProps = packageSourceDir;
|
||||
wrapperProps.appendPath(QLatin1String("gradle/wrapper/gradle-wrapper.properties"));
|
||||
if (wrapperProps.exists()) {
|
||||
GradleProperties wrapperProperties = readGradleProperties(wrapperProps.toString());
|
||||
@@ -562,10 +563,10 @@ bool AndroidManager::updateGradleProperties(ProjectExplorer::Target *target)
|
||||
|
||||
GradleProperties localProperties;
|
||||
localProperties["sdk.dir"] = AndroidConfigurations::currentConfig().sdkLocation().toString().toLocal8Bit();
|
||||
if (!mergeGradleProperties(buildApkStep->androidPackageSourceDir().appendPath(QLatin1String("local.properties")).toString(), localProperties))
|
||||
if (!mergeGradleProperties(packageSourceDir.appendPath("local.properties").toString(), localProperties))
|
||||
return false;
|
||||
|
||||
QString gradlePropertiesPath = buildApkStep->androidPackageSourceDir().appendPath(QLatin1String("gradle.properties")).toString();
|
||||
QString gradlePropertiesPath = packageSourceDir.appendPath("gradle.properties").toString();
|
||||
GradleProperties gradleProperties = readGradleProperties(gradlePropertiesPath);
|
||||
gradleProperties["qt5AndroidDir"] = version->qmakeProperty("QT_INSTALL_PREFIX")
|
||||
.append(QLatin1String("/src/android/java")).toLocal8Bit();
|
||||
|
||||
@@ -65,6 +65,8 @@ public:
|
||||
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;
|
||||
};
|
||||
|
||||
} // namespace Android
|
||||
|
||||
Reference in New Issue
Block a user