/* 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 { alias(libs.plugins.dependency.analysis) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) } apply plugin: 'com.android.application' apply plugin: 'kotlin-parcelize' android { compileSdk { version = release(config.compileSdkMajorVersion) { minorApiLevel = config.compileSdkMinorVersion } } defaultConfig { applicationId "org.mozilla.samples.compose.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.txt'), 'proguard-rules.pro' } } buildFeatures { compose = true } namespace = 'org.mozilla.samples.compose.browser' } 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 { implementation project(':components:browser-engine-gecko') implementation project(':components:browser-icons') implementation project(':components:browser-state') implementation project(':components:compose-awesomebar') implementation project(':components:compose-base') implementation project(':components:compose-browser-toolbar') implementation project(':components:compose-engine') implementation project(':components:compose-tabstray') implementation project(':components:concept-awesomebar') implementation project(':components:concept-engine') implementation project(':components:concept-tabstray') implementation project(':components:feature-awesomebar') implementation project(':components:feature-fxsuggest') implementation project(':components:feature-search') implementation project(':components:feature-session') implementation project(':components:feature-tabs') implementation project(':components:service-location') implementation project(':components:support-appservices') implementation project(':components:support-ktx') implementation project(':components:support-remotesettings') implementation project(':components:ui-icons') implementation libs.androidx.activity implementation libs.androidx.appcompat implementation libs.androidx.core.ktx implementation platform(libs.androidx.compose.bom) implementation libs.androidx.compose.foundation implementation libs.androidx.compose.material3 implementation libs.androidx.compose.ui implementation libs.androidx.compose.ui.tooling implementation libs.androidx.navigation.compose } preBuild.dependsOn updateBorderifyExtensionVersion preBuild.dependsOn updateTestExtensionVersion