# libonebaudio.so: puente JNI (onebaudio.c) enlazado DINÁMICAMENTE con FFmpeg (tools/build-ffmpeg-android.sh,
# LGPL 2.1+): libavformat/libavcodec/libswresample/libavutil.so van como bibliotecas aparte en la APK, así cualquiera
# puede sustituirlas por otra compilación de FFmpeg (B1b, cumplimiento de la LGPL sin depender de la oferta escrita).
# FFMPEG_ROOT lo pasa Gradle (androidApp/build.gradle.kts) = la caché <versión>-<hash>/ del script.
cmake_minimum_required(VERSION 3.22)
project(onebaudio C)

if(NOT FFMPEG_ROOT)
  message(FATAL_ERROR "FFMPEG_ROOT sin definir (lo pasa Gradle; ver tools/build-ffmpeg-android.sh)")
endif()
set(FF ${FFMPEG_ROOT}/${ANDROID_ABI})

# Bibliotecas importadas: AGP las empaqueta en lib/<abi>/ junto a libonebaudio.so.
foreach(lib avformat avcodec swresample avutil)
  add_library(${lib} SHARED IMPORTED)
  set_target_properties(${lib} PROPERTIES IMPORTED_LOCATION ${FF}/lib/lib${lib}.so)
endforeach()

add_library(onebaudio SHARED onebaudio.c)
target_include_directories(onebaudio PRIVATE ${FF}/include)
target_compile_options(onebaudio PRIVATE -Os -fvisibility=hidden -ffunction-sections -fdata-sections -Wall)
target_link_libraries(onebaudio PRIVATE avformat avcodec swresample avutil log m)
target_link_options(onebaudio PRIVATE -Wl,--gc-sections -Wl,-z,max-page-size=16384 -s)
