buildDir "${topobjdir}/gradle/build/mobile/android/bouncer" apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion mozconfig.substs.ANDROID_BUILD_TOOLS_VERSION 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 } }