cmake_minimum_required(VERSION 3.22.1)
project(androidcast_codecs C)

set(CMAKE_C_STANDARD 11)

set(THIRD_PARTY_ROOT ${CMAKE_SOURCE_DIR}/../third-party)
set(NDK_BRIDGE ${CMAKE_SOURCE_DIR})

add_library(androidcast_codecs SHARED
    ${NDK_BRIDGE}/jni/androidcast_codecs.c
    ${NDK_BRIDGE}/jni/libvpx_bridge.c
    ${NDK_BRIDGE}/jni/opus_bridge.c
    ${NDK_BRIDGE}/jni/speex_bridge.c
)

target_include_directories(androidcast_codecs PRIVATE
    ${NDK_BRIDGE}/jni
)

if(DEFINED ENV{ANDROIDCAST_LIBVPX_LIB} AND EXISTS "$ENV{ANDROIDCAST_LIBVPX_LIB}")
    message(STATUS "Linking libvpx from $ENV{ANDROIDCAST_LIBVPX_LIB}")
    target_compile_definitions(androidcast_codecs PRIVATE ANDROIDCAST_HAVE_LIBVPX=1)
    target_link_libraries(androidcast_codecs "$ENV{ANDROIDCAST_LIBVPX_LIB}")
    if(EXISTS "${THIRD_PARTY_ROOT}/libvpx")
        target_include_directories(androidcast_codecs PRIVATE "${THIRD_PARTY_ROOT}/libvpx")
    endif()
elseif(EXISTS "${THIRD_PARTY_ROOT}/libvpx")
    message(STATUS "libvpx submodule present — set ANDROIDCAST_LIBVPX_LIB to link (see ndk/README.md)")
endif()

find_library(log-lib log)
target_link_libraries(androidcast_codecs ${log-lib})
