From 893c0e9b6701762596d7bb1305af99070a0c12af Mon Sep 17 00:00:00 2001 From: Andrew Grieve Date: Mon, 19 Jan 2015 21:56:46 -0500 Subject: [PATCH] CB-8255 Pass `arch` to gradle regardless of `cdvBuildMultipleApks` This also pushes the "which target to build" logic into gradle, since build.js doesn't actually know the value of `cdvBuildMultipleApks`. --- bin/templates/cordova/lib/build.js | 23 ++++++++--------------- bin/templates/project/build.gradle | 24 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/bin/templates/cordova/lib/build.js b/bin/templates/cordova/lib/build.js index f2d60ae0..e441caa7 100644 --- a/bin/templates/cordova/lib/build.js +++ b/bin/templates/cordova/lib/build.js @@ -177,20 +177,16 @@ var builders = { }, gradle: { getArgs: function(cmd, arch, extraArgs) { - if (arch == 'arm' && cmd == 'debug') { - cmd = 'assembleArmv7Debug'; - } else if (arch == 'arm' && cmd == 'release') { - cmd = 'assembleArmv7Release'; - } else if (arch == 'x86' && cmd == 'debug') { - cmd = 'assembleX86Debug'; - } else if (arch == 'x86' && cmd == 'release') { - cmd = 'assembleX86Release'; + if (cmd == 'release') { + cmd = 'cdvBuildRelease'; } else if (cmd == 'debug') { - cmd = 'assembleDebug'; - } else if (cmd == 'release') { - cmd = 'assembleRelease'; + cmd = 'cdvBuildDebug'; } var args = [cmd, '-b', path.join(ROOT, 'build.gradle')]; + if (arch) { + args.push('-PcdvBuildArch=' + arch); + } + // 10 seconds -> 6 seconds args.push('-Dorg.gradle.daemon=true'); args.push.apply(args, extraArgs); @@ -361,10 +357,7 @@ function parseOpts(options, resolvedTarget) { } } - var multiApk = ret.buildMethod == 'gradle' && process.env['BUILD_MULTIPLE_APKS']; - if (multiApk && !/0|false|no/i.exec(multiApk)) { - ret.arch = resolvedTarget && resolvedTarget.arch; - } + ret.arch = resolvedTarget && resolvedTarget.arch; return ret; } diff --git a/bin/templates/project/build.gradle b/bin/templates/project/build.gradle index adbee75f..9b7f8dcf 100644 --- a/bin/templates/project/build.gradle +++ b/bin/templates/project/build.gradle @@ -86,6 +86,10 @@ ext { if (!project.hasProperty('cdvDebugSigningPropertiesFile')) { cdvDebugSigningPropertiesFile = null } + // Set by build.js script. + if (!project.hasProperty('cdvBuildArch')) { + cdvBuildArch = null + } } def hasBuildExtras = file('build-extras.gradle').exists() @@ -93,6 +97,26 @@ if (hasBuildExtras) { apply from: 'build-extras.gradle' } +def computeBuildTargetName(debugBuild) { + def ret = 'assemble' + if (cdvBuildMultipleApks && cdvBuildArch) { + def arch = cdvBuildArch == 'arm' ? 'armv7' : cdvBuildArch + ret += '' + arch.toUpperCase().charAt(0) + arch.substring(1); + } + return ret + (debugBuild ? 'Debug' : 'Release') +} + +// Make cdvBuild a task that depends on the debug/arch-sepecific task. +task cdvBuildDebug +cdvBuildDebug.dependsOn { + return computeBuildTargetName(true) +} + +task cdvBuildRelease +cdvBuildRelease.dependsOn { + return computeBuildTargetName(false) +} + // PLUGIN GRADLE EXTENSIONS START // PLUGIN GRADLE EXTENSIONS END