# 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")