// Copyright (C) 2019 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: '../../constants.gradle' apply plugin: 'com.android.library' android { compileSdkVersion project.ext.compileSdkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } defaultConfig { minSdkVersion project.ext.minSdkVersion targetSdkVersion project.ext.targetSdkVersion consumerProguardFiles 'proguard-rules.txt' externalNativeBuild { cmake { // Debug CMake build type causes video frames to drop, // so native library should always use Release build type. arguments "-DCMAKE_BUILD_TYPE=Release" targets "gav1JNI" } } } // This option resolves the problem of finding libgav1JNI.so // on multiple paths. The first one found is picked. packagingOptions { pickFirst 'lib/arm64-v8a/libgav1JNI.so' pickFirst 'lib/armeabi-v7a/libgav1JNI.so' pickFirst 'lib/x86/libgav1JNI.so' pickFirst 'lib/x86_64/libgav1JNI.so' } sourceSets.main { // As native JNI library build is invoked from gradle, this is // not needed. However, it exposes the built library and keeps // consistency with the other extensions. jniLibs.srcDir 'src/main/libs' } } // Configure the native build only if libgav1 is present, to avoid gradle sync // failures if libgav1 hasn't been checked out according to the README and CMake // isn't installed. if (project.file('src/main/jni/libgav1').exists()) { android.externalNativeBuild.cmake.path = 'src/main/jni/CMakeLists.txt' android.externalNativeBuild.cmake.version = '3.7.1+' } dependencies { implementation project(modulePrefix + 'library-core') implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion } ext { javadocTitle = 'AV1 extension' } apply from: '../../javadoc_library.gradle'