mirror of https://github.com/roytam1/UXP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.5 KiB
55 lines
2.5 KiB
// You might think topsrcdir is '.', but that's not true when the Gradle build |
|
// is launched from within IntelliJ. |
|
def topsrcdir = rootProject.projectDir.absolutePath |
|
|
|
def commandLine = ["${topsrcdir}/mach", "environment", "--format", "json", "--verbose"] |
|
def proc = commandLine.execute(null, new File(topsrcdir)) |
|
def standardOutput = new ByteArrayOutputStream() |
|
proc.consumeProcessOutput(standardOutput, standardOutput) |
|
proc.waitFor() |
|
|
|
// Only show the output if something went wrong. |
|
if (proc.exitValue() != 0) { |
|
throw new GradleException("Process '${commandLine}' finished with non-zero exit value ${proc.exitValue()}:\n\n${standardOutput.toString()}") |
|
} |
|
|
|
import groovy.json.JsonSlurper |
|
def slurper = new JsonSlurper() |
|
def json = slurper.parseText(standardOutput.toString()) |
|
|
|
if (json.substs.MOZ_BUILD_APP != 'mobile/android') { |
|
throw new GradleException("Building with Gradle is only supported for Fennec, i.e., MOZ_BUILD_APP == 'mobile/android'.") |
|
} |
|
|
|
// Set the Android SDK location. This is the *least specific* mechanism, which |
|
// is unfortunate: we'd prefer to use the *most specific* mechanism. That is, |
|
// local.properties (first 'sdk.dir', then 'android.dir') and then the |
|
// environment variable ANDROID_HOME will override this. That's unfortunate, |
|
// but it's hard to automatically arrange better. |
|
System.setProperty('android.home', json.substs.ANDROID_SDK_ROOT) |
|
|
|
include ':app' |
|
include ':geckoview' |
|
include ':geckoview_example' |
|
include ':omnijar' |
|
include ':thirdparty' |
|
|
|
project(':app').projectDir = new File("${json.topsrcdir}/mobile/android/app") |
|
project(':geckoview').projectDir = new File("${json.topsrcdir}/mobile/android/geckoview") |
|
project(':geckoview_example').projectDir = new File("${json.topsrcdir}/mobile/android/geckoview_example") |
|
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). |
|
// We use this ext property to pass the per-object-directory mozconfig |
|
// between scripts. This lets us execute set-up code before we gradle |
|
// tries to configure the project even once, and as a side benefit |
|
// saves invoking |mach environment| multiple times. |
|
gradle.ext.mozconfig = json
|
|
|