ci/cd: drop vcpkg; distro packages + the project FFmpeg everywhere

Linux/macOS now follow the local-build path in CI and CD:
tooling/install-deps.sh installs the distro codec packages and
tooling/ffmpeg/build-ffmpeg.sh builds the pinned static FFmpeg into
.cache/ffmpeg, with FFMPEG_DIR/PKG_CONFIG_PATH pointing there. CI caches
the built tree keyed on the script, distro and arch (the
.build-complete marker rejects partial saves); CD rebuilds it from
scratch per its no-cache policy. Windows keeps BtbN's prebuilt shared
archive, downloaded from the release page and verified against its
checksums.sha256 — no pkg-config is needed there any more.

vcpkg.json, the release-only overlay triplets and the x264 mirror
overlay are deleted; docs/build.md describes the new flow.
This commit is contained in:
2026-09-24 18:50:00 +08:00
parent 725a1d4da0
commit 563a3625ca
17 changed files with 102 additions and 633 deletions
+12 -14
View File
@@ -36,15 +36,14 @@ macOS, Linux, and Windows. For the Chinese version see
config entry is the only machine-agnostic way). The `oak-ffmpeg-link`
build script panics without it; run `build-ffmpeg.sh` once before the
first `cargo build`.
- **CI/CD uses the vcpkg manifest instead of `build-ffmpeg.sh`.** Every
desktop job runs `vcpkg install --triplet <x64-windows | x64-linux |
arm64-osx | arm64-linux>` against the repo-root `vcpkg.json`, which
pins FFmpeg to **8.1.2#3** (`overrides`) and every other port through
`builtin-baseline`; the tree lands in `vcpkg_installed/<triplet>` and
jobs point `FFMPEG_DIR`/`PKG_CONFIG_PATH` at it. The C/C++ libraries
outside that set (OCIO is vendored, the rest come from the system
package manager) are unchanged. The local-build path above remains
valid and is what the docs below describe.
- **CI/CD follows the same path.** The Linux/macOS jobs run
`tooling/install-deps.sh` and `tooling/ffmpeg/build-ffmpeg.sh`, so the
release binaries and local builds share one FFmpeg configuration (the
built tree is cached in CI and rebuilt from scratch in CD). The
Windows jobs download a prebuilt FFmpeg — BtbN's shared GPL build, the
one ffmpeg.org links as the official Windows option — from its release
page, verify it against the published `checksums.sha256` and point
`FFMPEG_DIR` at it (no MSYS2 or vcpkg toolchain in CI).
## Quick start (macOS / Linux)
@@ -96,11 +95,10 @@ cargo test --workspace # Linux: see "headless tests" below
## Windows (MSYS2 UCRT64)
> **CI/CD note**: the GitHub Windows CI/CD no longer uses this path — it
> builds MSVC-ABI on `warp-windows-2025-vs2026-x64-16x` with vcpkg
> manifest mode (`vcpkg.json` at the repo root: FFmpeg 8.1.2 with every
> free codec + hwaccel, pkgconf, librsvg, all pinned by
> `overrides`/`builtin-baseline`) and the vendored static OCIO. The
> MSYS2 flow below remains the documented local-build alternative.
> builds MSVC-ABI on `warp-windows-2025-vs2026-x64-32x` with BtbN's
> prebuilt shared FFmpeg (downloaded from the release page and verified
> against its sha256) and the vendored static OCIO. The MSYS2 flow below
> remains the documented local-build alternative.
The Windows build targets **x86_64-pc-windows-gnu** with MSYS2's own
Rust; the MSVC toolchain is not supported (the build scripts emit