forked from qt-creator/qt-creator
Android: allow passing apps arguments via manifest on non-debug mode
Uses 00a1e5da7e1aea373a7e6be1d51e1573ff167dd8. Task-number: QTCREATORBUG-23712 Change-Id: I9a7e134420b608815589578f3851abf150674fd3 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
This commit is contained in:
@@ -65,6 +65,7 @@ const char ANDROID_ARCHITECTURE[] = "Android.Architecture";
|
|||||||
const char ANDROID_PACKAGE_SOURCE_DIR[] = "AndroidPackageSourceDir";
|
const char ANDROID_PACKAGE_SOURCE_DIR[] = "AndroidPackageSourceDir";
|
||||||
const char ANDROID_EXTRA_LIBS[] = "AndroidExtraLibs";
|
const char ANDROID_EXTRA_LIBS[] = "AndroidExtraLibs";
|
||||||
const char ANDROID_ABIS[] = "ANDROID_ABIS";
|
const char ANDROID_ABIS[] = "ANDROID_ABIS";
|
||||||
|
const char ANDROID_APPLICATION_ARGUMENTS[] = "ANDROID_APPLICATION_ARGUMENTS";
|
||||||
|
|
||||||
const char ANDROID_PACKAGENAME[] = "Android.PackageName";
|
const char ANDROID_PACKAGENAME[] = "Android.PackageName";
|
||||||
const char ANDROID_PACKAGE_INSTALLATION_STEP_ID[]
|
const char ANDROID_PACKAGE_INSTALLATION_STEP_ID[]
|
||||||
|
@@ -112,7 +112,16 @@ AndroidRunConfiguration::AndroidRunConfiguration(Target *target, Utils::Id id)
|
|||||||
auto envAspect = addAspect<EnvironmentAspect>();
|
auto envAspect = addAspect<EnvironmentAspect>();
|
||||||
envAspect->addSupportedBaseEnvironment(tr("Clean Environment"), {});
|
envAspect->addSupportedBaseEnvironment(tr("Clean Environment"), {});
|
||||||
|
|
||||||
addAspect<ArgumentsAspect>();
|
auto extraAppArgsAspect = addAspect<ArgumentsAspect>();
|
||||||
|
|
||||||
|
connect(extraAppArgsAspect, &ArgumentsAspect::argumentsChanged, this, [target](const QString &arguments) {
|
||||||
|
if (target->buildConfigurations().first()->buildType() == BuildConfiguration::BuildType::Release) {
|
||||||
|
const QString buildKey = target->activeBuildKey();
|
||||||
|
target->buildSystem()->setExtraData(buildKey,
|
||||||
|
Android::Constants::ANDROID_APPLICATION_ARGUMENTS,
|
||||||
|
arguments);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
auto amStartArgsAspect = addAspect<StringAspect>();
|
auto amStartArgsAspect = addAspect<StringAspect>();
|
||||||
amStartArgsAspect->setId(Constants::ANDROID_AMSTARTARGS);
|
amStartArgsAspect->setId(Constants::ANDROID_AMSTARTARGS);
|
||||||
|
@@ -286,7 +286,9 @@ AndroidRunnerWorker::AndroidRunnerWorker(RunWorker *runner, const QString &packa
|
|||||||
qCDebug(androidRunWorkerLog) << "Environment variables for the app"
|
qCDebug(androidRunWorkerLog) << "Environment variables for the app"
|
||||||
<< m_extraEnvVars.toStringList();
|
<< m_extraEnvVars.toStringList();
|
||||||
|
|
||||||
|
if (target->buildConfigurations().first()->buildType() != BuildConfiguration::BuildType::Release) {
|
||||||
m_extraAppParams = runControl->runnable().commandLineArguments;
|
m_extraAppParams = runControl->runnable().commandLineArguments;
|
||||||
|
}
|
||||||
|
|
||||||
if (auto aspect = runControl->aspect(Constants::ANDROID_AMSTARTARGS)) {
|
if (auto aspect = runControl->aspect(Constants::ANDROID_AMSTARTARGS)) {
|
||||||
const QString startArgs = static_cast<StringAspect *>(aspect)->value();
|
const QString startArgs = static_cast<StringAspect *>(aspect)->value();
|
||||||
|
@@ -136,6 +136,9 @@ QVariant CMakeTargetNode::data(Utils::Id role) const
|
|||||||
if (role == Android::Constants::AndroidExtraLibs)
|
if (role == Android::Constants::AndroidExtraLibs)
|
||||||
return value("ANDROID_EXTRA_LIBS");
|
return value("ANDROID_EXTRA_LIBS");
|
||||||
|
|
||||||
|
if (role == Android::Constants::ANDROID_APPLICATION_ARGUMENTS)
|
||||||
|
return value("QT_ANDROID_APPLICATION_ARGUMENTS");
|
||||||
|
|
||||||
if (role == Android::Constants::AndroidArch)
|
if (role == Android::Constants::AndroidArch)
|
||||||
return value("ANDROID_ABI");
|
return value("ANDROID_ABI");
|
||||||
|
|
||||||
|
@@ -436,6 +436,8 @@ bool QmakeProFileNode::setData(Utils::Id role, const QVariant &value) const
|
|||||||
return pro->setProVariable("ANDROID_PACKAGE_SOURCE_DIR", {value.toString()}, scope, flags);
|
return pro->setProVariable("ANDROID_PACKAGE_SOURCE_DIR", {value.toString()}, scope, flags);
|
||||||
if (role == Android::Constants::ANDROID_ABIS)
|
if (role == Android::Constants::ANDROID_ABIS)
|
||||||
return pro->setProVariable("ANDROID_ABIS", {value.toStringList()}, scope, flags);
|
return pro->setProVariable("ANDROID_ABIS", {value.toStringList()}, scope, flags);
|
||||||
|
if (role == Android::Constants::ANDROID_APPLICATION_ARGUMENTS)
|
||||||
|
return pro->setProVariable("ANDROID_APPLICATION_ARGUMENTS", {value.toString()}, scope, flags);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@@ -1589,6 +1589,7 @@ QmakeEvalResult *QmakeProFile::evaluate(const QmakeEvalInput &input)
|
|||||||
result->newVarValues[Variable::AndroidDeploySettingsFile] = exactReader->values(QLatin1String("ANDROID_DEPLOYMENT_SETTINGS_FILE"));
|
result->newVarValues[Variable::AndroidDeploySettingsFile] = exactReader->values(QLatin1String("ANDROID_DEPLOYMENT_SETTINGS_FILE"));
|
||||||
result->newVarValues[Variable::AndroidPackageSourceDir] = exactReader->values(QLatin1String("ANDROID_PACKAGE_SOURCE_DIR"));
|
result->newVarValues[Variable::AndroidPackageSourceDir] = exactReader->values(QLatin1String("ANDROID_PACKAGE_SOURCE_DIR"));
|
||||||
result->newVarValues[Variable::AndroidAbis] = exactReader->values(QLatin1String("ANDROID_ABIS"));
|
result->newVarValues[Variable::AndroidAbis] = exactReader->values(QLatin1String("ANDROID_ABIS"));
|
||||||
|
result->newVarValues[Variable::AndroidApplicationArguments] = exactReader->values(QLatin1String("ANDROID_APPLICATION_ARGUMENTS"));
|
||||||
result->newVarValues[Variable::AndroidExtraLibs] = exactReader->values(QLatin1String("ANDROID_EXTRA_LIBS"));
|
result->newVarValues[Variable::AndroidExtraLibs] = exactReader->values(QLatin1String("ANDROID_EXTRA_LIBS"));
|
||||||
result->newVarValues[Variable::AppmanPackageDir] = exactReader->values(QLatin1String("AM_PACKAGE_DIR"));
|
result->newVarValues[Variable::AppmanPackageDir] = exactReader->values(QLatin1String("AM_PACKAGE_DIR"));
|
||||||
result->newVarValues[Variable::AppmanManifest] = exactReader->values(QLatin1String("AM_MANIFEST"));
|
result->newVarValues[Variable::AppmanManifest] = exactReader->values(QLatin1String("AM_MANIFEST"));
|
||||||
|
@@ -101,6 +101,7 @@ enum class Variable {
|
|||||||
AndroidAbis,
|
AndroidAbis,
|
||||||
AndroidPackageSourceDir,
|
AndroidPackageSourceDir,
|
||||||
AndroidExtraLibs,
|
AndroidExtraLibs,
|
||||||
|
AndroidApplicationArguments,
|
||||||
AppmanPackageDir,
|
AppmanPackageDir,
|
||||||
AppmanManifest,
|
AppmanManifest,
|
||||||
IsoIcons,
|
IsoIcons,
|
||||||
|
Reference in New Issue
Block a user