Commit Graph
4 Commits
Author SHA1 Message Date
Mike-Solar aba7298ab3 app: package the UI icons and resolve assets at runtime
- the packager resources only carried assets/i18n, so installed builds
  showed blank toolbar glyphs: add assets/icons to the Windows/macOS
  packages and install it to /usr/share/oak/icons in the deb/rpm/pkg
  scripts;
- icon_path resolved through the compile-time CARGO_MANIFEST_DIR (the CI
  checkout path), which never exists on a user machine: search the
  runtime layouts instead — dev checkout, next to the executable,
  Contents/Resources, usr/lib/oak-editor (cargo-packager's deb/AppImage
  layout) and /usr/share/oak — mirroring the i18n pack search, which
  gains the same usr/lib/oak-editor candidate so the AppImage finds its
  language packs too.

Verified: oak-app 556 tests pass; the deb and rpm now carry
/usr/share/oak/icons/{dark,light}/*.png.
2026-09-24 19:44:21 +08:00
Mike-Solar 71e41d2d82 app: ship the Oak icon on every platform surface
- Runtime window icon: X11 takes the embedded 512px PNG up front
  (_NET_WM_ICON), Wayland resolves it from oak.desktop via the app id,
  Windows reads it from the exe's icon resource.
- assets/appicon: 512px PNG + 7-size ICO rasterized from Oak_Icon.svg.
- Windows: oak.rc (ICON resource ID 1, also the Explorer icon) compiled
  by build.rs through embed-resource.
- Linux packaging (deb/rpm/PKGBUILD/oak.spec): install Oak_Icon.svg
  into the hicolor scalable theme alongside the existing 512px PNG.
- macOS: no change needed - cargo packager already builds the .icns
  from the CD-generated icons/icon.png (same source art).
2026-09-10 16:54:51 +08:00
Mike-Solar 5b38d07299 ci/cd: NVDEC-capable FFmpeg, GCC16-proof OCIO, system-first OCIO env
- Install ffnvcodec headers everywhere the project FFmpeg is built
  (distro packages on Debian/Ubuntu/Arch/MSYS2, nv-codec-headers from
  source on Fedora) so the FFmpeg build picks up NVDEC/NVENC.
- ocio-sys 0.2.1's vendored yaml-cpp misses <cstdint> and fails on
  GCC >= 16 (measured on GCC 16.2.1); patch the dependency to the
  fixed upstream tree (shaloong/ocio-rs, 933c65dc) until a fixed
  release lands on crates.io.
- New tooling/ocio-env.sh decides the OCIO build env per job: system
  OCIO >= 2.5 when present (static when the package ships
  libOpenColorIO.a, dynamic otherwise), vendored static build as the
  fallback. The Arch package gains an 'opencolorio' dependency only
  when the binaries link the system OCIO (build-pkg.sh probes ldd).
- CI 'Build' steps switch from cargo build to cargo check: the Test
  step links the test binaries anyway, and a full build would codegen
  every workspace crate twice.
2026-08-30 00:31:48 +08:00
Mike-Solar 32cd8f46f0 cd: container-native Linux packaging (deb/rpm/pacman) + AppImage
Each distro package builds inside that distro's container so declared
dependencies always resolve to native names: hand-rolled deb via
dpkg-shlibdeps + dpkg-deb, rpm via rpmbuild's auto-requires, Arch via
makepkg (non-root builder user). git/curl install before checkout
(container jobs). AppImage keeps cargo-packager on the Ubuntu runner.
The release gates on all four package jobs plus macOS/Windows.
2026-08-21 05:58:43 +08:00