Three-crate Cargo workspace structured per PROJECT.md spec: - crates/sylpheed-formats — Xbox 360 format parsers (no Bevy) - crates/sylpheed-viewer — Bevy 0.15 asset viewer + egui UI - crates/sylpheed-cli — CLI tools (extract/list/sniff/texture) Milestone 1 features: - XISO disc image reading via xdvdfs 0.8 - XPR2 texture container parsing + Morton de-tiling - D3DFORMAT → wgpu TextureFormat mapping (DXT1/3/5, DXN, ARGB) - Custom Bevy AssetLoader for .xpr files - Orbit camera (LMB orbit, RMB pan, scroll zoom) - egui file browser + RE notes panel - CLI: extract / list / sniff / texture info / texture export - GitHub Actions CI (Linux, macOS, Windows, WASM) - Trunk WASM build config Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
49 lines
1.1 KiB
TOML
49 lines
1.1 KiB
TOML
[package]
|
|
name = "sylpheed-viewer"
|
|
description = "Bevy-based asset viewer for Project Sylpheed: Arc of Deception"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
authors.workspace = true
|
|
|
|
# Native binary entry point
|
|
[[bin]]
|
|
name = "sylpheed-viewer"
|
|
path = "src/main.rs"
|
|
|
|
# Library crate — also serves as the WASM entry point
|
|
[lib]
|
|
name = "sylpheed_viewer"
|
|
path = "src/lib.rs"
|
|
# cdylib is required for wasm-bindgen to produce a .wasm file
|
|
crate-type = ["cdylib", "rlib"]
|
|
|
|
[dependencies]
|
|
sylpheed-formats = { workspace = true }
|
|
|
|
bevy = { workspace = true, features = [
|
|
"bevy_asset",
|
|
"bevy_color",
|
|
"bevy_core_pipeline",
|
|
"bevy_pbr",
|
|
"bevy_render",
|
|
"bevy_window",
|
|
"bevy_winit",
|
|
"multi_threaded",
|
|
"png",
|
|
# Linux display backends
|
|
"x11",
|
|
"wayland",
|
|
] }
|
|
bevy_egui = { workspace = true }
|
|
|
|
thiserror = { workspace = true }
|
|
tracing = { workspace = true }
|
|
|
|
[features]
|
|
# Enable Bevy dynamic linking for faster incremental recompiles in dev
|
|
dev = ["bevy/dynamic_linking"]
|
|
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
tracing-subscriber = { workspace = true }
|