Bug 1234629 - Post: Add Gradle support for bouncer. r=me

--HG--
extra : commitid : 6jL7OTORPHp
extra : rebase_source : 8151fcd1768b7bfd0a4386dd68c8910894cae892
extra : histedit_source : 673771296f66c8ec5885fef25999e5e195a1767e
This commit is contained in:
Nick Alexander 2016-01-26 11:54:00 -08:00
Родитель 10ab42be96
Коммит 242ce6bb3e
4 изменённых файлов: 89 добавлений и 1 удалений

Просмотреть файл

@ -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"
}
}

Просмотреть файл

@ -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

Просмотреть файл

@ -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
}
}

Просмотреть файл

@ -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).