/* 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/. */ buildscript { repositories { gradle.configureMavenRepositories(delegate) } dependencies { classpath libs.kotlin.serialization classpath libs.mozilla.glean.gradle.plugin } } plugins { alias(libs.plugins.dependency.analysis) alias(libs.plugins.python.envs.plugin) } apply plugin: 'com.android.library' apply plugin: 'com.google.devtools.ksp' apply plugin: 'kotlin-android' apply plugin: 'kotlinx-serialization' android { defaultConfig { javaCompileOptions { annotationProcessorOptions { arguments += ["room.incremental": "true"] } } testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { debug { // We use this in androidTest to disable tests which will fail without the crashreporter // enabled (since they rely on the crashtools binary). buildConfigField 'boolean', 'MOZ_CRASHREPORTER', gradle.mozconfig.substs.MOZ_CRASHREPORTER ? 'true' : 'false'; } } sourceSets { main { java { // Generated files are output in the objdir srcDir "${gradle.mozconfig.topobjdir}/mobile/android/android-components/components/lib/crash/src/main/java" } } } ksp { arg("room.schemaLocation", "$projectDir/schemas".toString()) } buildFeatures { viewBinding = true buildConfig = true } namespace = 'mozilla.components.lib.crash' } dependencies { // We only compile against GeckoView and Glean. It's up to the app to add those dependencies if it wants to // send crash reports to Socorro (GV). compileOnly libs.mozilla.glean implementation project(':components:support-base') implementation project(':components:support-ktx') implementation project(':components:support-utils') implementation libs.androidx.appcompat implementation libs.androidx.constraintlayout implementation libs.androidx.core.ktx implementation libs.androidx.recyclerview implementation libs.androidx.room.runtime ksp libs.androidx.room.compiler implementation libs.kotlinx.coroutines implementation libs.kotlinx.serialization.json testImplementation project(':components:support-test') testImplementation libs.androidx.test.core testImplementation libs.androidx.test.junit testImplementation libs.androidx.work.testing testImplementation libs.kotlinx.coroutines.test testImplementation libs.mockwebserver testImplementation libs.mozilla.glean testImplementation libs.mozilla.glean.forUnitTests testImplementation libs.okhttp testImplementation libs.okio testImplementation libs.robolectric androidTestImplementation project(':components:support-android-test') androidTestImplementation libs.androidx.test.junit androidTestImplementation libs.mozilla.glean // Depend on browser-engine-gecko to get the libcrashtools.so binary for tests. We don't use jniLibs because it // is only available as part of the geckoview APK artifact in CI. androidTestRuntimeOnly project(':components:browser-engine-gecko') } ext { gleanNamespace = "mozilla.telemetry.glean" gleanPythonEnvDir = gradle.mozconfig.substs.GRADLE_GLEAN_PARSER_VENV } apply plugin: "org.mozilla.telemetry.glean-gradle-plugin" apply from: '../../../common-config.gradle' apply from: '../../../publish.gradle' ext.configurePublish(config.componentsGroupId, project.name, project.ext.description)