mirror of
https://github.com/storytold/filmcraft.git
synced 2026-11-02 18:09:21 +00:00
178 lines
7.1 KiB
TOML
178 lines
7.1 KiB
TOML
[workspace]
|
|
resolver = "3"
|
|
members = ["crates/*", "apps/*", "xtask"]
|
|
default-members = ["crates/*", "apps/*", "xtask"]
|
|
|
|
[workspace.package]
|
|
version = "0.13.0"
|
|
edition = "2024"
|
|
license = "MIT OR Apache-2.0"
|
|
rust-version = "1.95"
|
|
repository = "https://github.com/storytold/filmcraft"
|
|
|
|
[workspace.dependencies]
|
|
# internal
|
|
filmcraft-time = { path = "crates/time" }
|
|
filmcraft-geom = { path = "crates/geom" }
|
|
filmcraft-color = { path = "crates/color" }
|
|
filmcraft-bitstream = { path = "crates/bitstream" }
|
|
filmcraft-isobmff = { path = "crates/isobmff" }
|
|
filmcraft-avi = { path = "crates/avi" }
|
|
filmcraft-matroska = { path = "crates/matroska" }
|
|
filmcraft-mxf = { path = "crates/mxf" }
|
|
filmcraft-cfb = { path = "crates/cfb" }
|
|
filmcraft-mpegts = { path = "crates/mpegts" }
|
|
filmcraft-mpeg2v = { path = "crates/mpeg2v" }
|
|
filmcraft-ac3 = { path = "crates/ac3" }
|
|
filmcraft-mpa = { path = "crates/mpa" }
|
|
filmcraft-ogg = { path = "crates/ogg" }
|
|
filmcraft-h264 = { path = "crates/h264" }
|
|
filmcraft-hevc = { path = "crates/hevc" }
|
|
filmcraft-vp8 = { path = "crates/vp8" }
|
|
filmcraft-vp9 = { path = "crates/vp9" }
|
|
filmcraft-prores = { path = "crates/prores" }
|
|
filmcraft-dnx = { path = "crates/dnx" }
|
|
filmcraft-apv = { path = "crates/apv" }
|
|
filmcraft-dng = { path = "crates/dng" }
|
|
filmcraft-av1 = { path = "crates/av1" }
|
|
filmcraft-aac = { path = "crates/aac" }
|
|
filmcraft-flac = { path = "crates/flac" }
|
|
filmcraft-opus = { path = "crates/opus" }
|
|
filmcraft-h264enc = { path = "crates/h264enc" }
|
|
filmcraft-audio-dsp = { path = "crates/audio-dsp" }
|
|
filmcraft-frame = { path = "crates/frame" }
|
|
filmcraft-media = { path = "crates/media" }
|
|
filmcraft-codecs = { path = "crates/codecs" }
|
|
filmcraft-project = { path = "crates/project" }
|
|
filmcraft-edit = { path = "crates/edit" }
|
|
filmcraft-interchange = { path = "crates/interchange" }
|
|
filmcraft-text = { path = "crates/text" }
|
|
filmcraft-captions = { path = "crates/captions" }
|
|
filmcraft-speech = { path = "crates/speech" }
|
|
filmcraft-tts = { path = "crates/tts" }
|
|
filmcraft-tts-text = { path = "crates/tts-text" }
|
|
filmcraft-render = { path = "crates/render" }
|
|
filmcraft-gpu = { path = "crates/gpu" }
|
|
filmcraft-scopes = { path = "crates/scopes" }
|
|
filmcraft-export = { path = "crates/export" }
|
|
filmcraft-format = { path = "crates/format" }
|
|
filmcraft-engine = { path = "crates/engine" }
|
|
filmcraft-ui-egui = { path = "crates/ui-egui" }
|
|
filmcraft-automation = { path = "crates/automation" }
|
|
filmcraft-platform = { path = "crates/platform" }
|
|
filmcraft-testkit = { path = "crates/testkit" }
|
|
|
|
# foundation
|
|
thiserror = "2"
|
|
serde = { version = "1", features = ["derive", "rc"] }
|
|
serde_json = "1"
|
|
log = "0.4"
|
|
# All date/time conversion goes through chrono (no hand-rolled calendar code beyond the 400-year range extension; AGENTS.md).
|
|
chrono = { version = "0.4.45", default-features = false, features = ["std"] }
|
|
rayon = "1"
|
|
proptest = "1"
|
|
roxmltree = "0.21"
|
|
craft-docpath = { version = "0.1.0", git = "https://github.com/storytold/craft-libs", rev = "37c907d23e608aaa098d7a48fa483670e90c6f33" }
|
|
craft-media = { version = "0.1.0", git = "https://github.com/storytold/craft-libs", rev = "37c907d23e608aaa098d7a48fa483670e90c6f33", default-features = false }
|
|
|
|
# ui
|
|
# Shared frontend components; keep this dependency above the engine boundary.
|
|
craft-ui = { version = "0.1.0", git = "https://github.com/storytold/craft-libs", rev = "37c907d23e608aaa098d7a48fa483670e90c6f33", features = ["serde", "native-windows"] }
|
|
# egui 0.37: bundled fonts are opt-in, and the monochrome symbol/emoji faces moved to their own
|
|
# feature. FilmCraft paints ✔ ✓ ✖ ⚡ ⚠ ⚙ ♪ ☑ in panel chrome, so both features are part of the
|
|
# production font policy (system_fonts stays off).
|
|
egui = { version = "0.37", features = ["default_fonts", "monochrome_emoji_fonts"] }
|
|
eframe = { version = "0.37", default-features = false }
|
|
egui_kittest = "0.37"
|
|
craft-update = { git = "https://github.com/storytold/craft-libs", version = "=0.1.0", rev = "37c907d23e608aaa098d7a48fa483670e90c6f33", features = ["egui"] }
|
|
rfd = "0.17"
|
|
|
|
[workspace.lints.rust]
|
|
unsafe_code = "forbid"
|
|
|
|
[workspace.lints.clippy]
|
|
dbg_macro = "warn"
|
|
todo = "warn"
|
|
too_many_arguments = "allow"
|
|
needless_range_loop = "allow"
|
|
type_complexity = "allow"
|
|
|
|
# Line tables keep file and line in panics and backtraces at a fraction of full debug info's size;
|
|
# dependencies need none.
|
|
[profile.dev.package."*"]
|
|
opt-level = 2
|
|
debug = false
|
|
|
|
[profile.dev]
|
|
opt-level = 1
|
|
debug = "line-tables-only"
|
|
|
|
# Codec hot loops: debug-build tests (RFC/oracle vectors) are minutes slower below opt-level 3.
|
|
[profile.dev.package.filmcraft-h264]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.filmcraft-h264enc]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.filmcraft-hevc]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.filmcraft-prores]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.filmcraft-dnx]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.filmcraft-apv]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.filmcraft-dng]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.filmcraft-av1]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.filmcraft-aac]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.filmcraft-flac]
|
|
opt-level = 3
|
|
|
|
# Audio effects: realtime-factor tests and long convolution / spectral runs.
|
|
[profile.dev.package.filmcraft-audio-dsp]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.filmcraft-mxf]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.filmcraft-opus]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.filmcraft-vp8]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.filmcraft-vp9]
|
|
opt-level = 3
|
|
|
|
[profile.release]
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
|
|
# Keep the complete egui family and native event bridge on reviewed fork commits.
|
|
[patch.crates-io]
|
|
ecolor = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
emath = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
epaint = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
epaint_default_fonts = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
egui = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
egui-winit = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
egui-wgpu = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
egui_glow = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
egui_extras = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
egui_kittest = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
egui_system_font_provider = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
eframe = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
egui_demo_lib = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
egui_inspection = { git = "https://github.com/storytold/egui.git", rev = "6d518fc799681571963842f95b55a6b68431b15a" }
|
|
winit = { git = "https://github.com/storytold/winit.git", rev = "a517b3846ee8457d84ee4975110bfda6797c44dc" }
|