Files
tubestation/mobile/android/android-components/samples/browser/build.gradle

182 lines
6.4 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/. */
plugins {
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
}
if (findProject(":geckoview") != null) {
buildDir "${topobjdir}/gradle/build/mobile/android/samples-browser"
}
apply plugin: 'com.android.application'
android {
defaultConfig {
applicationId "org.mozilla.samples.browser"
minSdkVersion config.minSdkVersion
compileSdk config.compileSdkVersion
targetSdkVersion 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.txt'), 'proguard-rules.pro'
}
}
flavorDimensions += "engine"
productFlavors {
gecko {
dimension "engine"
}
// WebView
system {
dimension "engine"
}
}
variantFilter { variant ->
if (variant.buildType.name == "release") {
// This is a sample app that we are not releasing. Save some time and do not build
// release versions.
setIgnore(true)
}
}
buildFeatures {
viewBinding true
compose true
}
namespace 'org.mozilla.samples.browser'
}
tasks.register("updateBorderifyExtensionVersion", Copy) { task ->
updateExtensionVersion(task, 'src/main/assets/extensions/borderify')
}
tasks.register("updateTestExtensionVersion", Copy) { task ->
updateExtensionVersion(task, 'src/main/assets/extensions/test')
}
dependencies {
implementation platform(libs.androidx.compose.bom)
implementation project(':concept-awesomebar')
implementation project(':concept-fetch')
implementation project(':concept-engine')
implementation project(':concept-tabstray')
implementation project(':concept-toolbar')
implementation project(':concept-storage')
implementation project(':concept-base')
implementation project(':compose-awesomebar')
implementation project(':browser-engine-system')
implementation project(':browser-domains')
implementation project(':browser-icons')
implementation project(':browser-session-storage')
implementation project(':browser-state')
implementation project(':browser-tabstray')
implementation project(':browser-thumbnails')
implementation project(':browser-toolbar')
implementation project(':browser-menu')
implementation project(':browser-storage-sync')
implementation project(':lib-fetch-httpurlconnection')
implementation project(":lib-crash")
implementation project(':lib-dataprotect')
implementation project(":lib-publicsuffixlist")
implementation project(':feature-awesomebar')
implementation project(":feature-autofill")
implementation project(':feature-app-links')
implementation project(':feature-contextmenu')
implementation project(':feature-customtabs')
implementation project(':feature-downloads')
implementation project(':feature-intent')
implementation project(':feature-media')
implementation project(':feature-readerview')
implementation project(':feature-search')
implementation project(':feature-session')
implementation project(':feature-toolbar')
implementation project(':feature-tabs')
implementation project(':feature-prompts')
implementation project(':feature-privatemode')
implementation project(':feature-pwa')
implementation project(':feature-findinpage')
implementation project(':feature-sitepermissions')
implementation project(':feature-webcompat')
implementation project(':feature-webcompat-reporter')
implementation project(':feature-webnotifications')
implementation project(':feature-addons')
implementation project(':ui-autocomplete')
implementation project(':ui-tabcounter')
implementation project(':ui-widgets')
// 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(":service-glean")
implementation libs.mozilla.glean
implementation project(':service-location')
implementation project(':service-digitalassetlinks')
implementation project(':service-sync-logins')
implementation project(':support-base')
implementation project(':support-locale')
implementation project(':support-utils')
implementation project(':support-ktx')
implementation project(':support-webextensions')
implementation project(':support-rustlog')
implementation project(':feature-screendetection')
geckoImplementation project(':browser-engine-gecko')
implementation libs.google.material
implementation libs.androidx.appcompat
implementation libs.androidx.compose.ui.tooling
implementation libs.androidx.compose.foundation
implementation libs.androidx.compose.material
implementation libs.androidx.core.ktx
implementation libs.androidx.constraintlayout
implementation libs.androidx.swiperefreshlayout
implementation libs.androidx.localbroadcastmanager
debugImplementation libs.leakcanary
testImplementation libs.androidx.test.core
testImplementation libs.androidx.test.junit
testImplementation libs.testing.robolectric
testImplementation libs.testing.mockito
testImplementation libs.testing.coroutines
androidTestImplementation project(':support-android-test')
androidTestImplementation libs.androidx.test.core
androidTestImplementation libs.androidx.test.monitor
androidTestImplementation libs.androidx.test.runner
androidTestImplementation libs.androidx.test.rules
androidTestImplementation libs.androidx.test.junit
androidTestImplementation libs.androidx.test.uiautomator
androidTestImplementation libs.androidx.espresso.core
androidTestImplementation libs.testing.leakcanary
androidTestImplementation libs.testing.mockwebserver
}
preBuild.dependsOn updateBorderifyExtensionVersion
preBuild.dependsOn updateTestExtensionVersion