195 lines
7.2 KiB
Groovy
195 lines
7.2 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/. */
|
|
|
|
if (findProject(":geckoview") != null) {
|
|
buildDir "${topobjdir}/gradle/build/mobile/android/samples-browser"
|
|
}
|
|
|
|
apply plugin: 'com.android.application'
|
|
apply plugin: 'kotlin-android'
|
|
|
|
if (findProject(":geckoview") != null) {
|
|
apply from: "${topsrcdir}/mobile/android/gradle/product_flavors.gradle"
|
|
}
|
|
|
|
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'
|
|
}
|
|
}
|
|
|
|
if (findProject(":geckoview") != null) {
|
|
project.configureProductFlavors.delegate = it
|
|
project.configureProductFlavors()
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
composeOptions {
|
|
kotlinCompilerExtensionVersion = Versions.compose_compiler
|
|
}
|
|
|
|
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(ComponentsDependencies.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 ComponentsDependencies.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')
|
|
|
|
geckoImplementation project(':browser-engine-gecko')
|
|
|
|
implementation ComponentsDependencies.google_material
|
|
|
|
implementation ComponentsDependencies.androidx_appcompat
|
|
implementation ComponentsDependencies.androidx_compose_ui_tooling
|
|
implementation ComponentsDependencies.androidx_compose_foundation
|
|
implementation ComponentsDependencies.androidx_compose_material
|
|
implementation ComponentsDependencies.androidx_core_ktx
|
|
implementation ComponentsDependencies.androidx_constraintlayout
|
|
implementation ComponentsDependencies.androidx_swiperefreshlayout
|
|
implementation ComponentsDependencies.androidx_localbroadcastmanager
|
|
|
|
debugImplementation ComponentsDependencies.leakcanary
|
|
|
|
testImplementation ComponentsDependencies.androidx_test_core
|
|
testImplementation ComponentsDependencies.androidx_test_junit
|
|
testImplementation ComponentsDependencies.testing_robolectric
|
|
testImplementation ComponentsDependencies.testing_mockito
|
|
testImplementation ComponentsDependencies.testing_coroutines
|
|
|
|
constraints {
|
|
implementation (ComponentsDependencies.androidx_tracing) {
|
|
because 'AndroidX Test gets force-downgraded to 1.0.0 and breaks otherwise'
|
|
}
|
|
}
|
|
|
|
androidTestImplementation project(':support-android-test')
|
|
androidTestImplementation ComponentsDependencies.androidx_test_core
|
|
androidTestImplementation ComponentsDependencies.androidx_test_runner
|
|
androidTestImplementation ComponentsDependencies.androidx_test_rules
|
|
androidTestImplementation ComponentsDependencies.androidx_test_junit
|
|
androidTestImplementation ComponentsDependencies.androidx_test_uiautomator
|
|
androidTestImplementation ComponentsDependencies.androidx_espresso_core
|
|
androidTestImplementation ComponentsDependencies.testing_leakcanary
|
|
androidTestImplementation ComponentsDependencies.testing_mockwebserver
|
|
}
|
|
|
|
preBuild.dependsOn updateBorderifyExtensionVersion
|
|
preBuild.dependsOn updateTestExtensionVersion
|