# Media3 1.8.0's libraries/decoder_ffmpeg/src/main/jni/CMakeLists.txt (Apache 2.0), with the FFmpeg
# locations passed in by build_ffmpeg.sh instead of a checkout beside it.
cmake_minimum_required(VERSION 3.21.0 FATAL_ERROR)

set(CMAKE_CXX_STANDARD 11)

project(libffmpegJNI C CXX)

foreach(ffmpeg_lib avutil swresample swscale avcodec)
    add_library(${ffmpeg_lib} STATIC IMPORTED)
    set_target_properties(${ffmpeg_lib} PROPERTIES IMPORTED_LOCATION ${FFMPEG_LIBS}/lib${ffmpeg_lib}.a)
endforeach()

include_directories(${FFMPEG_HEADERS})
find_library(android_log_lib log)

add_library(ffmpegJNI SHARED ffmpeg_jni.cc video_jni.cc)

target_link_libraries(ffmpegJNI
                      PRIVATE android
                      PRIVATE swresample
                      PRIVATE swscale
                      PRIVATE avcodec
                      PRIVATE avutil
                      PRIVATE dl
                      PRIVATE ${android_log_lib})

# Additional flags needed for "arm64-v8a" from NDK 23.1.7779620 and above.
if(ANDROID_ABI STREQUAL "arm64-v8a")
    target_link_options(ffmpegJNI PRIVATE "-Wl,-Bsymbolic")
endif()

# Enable 16 KB ELF alignment.
target_link_options(ffmpegJNI PRIVATE "-Wl,-z,max-page-size=16384")
