summaryrefslogtreecommitdiffstats
path: root/mobile/android/fenix/settings.gradle
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
commitd8bbc7858622b6d9c278469aab701ca0b609cddf (patch)
treeeff41dc61d9f714852212739e6b3738b82a2af87 /mobile/android/fenix/settings.gradle
parentReleasing progress-linux version 125.0.3-1~progress7.99u1. (diff)
downloadfirefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.tar.xz
firefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.zip
Merging upstream version 126.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mobile/android/fenix/settings.gradle')
-rw-r--r--mobile/android/fenix/settings.gradle141
1 files changed, 141 insertions, 0 deletions
diff --git a/mobile/android/fenix/settings.gradle b/mobile/android/fenix/settings.gradle
new file mode 100644
index 0000000000..9c1fa496b3
--- /dev/null
+++ b/mobile/android/fenix/settings.gradle
@@ -0,0 +1,141 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pluginManagement {
+ apply from: file('../gradle/mozconfig.gradle')
+
+ repositories {
+ gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
+ maven {
+ url repository
+ if (gradle.mozconfig.substs.ALLOW_INSECURE_GRADLE_REPOSITORIES) {
+ allowInsecureProtocol = true
+ }
+ }
+ }
+ }
+
+ includeBuild("../android-components/plugins/publicsuffixlist")
+ includeBuild("../android-components/plugins/dependencies")
+ includeBuild("../android-components/plugins/config")
+ includeBuild("./plugins/apksize")
+ includeBuild("./plugins/fenixdependencies")
+}
+
+plugins {
+ id 'ApkSizePlugin'
+ id 'FenixDependenciesPlugin'
+ id "mozac.ConfigPlugin"
+ id 'mozac.DependenciesPlugin'
+}
+
+ext.topsrcdir = rootProject.projectDir.absolutePath.minus("mobile/android/fenix")
+
+apply from: file('../shared-settings.gradle')
+
+include ':app'
+include ':mozilla-detekt-rules'
+include ':mozilla-lint-rules'
+include ':benchmark'
+
+gradle.projectsLoaded { ->
+ // Disables A-C tests and lint when building Fenix.
+ gradle.allprojects { project ->
+ if (project.projectDir.absolutePath.contains("/android-components/")) {
+ project.tasks.withType(Test).configureEach {
+ enabled = false
+ }
+ project.tasks.configureEach { task ->
+ if (task.name.contains("lint")) {
+ task.enabled = false
+ }
+ }
+ }
+
+ def appServicesSrcDir = null
+ if (gradle.hasProperty('localProperties.autoPublish.application-services.dir')) {
+ appServicesSrcDir = gradle.getProperty('localProperties.autoPublish.application-services.dir')
+ } else if (gradle.hasProperty('localProperties.branchBuild.application-services.dir')) {
+ appServicesSrcDir = gradle.getProperty('localProperties.branchBuild.application-services.dir')
+ }
+ if (appServicesSrcDir) {
+ if (appServicesSrcDir.startsWith("/")) {
+ apply from: "${appServicesSrcDir}/build-scripts/substitute-local-appservices.gradle"
+ } else {
+ apply from: "${rootProject.projectDir}/${appServicesSrcDir}/build-scripts/substitute-local-appservices.gradle"
+ }
+ }
+ }
+}
+
+def log(message) {
+ logger.lifecycle("[settings] ${message}")
+}
+
+def runCmd(cmd, workingDir, successMessage, captureStdout=true) {
+ def proc = cmd.execute(null, new File(workingDir))
+ def standardOutput = captureStdout ? new ByteArrayOutputStream() : System.out
+ proc.consumeProcessOutput(standardOutput, System.err)
+ proc.waitFor()
+
+ if (proc.exitValue() != 0) {
+ throw new GradleException("Process '${cmd}' finished with non-zero exit value ${proc.exitValue()}");
+ } else {
+ log(successMessage)
+ }
+ return captureStdout ? standardOutput : null
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Local Development overrides
+//////////////////////////////////////////////////////////////////////////
+
+Properties localProperties = null
+String settingAppServicesPath = "autoPublish.application-services.dir"
+String settingGleanPath = "autoPublish.glean.dir"
+
+if (file('local.properties').canRead()) {
+ localProperties = new Properties()
+ localProperties.load(file('local.properties').newDataInputStream())
+ log('Loaded local.properties')
+} else {
+ log('Missing local.properties; see https://github.com/mozilla-mobile/fenix/blob/main/README.md#local-properties-helpers for instructions.')
+}
+
+if (localProperties != null) {
+ localProperties.each { prop ->
+ gradle.ext.set("localProperties.${prop.key}", prop.value)
+ }
+
+ String appServicesLocalPath = localProperties.getProperty(settingAppServicesPath)
+
+ if (appServicesLocalPath != null) {
+ log("Enabling automatic publication of application-services from: $appServicesLocalPath")
+ // Windows can't execute .py files directly, so we assume a "manually installed" python,
+ // which comes with a "py" launcher and respects the shebang line to specify the version.
+ def publishAppServicesCmd = [];
+ if (System.properties['os.name'].toLowerCase().contains('windows')) {
+ publishAppServicesCmd << "py";
+ }
+ publishAppServicesCmd << "./automation/publish_to_maven_local_if_modified.py";
+ runCmd(publishAppServicesCmd, appServicesLocalPath, "Published application-services for local development.", false)
+ } else {
+ log("Disabled auto-publication of application-services. Enable it by settings '$settingAppServicesPath' in local.properties")
+ }
+
+ String gleanLocalPath = localProperties.getProperty(settingGleanPath)
+
+ if (gleanLocalPath != null) {
+ log("Enabling automatic publication of Glean from: $gleanLocalPath")
+ // As above, hacks to execute .py files on Windows.
+ def publishGleanCmd = [];
+ if (System.properties['os.name'].toLowerCase().contains('windows')) {
+ publishGleanCmd << "py";
+ }
+ publishGleanCmd << "./build-scripts/publish_to_maven_local_if_modified.py";
+ runCmd(publishGleanCmd, gleanLocalPath, "Published Glean for local development.", false)
+ } else {
+ log("Disabled auto-publication of Glean. Enable it by settings '$settingGleanPath' in local.properties")
+ }
+}