You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.6 KiB
75 lines
2.6 KiB
// 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'
|