cmake_minimum_required(VERSION 3.15)
project(video_transcoders LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(PYBIND11_FINDPYTHON ON)
set(PYBIND11_USE_ABI3 ON)

find_package(Python 3.8 REQUIRED COMPONENTS Interpreter Development.Module)
find_package(pybind11 CONFIG REQUIRED)

find_package(PkgConfig REQUIRED)
pkg_check_modules(AV REQUIRED IMPORTED_TARGET
    libavformat
    libavcodec
    libavfilter
    libswscale
    libswresample
    libavutil
)

pybind11_add_module(video_transcoders MODULE src/bindings.cpp src/transformer_v12.cpp)

set_target_properties(video_transcoders PROPERTIES PREFIX "" SUFFIX ".so")

target_compile_options(video_transcoders PRIVATE -fno-lto)
target_link_options(video_transcoders PRIVATE -fno-lto)

target_link_libraries(video_transcoders PRIVATE PkgConfig::AV)

add_custom_command(TARGET video_transcoders POST_BUILD
    COMMAND patchelf --remove-needed libpython3.14.so $<TARGET_FILE:video_transcoders>
)

install(TARGETS video_transcoders DESTINATION .)
