@@ -14,22 +14,23 @@ jobs:
1414 strategy :
1515 fail-fast : false
1616 matrix :
17- include :
18- - dockerimg : ubuntu2004_cuda11
19- pkgtype : deb
20- arch : x86_64
21- - dockerimg : fedora39_cuda12
22- pkgtype : rpm
23- arch : x86_64
24- # - dockerimg: ubuntu2204_cuda11_aarch64
25- # pkgtype: deb
26- # arch: arm64
17+ include :
18+ - dockerimg : ubuntu2004_cuda11
19+ pkgtype : deb
20+ arch : x86_64
21+ - dockerimg : fedora39_cuda12
22+ pkgtype : rpm
23+ arch : x86_64
24+ # - dockerimg: ubuntu2204_cuda11_aarch64
25+ # pkgtype: deb
26+ # arch: arm64
2727
2828 env :
2929 DOCKER_IMAGE : ${{ matrix.dockerimg }}
3030 PKG_TYPE : ${{ matrix.pkgtype }}
3131 BASE_IMAGE_REPO : ghcr.io/${{ github.repository_owner }}/nvenc-build
32- FFMPEG_PREFIX : /opt/build_scripts/ffmpeg_dll/build_dll/x64/build
32+ FFMPEG_PREFIX : /opt/build_scripts/ffmpeg_dll/build_dll/x64/build
33+ VMAF_PREFIX : /opt/build_scripts/ffmpeg_dll/x64/build
3334
3435 name : Upload Release Asset
3536 runs-on : ubuntu-latest
@@ -95,30 +96,35 @@ jobs:
9596 --workdir /work \
9697 --name build_pkg ${{ steps.prep.outputs.base_image }}
9798 docker exec build_pkg bash -lc '
99+ VMAFPKG="${{ env.VMAF_PREFIX }}/lib/pkgconfig"
98100 FFPKG="${{ env.FFMPEG_PREFIX }}/lib/pkgconfig:${{ env.FFMPEG_PREFIX }}/lib/x86_64-linux-gnu/pkgconfig"
99- export PKG_CONFIG_PATH="${FFPKG}${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}"
100- meson setup ./build . --buildtype=release -Db_lto=true -Dcpp_args="['\''-I/work/AviSynthPlus/avs_core/include'\'','\''-I/work/vapoursynth/include'\'']"
101+ export PKG_CONFIG_PATH="${VMAFPKG}:${ FFPKG}${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}"
102+ meson setup ./build . --buildtype=release -Db_lto=true -Denable_libplacebo=enabled -Dlibplacebo_static=true -Denable_vmaf=enabled -Dlibvmaf_static=true - Dcpp_args="['\''-I/work/AviSynthPlus/avs_core/include'\'','\''-I/work/vapoursynth/include'\'']"
101103 '
102104 docker exec build_pkg bash -lc "meson compile -C ./build -j${{ steps.prep.outputs.nproc }}"
103- docker exec build_pkg bash -lc '
104- set -e
105- ldd ./build/nvencc | tee /tmp/nvencc.ldd
106- if grep -F "=> not found" /tmp/nvencc.ldd | grep -Fv "libcuda.so.1 => not found" >/dev/null; then
107- echo "Unexpected missing shared libraries detected." >&2
108- exit 1
109- fi
110- '
111- docker exec build_pkg bash -lc '
112- set -e
113- if [[ "${{ matrix.dockerimg }}" == ubuntu* ]]; then
114- mkdir -p /tmp/nvenc-cuda-stubs
115- ln -sf /usr/local/cuda/targets/x86_64-linux/lib/stubs/libcuda.so /tmp/nvenc-cuda-stubs/libcuda.so.1
116- export LD_LIBRARY_PATH="/tmp/nvenc-cuda-stubs:/usr/local/cuda/targets/x86_64-linux/lib/stubs${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
117- fi
118- ./build/nvencc --version
119- ./check_options.py -exe ./build/nvencc
120- '
121- docker exec build_pkg cp ./build/nvencc ./nvencc
105+ docker exec build_pkg bash -lc '
106+ set -e
107+ ldd ./build/nvencc | tee /tmp/nvencc.ldd
108+ if grep -F "=> not found" /tmp/nvencc.ldd | grep -Fv "libcuda.so.1 => not found" >/dev/null; then
109+ echo "Unexpected missing shared libraries detected." >&2
110+ exit 1
111+ fi
112+ if readelf -d ./build/nvencc | grep -F "(NEEDED)" | grep -E "libplacebo|libvmaf" >/dev/null; then
113+ echo "libplacebo/libvmaf must be statically linked, but shared dependency was found." >&2
114+ exit 1
115+ fi
116+ '
117+ docker exec build_pkg bash -lc '
118+ set -e
119+ if [[ "${{ matrix.dockerimg }}" == ubuntu* ]]; then
120+ mkdir -p /tmp/nvenc-cuda-stubs
121+ ln -sf /usr/local/cuda/targets/x86_64-linux/lib/stubs/libcuda.so /tmp/nvenc-cuda-stubs/libcuda.so.1
122+ export LD_LIBRARY_PATH="/tmp/nvenc-cuda-stubs:/usr/local/cuda/targets/x86_64-linux/lib/stubs${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
123+ fi
124+ ./build/nvencc --version
125+ ./check_options.py -exe ./build/nvencc
126+ '
127+ docker exec build_pkg cp ./build/nvencc ./nvencc
122128 docker exec build_pkg ./build_${{ env.PKG_TYPE }}.sh
123129 docker exec build_pkg bash -lc "cp -v ./*.${{ env.PKG_TYPE }} /output/"
124130 PKGFILE=`ls ${{ steps.prep.outputs.output_dir }}/*.${{ env.PKG_TYPE }}`
0 commit comments