#!/bin/bash

# cuframes — CUDA IPC zero-copy frames library + FFmpeg input demuxer.
# Static build для FFmpeg-Builds pipeline.
#
# Подключается через FFmpeg демуксер cuframesdec.c (требует patched FFmpeg —
# см. addins/cuframes.sh).

SCRIPT_REPO="https://git.goldix.org/gx/cuframes.git"
# Pinned tag — explicit version для reproducibility builds. Bump для use new lib.
SCRIPT_COMMIT="v0.3.3"

ffbuild_enabled() {
    # Включаем только если addin cuframes активен (он экспортирует FFBUILD_HAS_CUFRAMES)
    [[ -n "${FFBUILD_HAS_CUFRAMES:-}" ]]
}

ffbuild_dockerbuild() {
    git clone --depth 1 --branch "$SCRIPT_COMMIT" "$SCRIPT_REPO" cuframes
    cd cuframes

    # Static-only build чтобы FFmpeg линковал .a (не .so)
    cmake -B build -S . -G Ninja \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
        -DBUILD_TESTING=OFF \
        -DBUILD_EXAMPLES=OFF \
        -DBUILD_TOOLS=OFF \
        -DBUILD_FFMPEG_FILTER=OFF \
        -DBUILD_PYTHON_BINDINGS=OFF
    cmake --build build -j"$(nproc)"
    cmake --install build

    # Удаляем shared библиотеки — FFmpeg должен линковать только static
    rm -f "$FFBUILD_PREFIX"/lib*/libcuframes.so*
}

ffbuild_configure() {
    echo --enable-libcuframes
}

ffbuild_unconfigure() {
    echo --disable-libcuframes
}
