media3/libraries/common/build.gradle
tonihei 51fb72b00d Replace deprecated NullableType from checkerframework with our own one
The existing NullableType has been deprecated 5 years ago and causes
crashes in Kotlin apps because Kotlin doesn't recognize this annotation
as a nullable type annotation.

While we can't align on a single @Nullable annotation yet, we can at
least replace this one by JSR305's @Nonnull(MAYBE) as it fulfils all
requirements, including full Kotlin compatiblity. To avoid the
cumbersome name, we can redefine it as our own @NullableType
annotation. (We can't use @Nullable to avoid name clashes with the main
@Nullable annotation from AndroidX)

Issue: google/ExoPlayer#6792
PiperOrigin-RevId: 540497469
2023-06-19 16:08:20 +01:00

93 lines
4.0 KiB
Groovy

// Copyright (C) 2020 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
apply from: "$gradle.ext.androidxMediaSettingsDir/common_library_config.gradle"
// Make sure this project is evaluated after all other libraries. This ensures
// the Gradle properties of each library are populated and we can automatically
// check if a 'releaseArtifactId' exists.
rootProject.allprojects.forEach {
if ((it.name.startsWith(modulePrefix.replace(':', '') + 'lib-')
|| it.name.startsWith(modulePrefix.replace(':', '') + 'test-'))
&& !it.name.endsWith('-common')) {
evaluationDependsOn(':' + it.name)
}
}
android {
namespace 'androidx.media3.common'
buildTypes {
debug {
testCoverageEnabled = true
}
}
lint {
baseline = file("lint-baseline.xml")
}
publishing {
singleVariant('release') {
withSourcesJar()
}
}
}
dependencies {
constraints {
// List all released targets as constraints. This ensures they are all
// resolved to the same version.
rootProject.allprojects.forEach {
if (it.hasProperty('releaseArtifactId')
&& it.releaseArtifactId.startsWith('media3-')) {
implementation project(':' + it.name)
}
}
}
api ('com.google.guava:guava:' + guavaVersion) {
// Exclude dependencies that are only used by Guava at compile time
// (but declared as runtime deps) [internal b/168188131].
exclude group: 'com.google.code.findbugs', module: 'jsr305'
exclude group: 'org.checkerframework', module: 'checker-compat-qual'
exclude group: 'org.checkerframework', module: 'checker-qual'
exclude group: 'com.google.errorprone', module: 'error_prone_annotations'
exclude group: 'com.google.j2objc', module: 'j2objc-annotations'
exclude group: 'org.codehaus.mojo', module: 'animal-sniffer-annotations'
}
api 'androidx.annotation:annotation-experimental:' + androidxAnnotationExperimentalVersion
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
compileOnly 'com.google.code.findbugs:jsr305:' + jsr305Version
compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion
compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion
androidTestImplementation 'androidx.test:runner:' + androidxTestRunnerVersion
androidTestImplementation 'com.linkedin.dexmaker:dexmaker:' + dexmakerVersion
androidTestImplementation 'com.linkedin.dexmaker:dexmaker-mockito:' + dexmakerVersion
androidTestImplementation(project(modulePrefix + 'test-utils')) {
exclude module: modulePrefix.substring(1) + 'library-core'
}
testImplementation 'org.mockito:mockito-core:' + mockitoVersion
testImplementation 'androidx.test:core:' + androidxTestCoreVersion
testImplementation 'androidx.test.ext:junit:' + androidxTestJUnitVersion
testImplementation 'junit:junit:' + junitVersion
testImplementation 'com.google.truth:truth:' + truthVersion
testImplementation 'org.robolectric:robolectric:' + robolectricVersion
testImplementation project(modulePrefix + 'lib-exoplayer')
testImplementation project(modulePrefix + 'test-utils')
}
ext {
releaseArtifactId = 'media3-common'
releaseName = 'Media3 common module'
}
apply from: '../../publish.gradle'