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).
40 lines
1.7 KiB
TOML
40 lines
1.7 KiB
TOML
[package]
|
|
name = "oakcommon"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Oak Video Editor shared utilities (Rust)"
|
|
license = "GPL-3.0-or-later"
|
|
|
|
[lib]
|
|
crate-type = ["staticlib", "rlib"]
|
|
|
|
[features]
|
|
# Compile the in-crate ffmpeg_bridge mock (fb_find_best_pix_fmt_of_list stub)
|
|
# so the integration tests can link without libffmpeg_bridge. Without this
|
|
# flag, `cargo test --lib` still works (the stub is active under `cfg(test)`),
|
|
# but the C ABI wrapper tests in tests/ffi_ffmpegutils.rs need it. This
|
|
# mirrors the `test-stubs` convention of oakplugin / oaktimeline.
|
|
test-stubs = []
|
|
|
|
[dependencies]
|
|
oakcore-rs = { path = "../oakcore" }
|
|
quick-xml = "0.41.0"
|
|
log = "0.4"
|
|
# TOML persistence for the application config (configstore.rs). Already in
|
|
# Cargo.lock as a transitive dependency (0.8.23); promoted to a direct one.
|
|
toml = "0.8"
|
|
# OpenColorIO bindings (crates.io `ocio-rs`, BSD-3-Clause). ocioutils.rs maps
|
|
# PixelFormat to the real `ocio_rs::BitDepth` enum and wraps
|
|
# `ocio_rs::Config`/`CPUProcessor` for config loading and RGBA transforms.
|
|
# Rationale registered in README.md. The `bundled` feature builds the vendored
|
|
# OpenColorIO from source — all platforms build the SAME OCIO version (distro
|
|
# packages are too old for the bridge's API floor, e.g. Ubuntu 24.04's 2.1).
|
|
# An explicit OCIO_INSTALL_DIR still wins over the vendored build when set.
|
|
ocio-rs = { version = "0.2.1", features = ["bundled"] }
|
|
# Pure-Rust image I/O (crates.io `image`, MIT OR Apache-2.0); default features
|
|
# off, TIFF enabled — the only format current callers need. oiioutils.rs
|
|
# derives per-channel bit depths from its color-type tables and does float
|
|
# image I/O through it. See README.md.
|
|
image = { version = "0.25", default-features = false, features = ["tiff"] }
|
|
thiserror = "2"
|