blob: 95b4754a3fe7b5bbcf38bb61f486e98420cf2803 [file] [log] [blame]
import net.ltgt.gradle.errorprone.CheckSeverity
apply from: 'gradle-maven-push.gradle'
apply plugin: 'com.android.library'
apply plugin: 'net.ltgt.errorprone'
android {
compileSdkVersion 29
resourcePrefix 'lottie_'
defaultConfig {
minSdkVersion 16
targetSdkVersion 29
}
lintOptions {
abortOnError true
textReport true
textOutput 'stdout'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
testOptions {
unitTests {
includeAndroidResources = true
}
}
}
dependencies {
implementation "androidx.appcompat:appcompat:1.0.0"
testImplementation "org.mockito:mockito-core:2.15.0"
testImplementation 'junit:junit:4.12'
testImplementation "org.robolectric:robolectric:4.3.1"
// Do not ugprade to 2.0 because it will bring in Kotlin as a transitive dependency.
implementation("com.squareup.okio:okio:1.17.4")
annotationProcessor "com.uber.nullaway:nullaway:0.7.5"
errorprone "com.google.errorprone:error_prone_core:2.3.2"
errorproneJavac "com.google.errorprone:javac:9+181-r4173-1"
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
configurations.implementation.setCanBeResolved(true)
classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + configurations.implementation
failOnError false
}
tasks.withType(JavaCompile) {
// remove the if condition if you want to run NullAway on test code
if (!name.toLowerCase().contains("test")) {
options.errorprone {
option("NullAway:AnnotatedPackages", "com.airbnb.lottie")
// TODO: enable these and fix errors one by one.
check("NullAway", CheckSeverity.OFF)
check("StringSplitter", CheckSeverity.OFF)
check("DefaultCharset", CheckSeverity.OFF)
check("HidingField", CheckSeverity.OFF)
check("NarrowingCompoundAssignment", CheckSeverity.OFF)
check("MissingOverride", CheckSeverity.OFF)
check("ReferenceEquality", CheckSeverity.OFF)
check("FallThrough", CheckSeverity.OFF)
check("FloatingPointLiteralPrecision", CheckSeverity.OFF)
check("MissingCasesInEnumSwitch", CheckSeverity.OFF)
check("OperatorPrecedence", CheckSeverity.OFF)
}
}
}
// Re-enable this if releases are uploaded from CI.
//gradle.taskGraph.whenReady { taskGraph ->
// if (taskGraph.allTasks.any { it instanceof Sign }) {
// allprojects { ext."signing.keyId" = System.getenv("GRADLE_SIGNING_KEY_ID") }
// allprojects { ext."signing.secretKeyRingFile" = "~/.gnupg/secring.gpg" }
// allprojects { ext."signing.password" = System.getenv("GRADLE_SIGNING_PASSWORD") }
// }
//}