mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-06 01:15:42 -06:00
99 lines
3.6 KiB
TOML
99 lines
3.6 KiB
TOML
[package]
|
|
name = "pacman"
|
|
version = "0.2.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"]}
|
|
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"
|
|
|
|
[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" }
|