tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

settings.gradle (6432B)


      1 import org.gradle.tooling.events.FinishEvent
      2 import org.gradle.tooling.events.OperationCompletionListener
      3 
      4 pluginManagement {
      5    if (!gradle.root.hasProperty("mozconfig")){
      6        apply from: file('mobile/android/gradle/mozconfig.gradle')
      7    } else {
      8        gradle.ext.mozconfig = gradle.root.mozconfig
      9    }
     10 
     11    repositories {
     12        gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
     13            maven {
     14                url = repository
     15                if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) {
     16                    allowInsecureProtocol = true
     17                }
     18            }
     19        }
     20    }
     21 
     22    includeBuild("${rootProject.projectDir.absolutePath}/mobile/android/android-components/plugins/config")
     23    includeBuild("${rootProject.projectDir.absolutePath}/mobile/android/android-components/plugins/dependencies")
     24    includeBuild("${rootProject.projectDir.absolutePath}/mobile/android/android-components/plugins/publicsuffixlist")
     25    includeBuild("${rootProject.projectDir.absolutePath}/mobile/android/fenix/plugins/apksize")
     26    includeBuild("${rootProject.projectDir.absolutePath}/mobile/android/gradle/plugins/apilint")
     27    includeBuild("${rootProject.projectDir.absolutePath}/mobile/android/gradle/plugins/nimbus-gradle-plugin")
     28 }
     29 
     30 plugins {
     31    id 'mozac.DependenciesPlugin'
     32 }
     33 
     34 // You might think topsrcdir is '.', but that's not true when the Gradle build
     35 // is launched from within IntelliJ.
     36 ext.topsrcdir = rootProject.projectDir.absolutePath
     37 
     38 apply from: "${topsrcdir}/mobile/android/shared-settings.gradle"
     39 apply from: "${topsrcdir}/mobile/android/autopublish-settings.gradle"
     40 
     41 if (gradle.ext.mozconfig.substs.MOZ_APPSERVICES_IN_TREE) {
     42    apply from: "${topsrcdir}/services/app-services/settings.gradle"
     43 }
     44 
     45 // Set the Android SDK location.  This is the *least specific* mechanism, which
     46 // is unfortunate: we'd prefer to use the *most specific* mechanism.  That is,
     47 // local.properties (first 'sdk.dir', then 'android.dir') and then the
     48 // environment variable ANDROID_HOME will override this.  That's unfortunate,
     49 // but it's hard to automatically arrange better.
     50 System.setProperty('android.home', gradle.mozconfig.substs.ANDROID_SDK_ROOT)
     51 
     52 include ':annotations', ':messaging_example', ':port_messaging_example'
     53 include ':geckoview'
     54 include ':exoplayer2'
     55 include ':android-components'
     56 
     57 project(':annotations').projectDir = new File("${gradle.mozconfig.topsrcdir}/mobile/android/annotations")
     58 project(':geckoview').projectDir = new File("${gradle.mozconfig.topsrcdir}/mobile/android/geckoview")
     59 project(':exoplayer2').projectDir = new File("${gradle.mozconfig.topsrcdir}/mobile/android/exoplayer2")
     60 project(':android-components').projectDir = new File("${gradle.mozconfig.topsrcdir}/mobile/android/android-components")
     61 
     62 if (!gradle.mozconfig.substs.MOZ_ANDROID_SUBPROJECT || gradle.mozconfig.substs.MOZ_ANDROID_SUBPROJECT == "fenix") {
     63    include ':fenix'
     64    project(':fenix').projectDir = new File("${gradle.mozconfig.topsrcdir}/mobile/android/fenix/app")
     65 }
     66 if (!gradle.mozconfig.substs.MOZ_ANDROID_SUBPROJECT || gradle.mozconfig.substs.MOZ_ANDROID_SUBPROJECT == "focus") {
     67    include ':focus-android'
     68    project(':focus-android').projectDir = new File("${gradle.mozconfig.topsrcdir}/mobile/android/focus-android/app")
     69 }
     70 if (!gradle.mozconfig.substs.MOZ_ANDROID_SUBPROJECT || gradle.mozconfig.substs.MOZ_ANDROID_SUBPROJECT == "geckoview_example") {
     71    include ':components:samples-browser'
     72    include ':components:samples-compose-browser'
     73    include ':components:samples-toolbar'
     74    include ':geckoview_example'
     75    include ':test_runner'
     76    project(':test_runner').projectDir = new File("${gradle.mozconfig.topsrcdir}/mobile/android/test_runner")
     77    project(':geckoview_example').projectDir = new File("${gradle.mozconfig.topsrcdir}/mobile/android/geckoview_example")
     78    project(':components:samples-browser').projectDir = new File("${gradle.mozconfig.topsrcdir}/mobile/android/android-components/samples/browser")
     79    project(':components:samples-compose-browser').projectDir = new File("${gradle.mozconfig.topsrcdir}/mobile/android/android-components/samples/compose-browser")
     80    project(':components:samples-toolbar').projectDir = new File("${gradle.mozconfig.topsrcdir}/mobile/android/android-components/samples/toolbar")
     81 }
     82 
     83 if (hasProperty("androidFormatLintTest")) {
     84    include ':androidFormatLintTest'
     85    project(':androidFormatLintTest').projectDir = new File("${gradle.mozconfig.topsrcdir}/tools/lint/test/files/android-format")
     86 }
     87 
     88 project(':messaging_example').projectDir = new File('mobile/android/examples/messaging_example/app')
     89 project(':port_messaging_example').projectDir = new File('mobile/android/examples/port_messaging_example/app')
     90 
     91 // Print BUILDSTATUS lines for build profile markers.
     92 //
     93 // Listeners configured here are "more" global: they get events for (isolated)
     94 // projects that use `includeBuild`.
     95 //
     96 // In addition, build events listeners implemented as build services are
     97 // "configuration cache friendly"; task actions (`doFirst`, `doLast`, etc) are
     98 // not.
     99 
    100 def now() {
    101    Instant now = Instant.now();
    102    return BigDecimal.valueOf(now.getNano(), 9).add(now.getEpochSecond());
    103 }
    104 
    105 abstract class BuildStatusListener implements BuildService<BuildStatusListener.Params>, OperationCompletionListener {
    106    interface Params extends BuildServiceParameters {
    107    }
    108 
    109    void onFinish(FinishEvent event) {
    110        def operationResult = event.result
    111        println("BUILDSTATUS ${BigDecimal.valueOf(operationResult.startTime, 3)} START_gradle-task ${event.descriptor.name}")
    112        println("BUILDSTATUS ${BigDecimal.valueOf(operationResult.endTime, 3)} END_gradle-task ${event.descriptor.name}")
    113    }
    114 }
    115 
    116 def shouldPrintBuildStatus = System.getenv("MACH") && !System.getenv("NO_BUILDSTATUS_MESSAGES")
    117 
    118 if (shouldPrintBuildStatus) {
    119    gradle.services.get(BuildEventsListenerRegistry).onTaskCompletion(
    120            gradle.sharedServices.registerIfAbsent("buildStatus", BuildStatusListener.class) {}
    121    )
    122 
    123    gradle.addProjectEvaluationListener(new ProjectEvaluationListener() {
    124        @Override
    125        void beforeEvaluate(Project p) {
    126            println("BUILDSTATUS ${now()} START_gradle:evaluate-project ${p.name}")
    127        }
    128 
    129        @Override
    130        void afterEvaluate(Project p, ProjectState projectState) {
    131            println("BUILDSTATUS ${now()} END_gradle:evaluate-project ${p.name}")
    132        }
    133    })
    134 }