Source code

Revision control

Copy as Markdown

Other Tools

/* 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)