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