tor-browser

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

commit d47799cfcf2ad693ec82af011bbf69d24bd90a7d
parent 7afdabb9469aff8db7b5aafc76ab8ac3c4e9a95d
Author: Alex Hochheiden <ahochheiden@mozilla.com>
Date:   Sat, 15 Nov 2025 00:17:18 +0000

Bug 1947850 - Add explicit outputFile for `:verifyGleanVersion` and move dependency from `:geckoview:preBuild` to `generateSDKBindings` and `generateJNIWrappers` r=nalexander,geckoview-reviewers

Differential Revision: https://phabricator.services.mozilla.com/D271259

Diffstat:
Mbuild.gradle | 10+++++++---
Mbuild/test/python/test_android_gradle_build.py | 16++++++++++++++++
Mmobile/android/geckoview/build.gradle | 3+--
Mmobile/android/gradle/with_gecko_binaries.gradle | 1+
4 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/build.gradle b/build.gradle @@ -54,8 +54,8 @@ abstract class VerifyGleanVersionTask extends DefaultTask { @Input String expectedVersion = project.ext.gleanVersion - @OutputFiles - FileCollection outputFiles = project.objects.fileCollection() + @OutputFile + final RegularFileProperty outputFile = project.objects.fileProperty() @TaskAction void verifyGleanVersion() { @@ -66,6 +66,8 @@ abstract class VerifyGleanVersionTask extends DefaultTask { } else { logger.lifecycle("verifyGleanVersion> expected version matches found version '${foundVersion}'") } + + outputFile.get().asFile.text = "glean-${foundVersion}" } // Parses the Cargo.lock and returns the version for the given package name. @@ -86,7 +88,9 @@ abstract class VerifyGleanVersionTask extends DefaultTask { } } -tasks.register("verifyGleanVersion", VerifyGleanVersionTask) +tasks.register("verifyGleanVersion", VerifyGleanVersionTask) { + outputFile.convention(layout.buildDirectory.file("glean/verifyGleanVersion.marker")) +} allprojects { // Expose the per-object-directory configuration to all projects. diff --git a/build/test/python/test_android_gradle_build.py b/build/test/python/test_android_gradle_build.py @@ -315,5 +315,21 @@ def test_focus_build(objdir, mozconfig, run_mach): assert_all_task_statuses(objdir, ["UP-TO-DATE", "SKIPPED"]) +def test_android_export(objdir, mozconfig, run_mach): + # To ensure a consistent state, we delete the marker file + # to force the :verifyGleanVersion task to re-run. + marker_file = objdir / "gradle" / "build" / "glean" / "verifyGleanVersion.marker" + marker_file.unlink(missing_ok=True) + + bindings_dir = Path(topsrcdir) / "widget" / "android" / "bindings" + inputs = list(bindings_dir.glob("*-classes.txt")) + + assert_success(*run_mach(["android", "export"] + [str(f) for f in inputs])) + assert_ordered_task_outcomes(objdir, [(":verifyGleanVersion", "EXECUTED")]) + + assert_success(*run_mach(["android", "export"] + [str(f) for f in inputs])) + assert_ordered_task_outcomes(objdir, [(":verifyGleanVersion", "UP-TO-DATE")]) + + if __name__ == "__main__": mozunit.main() diff --git a/mobile/android/geckoview/build.gradle b/mobile/android/geckoview/build.gradle @@ -545,10 +545,9 @@ tasks.register("generateSDKBindings", JavaExec) { outputs.dir("${topobjdir}/widget/android/bindings") dependsOn project(':annotations').jar + dependsOn rootProject.verifyGleanVersion } -preBuild.dependsOn(":verifyGleanVersion") - apiLint { // TODO: Change this to `org` after hiding org.mozilla.gecko packageFilter = 'org.mozilla.geckoview' diff --git a/mobile/android/gradle/with_gecko_binaries.gradle b/mobile/android/gradle/with_gecko_binaries.gradle @@ -72,6 +72,7 @@ ext.configureLibraryVariantWithJNIWrappers = { variant, module -> dependsOn jarTask dependsOn annotationProcessorsJarTask + dependsOn rootProject.verifyGleanVersion } } }