70 lines
2.0 KiB
CMake
70 lines
2.0 KiB
CMake
# Android CMake build for dav1d AV1 decoder
|
|
cmake_minimum_required(VERSION 3.10)
|
|
|
|
project(VavCore-Android)
|
|
|
|
# Set Android ABI
|
|
if(NOT ANDROID_ABI)
|
|
set(ANDROID_ABI "arm64-v8a")
|
|
endif()
|
|
|
|
# Set library directory based on ABI
|
|
if(ANDROID_ABI STREQUAL "arm64-v8a")
|
|
set(LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libs/arm64-v8a")
|
|
elseif(ANDROID_ABI STREQUAL "armeabi-v7a")
|
|
set(LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libs/armeabi-v7a")
|
|
else()
|
|
message(FATAL_ERROR "Unsupported Android ABI: ${ANDROID_ABI}")
|
|
endif()
|
|
|
|
# Include directories
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
|
|
|
# Import dav1d as prebuilt library
|
|
add_library(dav1d SHARED IMPORTED)
|
|
set_target_properties(dav1d PROPERTIES
|
|
IMPORTED_LOCATION ${LIB_DIR}/libdav1d.so
|
|
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
)
|
|
|
|
# Also provide static library option
|
|
add_library(dav1d_static STATIC IMPORTED)
|
|
set_target_properties(dav1d_static PROPERTIES
|
|
IMPORTED_LOCATION ${LIB_DIR}/libdav1d.a
|
|
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
)
|
|
|
|
# VavCore sources for Android
|
|
set(VAVCORE_ANDROID_SOURCES
|
|
# Common VavCore sources (only .cpp files)
|
|
../../VavCore/src/Decoder/VideoDecoderFactory.cpp
|
|
../../VavCore/src/Decoder/AV1Decoder.cpp
|
|
../../VavCore/src/FileIO/WebMFileReader.cpp
|
|
|
|
# Android-specific sources
|
|
../../VavCore/src/Decoder/AndroidMediaCodecAV1Decoder.cpp
|
|
|
|
# Test/example sources
|
|
src/android_test.cpp
|
|
)
|
|
|
|
# Include directories for VavCore
|
|
include_directories(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../VavCore/src
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../VavCore/include
|
|
)
|
|
|
|
# Add platform-specific preprocessor definitions
|
|
add_definitions(-DANDROID -DVAVCORE_PLATFORM_ANDROID)
|
|
|
|
# Create VavCore Android library
|
|
add_library(vavcore-android SHARED
|
|
${VAVCORE_ANDROID_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(vavcore-android
|
|
dav1d
|
|
mediandk # Android MediaCodec NDK
|
|
android # Android native library
|
|
log # Android log library
|
|
) |