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
187 lines
7.8 KiB
Groovy
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
|