Skip to content

Commit e954d98

Browse files
committed
libplaceboとlibvmafをstatic linkするように。
1 parent 8f838a4 commit e954d98

12 files changed

Lines changed: 403 additions & 155 deletions

.github/workflows/build_base_images.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@ jobs:
1313
strategy:
1414
fail-fast: false
1515
matrix:
16-
include:
17-
- dockerimg: ubuntu2004_cuda11
18-
- dockerimg: fedora39_cuda12
16+
include:
17+
- dockerimg: ubuntu2004_cuda11
18+
- dockerimg: ubuntu2204_cuda11
19+
- dockerimg: ubuntu2404_cuda12
20+
- dockerimg: fedora39_cuda12
1921

2022
env:
2123
DOCKER_FILE: docker/docker_${{ matrix.dockerimg }}

.github/workflows/build_packages.yml

Lines changed: 38 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)