[package] name = "pacman" version = "0.77.0" authors = ["Xevion"] edition = "2021" rust-version = "1.86.0" description = "A cross-platform retro Pac-Man clone, written in Rust and supported by SDL2" readme = true homepage = "https://pacman.xevion.dev" repository = "https://github.com/Xevion/Pac-Man" license = "GPL-3.0-or-later" keywords = ["game", "pacman", "arcade", "sdl2"] categories = ["games", "emulators"] publish = false exclude = ["/assets/unpacked/**", "/assets/site/**", "/bacon.toml", "/Justfile"] default-run = "pacman" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] bevy_ecs = "0.16.1" glam = "0.30.5" pathfinding = "4.14" tracing = { version = "0.1.41", features = ["max_level_debug", "release_max_level_debug"]} tracing-error = "0.2.0" tracing-subscriber = {version = "0.3.20", features = ["env-filter"]} time = { version = "0.3.43", features = ["formatting", "macros"] } thiserror = "2.0.16" anyhow = "1.0" smallvec = "1.15.1" bitflags = "2.9.4" micromap = "0.1.0" circular-buffer = "1.1.0" parking_lot = "0.12.3" strum = "0.27.2" strum_macros = "0.27.2" thousands = "0.2.0" num-width = "0.1.0" # While not actively used in code, `build.rs` generates code that relies on this. Keep the versions synchronized. phf = { version = "0.13.1", features = ["macros"] } # Windows-specific dependencies [target.'cfg(target_os = "windows")'.dependencies] # Used for customizing console output on Windows; both are required due to the `windows` crate having poor Result handling with `GetStdHandle`. windows = { version = "0.61.3", features = ["Win32_Security", "Win32_Storage_FileSystem", "Win32_System_Console"] } windows-sys = { version = "0.60.2", features = ["Win32_System_Console"] } # Desktop-specific dependencies [target.'cfg(not(target_os = "emscripten"))'.dependencies] # On desktop platforms, build SDL2 with cargo-vcpkg sdl2 = { version = "0.38", default-features = false, features = ["image", "ttf", "gfx", "mixer", "unsafe_textures", "static-link", "use-vcpkg"] } rand = { version = "0.9.2", default-features = false, features = ["thread_rng"] } spin_sleep = "1.3.2" # Browser-specific dependencies [target.'cfg(target_os = "emscripten")'.dependencies] # On Emscripten, we don't use cargo-vcpkg sdl2 = { version = "0.38", default-features = false, features = ["image", "ttf", "gfx", "mixer", "unsafe_textures"] } # TODO: Document why Emscripten cannot use `os_rng`. rand = { version = "0.9.2", default-features = false, features = ["small_rng", "os_rng"] } libc = "0.2.175" # TODO: Describe why this is required. [dev-dependencies] pretty_assertions = "1.4.1" speculoos = "0.13.0" [build-dependencies] phf = { version = "0.13.1", features = ["macros"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0.143" # phf generates runtime code which machete will not detect [package.metadata.cargo-machete] ignored = ["phf"] # Release profile for profiling (essentially the default 'release' profile with debug enabled) [profile.profile] inherits = "release" debug = true # Undo the customizations for our release profile opt-level = 3 lto = false panic = 'unwind' # Optimized release profile for size [profile.release] opt-level = "z" lto = true panic = "abort" [package.metadata.vcpkg] dependencies = ["sdl2", "sdl2-image", "sdl2-ttf", "sdl2-gfx", "sdl2-mixer"] git = "https://github.com/microsoft/vcpkg" rev = "2024.05.24" # to check for a new one, check https://github.com/microsoft/vcpkg/releases [package.metadata.vcpkg.target] x86_64-pc-windows-msvc = { triplet = "x64-windows-static-md" } x86_64-unknown-linux-gnu = { triplet = "x64-linux" } x86_64-apple-darwin = { triplet = "x64-osx" } aarch64-apple-darwin = { triplet = "arm64-osx" } [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(coverage,coverage_nightly)'] }