Skip to content

Commit

Permalink
Bug 1234629 - Post: Add Gradle support for bouncer. r=me
Browse files Browse the repository at this point in the history
  • Loading branch information
ncalexan committed Jan 26, 2016
1 parent 5c3885f commit b2e7735
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 1 deletion.
4 changes: 3 additions & 1 deletion mobile/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@ android {
main {
manifest.srcFile "${topobjdir}/mobile/android/base/AndroidManifest.xml"
assets {
if (mozconfig.substs.MOZ_ANDROID_DISTRIBUTION_DIRECTORY) {
if (mozconfig.substs.MOZ_ANDROID_DISTRIBUTION_DIRECTORY && !mozconfig.substs.MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER) {
// If we are packaging the bouncer, it will have the distribution, so don't put
// it in the main APK as well.
srcDir "${mozconfig.substs.MOZ_ANDROID_DISTRIBUTION_DIRECTORY}/assets"
}
}
Expand Down
5 changes: 5 additions & 0 deletions mobile/android/bouncer/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,9 @@ manifest_FLAGS += \
-DMOZ_ANDROID_SHARED_FXACCOUNT_TYPE="$(MOZ_ANDROID_SHARED_FXACCOUNT_TYPE)" \
$(NULL)

# Targets built very early during a Gradle build.
gradle-targets: $(abspath AndroidManifest.xml)

.PHONY: gradle-targets

libs:: $(ANDROID_APK_NAME).apk
76 changes: 76 additions & 0 deletions mobile/android/bouncer/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
buildDir "${topobjdir}/gradle/build/mobile/android/bouncer"

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"

defaultConfig {
targetSdkVersion 23
minSdkVersion 15
applicationId mozconfig.substs.ANDROID_PACKAGE_NAME
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}

dexOptions {
javaMaxHeapSize "2g"
}

lintOptions {
abortOnError false
}

buildTypes {
release {
minifyEnabled false
}
}

sourceSets {
main {
manifest.srcFile "${topobjdir}/mobile/android/bouncer/AndroidManifest.xml"
assets {
if (mozconfig.substs.MOZ_ANDROID_DISTRIBUTION_DIRECTORY) {
srcDir "${mozconfig.substs.MOZ_ANDROID_DISTRIBUTION_DIRECTORY}/assets"
}
}
java {
srcDir 'java'
}
res {
srcDir "${topsrcdir}/${mozconfig.substs.MOZ_BRANDING_DIRECTORY}/res" // For the icon.
srcDir 'res'
}
}
}
}

task generateCodeAndResources(type:Exec) {
workingDir "${topobjdir}"

commandLine mozconfig.substs.GMAKE
args '-C'
args "${topobjdir}/mobile/android/bouncer"
args 'gradle-targets'

// Only show the output if something went wrong.
ignoreExitValue = true
standardOutput = new ByteArrayOutputStream()
errorOutput = standardOutput
doLast {
if (execResult.exitValue != 0) {
throw new GradleException("Process '${commandLine}' finished with non-zero exit value ${execResult.exitValue}:\n\n${standardOutput.toString()}")
}
}
}

afterEvaluate {
android.applicationVariants.all {
preBuild.dependsOn generateCodeAndResources
}
}
5 changes: 5 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ project(':base').projectDir = new File("${json.topsrcdir}/mobile/android/app/bas
project(':omnijar').projectDir = new File("${json.topsrcdir}/mobile/android/app/omnijar")
project(':thirdparty').projectDir = new File("${json.topsrcdir}/mobile/android/thirdparty")

if (json.substs.MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER) {
include ':bouncer'
project(':bouncer').projectDir = new File("${json.topsrcdir}/mobile/android/bouncer")
}

// The Gradle instance is shared between settings.gradle and all the
// other build.gradle files (see
// http://forums.gradle.org/gradle/topics/define_extension_properties_from_settings_xml).
Expand Down

0 comments on commit b2e7735

Please sign in to comment.