Files
sousa-gecko/mobile/android/android-components/samples/browser/build.gradle
T
Ryan VanderMeulen c9be87198e Bug 2044785 - Update AndroidX Core to version 1.19.0. r=android-reviewers,ai4dev-reviewers,adhingra,suhaib
AndroidX Core 1.19 folds the core-ktx artifact into core, so drop the androidx-core-ktx catalog
alias and move consumers from libs.androidx.core.ktx to libs.androidx.core.

Differential Revision: https://phabricator.services.mozilla.com/D309650
2026-06-30 19:00:44 +00:00

187 lines
7.8 KiB
Groovy

/* 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/. */
import static org.mozilla.conventions.BuildConfigKt.updateExtensionVersion
plugins {
id 'com.android.application'
alias(libs.plugins.dependency.analysis)
alias(libs.plugins.kotlin.compose)
}
android {
compileSdk { version = release(config.compileSdkMajorVersion) { minorApiLevel = config.compileSdkMinorVersion } }
defaultConfig {
applicationId "org.mozilla.samples.browser"
minSdk config.minSdkVersion
targetSdk config.targetSdkVersion
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArgument "clearPackageData", "true"
testInstrumentationRunnerArgument "listener", "leakcanary.FailTestOnLeakRunListener"
}
buildTypes {
release {
minifyEnabled = false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
flavorDimensions += "engine"
productFlavors {
gecko {
dimension "engine"
}
// WebView
system {
dimension "engine"
}
}
buildFeatures {
viewBinding = true
compose = true
}
namespace = 'org.mozilla.samples.browser'
}
androidComponents {
beforeVariants(selector().withBuildType("release")) { variantBuilder ->
// This is a sample app that we are not releasing. Save some time and do not build
// release versions.
variantBuilder.enable = false
}
}
tasks.register("updateBorderifyExtensionVersion", Copy) { task ->
updateExtensionVersion(task, 'src/main/assets/extensions/borderify', rootProject.ext.config.componentsVersion)
}
tasks.register("updateTestExtensionVersion", Copy) { task ->
updateExtensionVersion(task, 'src/main/assets/extensions/test', rootProject.ext.config.componentsVersion)
}
// Make sure DAGP asset-source exploding happens after ExtensionVersion tasks
tasks.matching { it.name.startsWith("explodeAssetSource") }.configureEach { t ->
t.dependsOn(tasks.named("updateBorderifyExtensionVersion"))
t.dependsOn(tasks.named("updateTestExtensionVersion"))
}
dependencies {
geckoImplementation project(':components:browser-engine-gecko')
implementation project(':components:browser-domains')
implementation project(':components:browser-engine-system')
implementation project(':components:browser-icons')
implementation project(':components:browser-menu')
implementation project(':components:browser-session-storage')
implementation project(':components:browser-state')
implementation project(':components:browser-storage-sync')
implementation project(':components:browser-tabstray')
implementation project(':components:browser-thumbnails')
implementation project(':components:browser-toolbar')
implementation project(':components:compose-awesomebar')
implementation project(':components:concept-awesomebar')
implementation project(':components:concept-base')
implementation project(':components:concept-engine')
implementation project(':components:concept-fetch')
implementation project(':components:concept-storage')
implementation project(':components:concept-tabstray')
implementation project(':components:concept-toolbar')
implementation project(':components:feature-addons')
implementation project(':components:feature-app-links')
implementation project(":components:feature-autofill")
implementation project(':components:feature-awesomebar')
implementation project(':components:feature-contextmenu')
implementation project(':components:feature-customtabs')
implementation project(':components:feature-downloads')
implementation project(':components:feature-findinpage')
implementation project(':components:feature-intent')
implementation project(':components:feature-media')
implementation project(':components:feature-privatemode')
implementation project(':components:feature-prompts')
implementation project(':components:feature-pwa')
implementation project(':components:feature-readerview')
implementation project(':components:feature-screendetection')
implementation project(':components:feature-search')
implementation project(':components:feature-session')
implementation project(':components:feature-sitepermissions')
implementation project(':components:feature-tabs')
implementation project(':components:feature-toolbar')
implementation project(':components:feature-webcompat')
implementation project(':components:feature-webcompat-reporter')
implementation project(':components:feature-webnotifications')
implementation project(":components:lib-crash")
implementation project(':components:lib-dataprotect')
implementation project(':components:lib-fetch-httpurlconnection')
implementation project(":components:lib-publicsuffixlist")
implementation project(':components:service-digitalassetlinks')
// Add a dependency on glean to simplify the testing workflow
// for engineers that want to test Gecko metrics exfiltrated via the Glean
// SDK. See bug 1592935 for more context.
implementation project(":components:service-glean")
implementation project(':components:service-location')
implementation project(':components:service-sync-logins')
implementation project(':components:support-appservices')
implementation project(':components:support-base')
implementation project(':components:support-ktx')
implementation project(':components:support-locale')
implementation project(':components:support-utils')
implementation project(':components:support-webextensions')
implementation project(':components:ui-autocomplete')
implementation project(':components:ui-colors')
implementation project(':components:ui-icons')
implementation project(':components:ui-tabcounter')
implementation project(':components:ui-widgets')
implementation libs.androidx.appcompat
implementation platform(libs.androidx.compose.bom)
implementation libs.androidx.compose.foundation
implementation libs.androidx.compose.material3
implementation libs.androidx.compose.ui.tooling
implementation libs.androidx.constraintlayout
implementation libs.androidx.core
implementation libs.androidx.swiperefreshlayout
implementation libs.google.material
implementation libs.mozilla.glean
debugImplementation libs.leakcanary
testImplementation libs.androidx.test.core
testImplementation libs.androidx.test.junit
testImplementation libs.kotlinx.coroutines.test
testImplementation libs.mockito
testImplementation libs.robolectric
androidTestImplementation project(':components:support-android-test')
androidTestImplementation libs.androidx.test.core
androidTestImplementation libs.androidx.test.espresso.core
androidTestImplementation libs.androidx.test.junit
androidTestImplementation libs.androidx.test.monitor
androidTestImplementation libs.androidx.test.rules
androidTestImplementation libs.androidx.test.runner
androidTestImplementation libs.androidx.test.uiautomator
androidTestImplementation libs.leakcanary.instrumentation
androidTestImplementation libs.okhttp
androidTestRuntimeOnly libs.okio
constraints {
// Various AndroidX dependencies pull in 1.1.1 transitively; OkHttp 5 requires 1.2.0.
implementation(libs.androidx.startup.runtime)
// okhttp is test-only; prevents older releases being resolved on the main classpath.
implementation(libs.okio)
}
}
preBuild.dependsOn updateBorderifyExtensionVersion
preBuild.dependsOn updateTestExtensionVersion