177 lines
6.3 KiB
Groovy
177 lines
6.3 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)
|
|
}
|
|
|
|
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
|