summaryrefslogtreecommitdiffstats
path: root/mobile/android/android-components/samples/browser/build.gradle
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/android-components/samples/browser/build.gradle')
-rw-r--r--mobile/android/android-components/samples/browser/build.gradle186
1 files changed, 186 insertions, 0 deletions
diff --git a/mobile/android/android-components/samples/browser/build.gradle b/mobile/android/android-components/samples/browser/build.gradle
new file mode 100644
index 0000000000..351becf85b
--- /dev/null
+++ b/mobile/android/android-components/samples/browser/build.gradle
@@ -0,0 +1,186 @@
+/* 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 service-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 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
+
+ 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