cmake_minimum_required(VERSION 3.18)

project(video_transcoders LANGUAGES CXX)


set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)


# Python stable ABI (abi3)
set(PYBIND11_FINDPYTHON ON)
set(PYBIND11_USE_ABI3 ON)


find_package(pybind11 CONFIG REQUIRED)


find_package(PkgConfig REQUIRED)


pkg_check_modules(FFMPEG REQUIRED
    libavformat
    libavcodec
    libavfilter
    libswscale
    libswresample
    libavutil
)


include_directories(
    ${FFMPEG_INCLUDE_DIRS}
)


link_directories(
    ${FFMPEG_LIBRARY_DIRS}
)


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


target_compile_options(video_transcoders PRIVATE
    ${FFMPEG_CFLAGS_OTHER}
)


target_link_libraries(video_transcoders PRIVATE
    ${FFMPEG_LIBRARIES}
)


install(
    TARGETS video_transcoders
    LIBRARY DESTINATION .
)
