ci: build OpenColorIO from the ocio-sys vendored source on every platform

The distro OCIO is too old for the bridge's API floor where it matters
(Ubuntu 24.04 ships 2.1; the bridge uses 2.4+ APIs), and version drift
across platforms is a support hazard — enable ocio-rs' bundled feature
and drop the OCIO_INSTALL_DIR/system-package wiring from CI and CD so
Linux, macOS and Windows all build the same vendored OCIO. cmake/make/
diffutils added where the runners lack them (Windows FFmpeg build needs
make + cmp).
This commit is contained in:
2026-08-21 00:01:14 +08:00
parent 9c77d27b7f
commit 3c31c67f99
4 changed files with 34 additions and 27 deletions
+14 -14
View File
@@ -32,22 +32,22 @@ jobs:
- name: Install system dependencies
run: |
tooling/install-deps.sh
# Real OpenColorIO (ocio-sys real bridge) + rsvg-convert for the
# app icon (cargo-packager needs PNG/icns/ico, the repo only has
# cmake/make for the vendored OpenColorIO build (ocio-sys
# `bundled`; Ubuntu's libopencolorio-dev is older than the
# bridge's API floor) + rsvg-convert for the app icon
# (cargo-packager needs PNG/icns/ico, the repo only has
# Oak_Icon.svg).
sudo apt-get install -y \
libopencolorio-dev \
cmake \
librsvg2-bin \
libgl1-mesa-dev libgl1-mesa-dri mesa-vulkan-drivers \
libvulkan-dev libxkbcommon-dev
- name: Configure build environment
run: |
{
echo "OCIO_RS_ENABLE_REAL=1"
echo "OCIO_INSTALL_DIR=/usr"
echo "OCIO_RS_LINK=dynamic"
} >> "$GITHUB_ENV"
# No OCIO_INSTALL_DIR on purpose: the vendored OpenColorIO is
# built from source (see ci.yml).
echo "OCIO_RS_ENABLE_REAL=1" >> "$GITHUB_ENV"
- name: Cache cargo artifacts
uses: Swatinem/rust-cache@v2
@@ -129,14 +129,14 @@ jobs:
- name: Install system dependencies
run: |
tooling/install-deps.sh
brew install opencolorio librsvg
brew install cmake librsvg
- name: Configure build environment
run: |
{
# OCIO comes from the ocio-sys vendored source build (same on
# every platform); no OCIO_INSTALL_DIR override.
echo "OCIO_RS_ENABLE_REAL=1"
echo "OCIO_INSTALL_DIR=/opt/homebrew/opt/opencolorio"
echo "OCIO_RS_LINK=dynamic"
echo "CFLAGS=-I/opt/homebrew/include"
echo "LDFLAGS=-L/opt/homebrew/lib"
echo "PKG_CONFIG_PATH=/opt/homebrew/lib/pkgconfig/openjpeg"
@@ -229,14 +229,14 @@ jobs:
run: |
bash tooling/install-deps.sh
pacman -S --needed --noconfirm \
mingw-w64-ucrt-x86_64-opencolorio \
mingw-w64-ucrt-x86_64-cmake \
mingw-w64-ucrt-x86_64-librsvg
- name: Configure build environment
run: |
# OCIO comes from the ocio-sys vendored source build (same on
# every platform); no OCIO_INSTALL_DIR override.
echo "OCIO_RS_ENABLE_REAL=1" >> "$GITHUB_ENV"
echo "OCIO_INSTALL_DIR=/ucrt64" >> "$GITHUB_ENV"
echo "OCIO_RS_LINK=dynamic" >> "$GITHUB_ENV"
- name: Cache cargo artifacts
uses: Swatinem/rust-cache@v2