ci: install VVdeC in base images

Needed for the vvdec element in gst-plugins-rs!1279

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1632>
This commit is contained in:
Carlos Bentzen 2025-02-15 17:09:48 +01:00 committed by Sebastian Dröge
parent 4bfe498214
commit e1e4162e1b
4 changed files with 49 additions and 2 deletions

View file

@ -142,7 +142,7 @@ trigger:
stage: container-base
variables:
FDO_DISTRIBUTION_PACKAGES: >-
build-essential curl python3-setuptools libglib2.0-dev libxml2-dev
build-essential cmake curl python3-setuptools libglib2.0-dev libxml2-dev
libdrm-dev libegl1-mesa-dev libgl1-mesa-dev libgbm-dev libgles2-mesa-dev
libgl1-mesa-dri libegl-dev libgl1-mesa-glx libwayland-egl1-mesa xz-utils
libssl-dev git wget ca-certificates ninja-build python3-pip flex bison
@ -161,6 +161,7 @@ trigger:
FDO_DISTRIBUTION_EXEC: >-
bash ci/install-gst.sh &&
bash ci/install-dav1d.sh &&
bash ci/install-vvdec.sh &&
pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates
.build-final-image:

15
ci/install-vvdec.sh Normal file
View file

@ -0,0 +1,15 @@
set -e
RELEASE=v3.0.0
git clone https://github.com/fraunhoferhhi/vvdec.git
cd vvdec
git checkout $RELEASE
cmake -S . -B build -GNinja \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DBUILD_SHARED_LIBS=ON \
-DVVDEC_TOPLEVEL_OUTPUT_DIRS=OFF
ninja -C build
ninja -C build install
cd ..
rm -rf vvdec

View file

@ -16,8 +16,9 @@ RUN choco install -y pkgconfiglite nasm llvm openssl
RUN setx PATH '%PATH%;C:\Program Files\NASM;C:\gst-install\bin'
ENV PKG_CONFIG_PATH="C:\gst-install\lib\pkgconfig"
COPY install_gst.ps1 install_dav1d.ps1 install_rust.ps1 install_cargo_utils.ps1 C:\
COPY install_gst.ps1 install_dav1d.ps1 install_vvdec.ps1 install_rust.ps1 install_cargo_utils.ps1 C:\
RUN C:\install_gst.ps1
RUN C:\install_dav1d.ps1
RUN C:\install_vvdec.ps1
RUN C:\install_rust.ps1
RUN C:\install_cargo_utils.ps1

View file

@ -0,0 +1,30 @@
$env:ErrorActionPreference='Stop'
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;
git clone https://github.com/fraunhoferhhi/vvdec.git C:\vvdec
if (!$?) {
Write-Host "Failed to clone vvdec"
Exit 1
}
Set-Location C:\vvdec
git checkout v3.0.0
# This is fine, we are not going to use the GtkMedia* apis
$env:CMAKE_ARGS = "-GNinja -DCMAKE_INSTALL_PREFIX=C:\gst-install\ -DBUILD_SHARED_LIBS=ON"
Write-Output "Building vvdec"
cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && cmake -S . -B _build $env:CMAKE_ARGS && ninja -C _build && ninja -C _build install"
if (!$?) {
Write-Host "Failed to build and install vvdec"
Exit 1
}
cd C:\
cmd /c rmdir /s /q C:\vvdec
if (!$?) {
Write-Host "Failed to remove vvdec checkout"
Exit 1
}