[package]
name = "spottedcat"
version = "1.0.1"
edition = "2024"
autoexamples = false
authors = ["Arion <arion.dsh@gmail.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/arion-dsh/spottedcat"
description = "Rusty SpottedCat simple game engine"
readme = "README.md"
exclude = [
    "examples/android/**",
    "examples/ios/**",
    "examples/wasm/**",
    "assets/**",
]



[package.metadata.docs.rs]
all-features = true

[dependencies]
wgpu = { version = "28", features = ["gles"] }
bytemuck = { version = "1", features = ["derive"] }
anyhow = "1"
ab_glyph = "0.2"
cpal = { version = "0.17.3", features = ["wasm-bindgen"] }
symphonia = { version = "0.5", features = ["all"] }
image = { version = "0.25", optional = true }
gltf = { version = "1.4.1", optional = true }
ultraviolet = { version = "0.10.0", features = ["bytemuck"] }

[target.'cfg(not(target_os = "android"))'.dependencies]
winit = { version = "0.30" }

[target.'cfg(any(target_os = "windows", target_os = "macos", target_os = "linux"))'.dependencies]
gilrs = "0.11"

[target.'cfg(target_os = "android")'.dependencies]
ndk-sys = "0.6"
android-activity = { version = "0.6.1", features = ["game-activity"] }
ndk = "0.9.0"
rwh_06 = { package = "raw-window-handle", version = "0.6" }
jni = "0.21"

[target.'cfg(target_os = "ios")'.dependencies]
objc2 = { version = "0.6.3" }
objc2-foundation = { version = "0.3.2" }
objc2-core-motion = { version = "0.3.2" }
block2 = { version = "0.6.2" }

[dev-dependencies]
fundsp = "0.18"


[features]
default = []
model-3d = []
effects = ["model-3d"]
utils = ["dep:image"]
gltf = ["dep:gltf", "model-3d", "utils"]
sensors = []

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies]
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
console_error_panic_hook = "0.1"
web-time = "1"
web-sys = { version = "0.3", features = ["console", "Document", "Element", "HtmlCanvasElement", "Window"] }


[[example]]
name = "input_example"
path = "examples/input_example.rs"

[[example]]
name = "async_loading_example"
path = "examples/async_loading_example.rs"

[[example]]
name = "audio_test"
path = "examples/audio_test.rs"

[[example]]
name = "centered_text_test"
path = "examples/centered_text_test.rs"

[[example]]
name = "flip_test"
path = "examples/flip_test.rs"

[[example]]
name = "advanced_image_shader_full"
path = "examples/advanced_image_shader_full.rs"

[[example]]
name = "image_shader_template"
path = "examples/image_shader_template.rs"

[[example]]
name = "seven_level_test"
path = "examples/seven_level_test.rs"

[[example]]
name = "text_performance_test"
path = "examples/text_performance_test.rs"

[[example]]
name = "happy_tree_desktop"
path = "examples/happy_tree_desktop.rs"
required-features = ["utils"]

[[example]]
name = "rgb_image"
path = "examples/rgb_image.rs"

[[example]]
name = "rotation_aspect_test"
path = "examples/rotation_aspect_test.rs"

[[example]]
name = "one_shot_splash"
path = "examples/one_shot_splash.rs"

[[example]]
name = "gltf_loader"
path = "examples/gltf_loader.rs"
required-features = ["gltf"]

[[example]]
name = "animated_gltf"
path = "examples/animated_gltf.rs"
required-features = ["gltf"]

[[example]]
name = "billboard"
path = "examples/billboard.rs"
required-features = ["model-3d"]

[[example]]
name = "fog_world"
path = "examples/fog_world.rs"
required-features = ["model-3d", "effects"]

[[example]]
name = "instancing_test"
path = "examples/instancing_test.rs"
required-features = ["model-3d"]

[[example]]
name = "metal_sphere"
path = "examples/metal_sphere.rs"
required-features = ["model-3d"]

[[example]]
name = "advanced_model_shader_full"
path = "examples/advanced_model_shader_full.rs"
required-features = ["model-3d"]

[[example]]
name = "mixed_model_shader_stress"
path = "examples/mixed_model_shader_stress.rs"
required-features = ["model-3d"]

[[example]]
name = "model_test"
path = "examples/model_test.rs"
required-features = ["model-3d"]

[[example]]
name = "atlas_subimage_move_test"
path = "examples/atlas_subimage_move_test.rs"
required-features = ["utils"]

[[example]]
name = "render_state_stress"
path = "examples/render_state_stress.rs"
required-features = ["model-3d"]

[[example]]
name = "touch_test"
path = "examples/touch_test.rs"

[lib]
crate-type = ["rlib", "cdylib", "staticlib"]
