author Phil Ringnalda <>
Fri, 01 Sep 2017 22:28:49 -0700
changeset 378436 3e55e4de032f16f2e6cda431c602d600f2d87f75
parent 365484 61edb6b490719686c8e9f8e3bf4bdd401aa1c2b5
child 388396 31f87080283b1dc558f3781e0ec2ca59d102de82
permissions -rw-r--r--
Backed out 14 changesets (bug 1322746) for unexpected passes on Win8 Backed out changeset a10fcb139377 (bug 1322746) Backed out changeset 992b2173bda7 (bug 1322746) Backed out changeset 88a28c4ebc6b (bug 1322746) Backed out changeset c5bd6bbf5653 (bug 1322746) Backed out changeset 882cd05b7064 (bug 1322746) Backed out changeset 87e7f25a089c (bug 1322746) Backed out changeset 2ed5b75a6f5e (bug 1322746) Backed out changeset 6d1dd5775850 (bug 1322746) Backed out changeset b97bb7a2e555 (bug 1322746) Backed out changeset ab8352ffd2ca (bug 1322746) Backed out changeset a4901ec3c327 (bug 1322746) Backed out changeset 61c7478af98c (bug 1322746) Backed out changeset b202e9377e24 (bug 1322746) Backed out changeset cf739e7c76b8 (bug 1322746) MozReview-Commit-ID: CesCbY4ABvS

// 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)

// 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,
// (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")

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