// 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 // Workaround for 'duplicate class' error caused by incomplete version // metadata in Kotlin std lib (https://issuetracker.google.com/278545487). // This can be removed when one of the other deps here (probably // androidx.annotation) depends on kotlin-stdlib:1.9.20. implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0') 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'