# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.92"
name = "nightshade"
version = "0.47.0"
authors = ["Matthew Berger <matthewjordanberger@gmail.com>"]
build = false
exclude = [
    "images/apps/*",
    "images/gallery/*",
    "images/hero.png",
    "images/dragon-attenuation.png",
    "images/live-demo.png",
    "images/logo2.png",
    "images/logo2.svg",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A cross-platform data-oriented game engine."
homepage = "https://github.com/matthewjberger/nightshade"
readme = "README.md"
keywords = [
    "gamedev",
    "engine",
    "ecs",
    "wgpu",
    "webgpu",
]
categories = [
    "game-engines",
    "graphics",
    "rendering::engine",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/matthewjberger/nightshade"
resolver = "2"

[package.metadata.cargo-machete]
ignored = ["getrandom"]

[features]
assets = [
    "core",
    "dep:gltf",
    "dep:half",
    "dep:image",
    "dep:bincode",
    "dep:serde_json",
    "dep:lz4_flex",
    "dep:bevy_mikktspace",
]
audio = ["dep:kira"]
chrome = [
    "tracing",
    "dep:tracing-chrome",
]
core = [
    "dep:freecs",
    "dep:bytemuck",
    "dep:bitflags",
    "dep:tracing",
    "dep:tracing-subscriber",
    "dep:thiserror",
    "dep:nalgebra",
    "dep:nalgebra-glm",
    "dep:raw-window-handle",
    "dep:web-time",
    "dep:winit",
    "dep:accesskit",
    "dep:accesskit_winit",
    "dep:mint",
    "dep:uuid",
    "dep:getrandom",
    "dep:console_error_panic_hook",
    "dep:tracing-web",
    "dep:pollster",
    "dep:petgraph",
    "dep:serde_json",
]
debug_render = []
default = [
    "engine",
    "wgpu",
]
egui = [
    "dep:egui",
    "dep:egui_extras",
    "dep:egui-wgpu",
    "dep:egui-winit",
]
engine = [
    "runtime",
    "assets",
    "scene_graph",
    "picking",
    "file_dialog",
    "screenshot",
    "dep:rand",
    "dep:ehttp",
    "dep:futures",
    "dep:js-sys",
    "dep:wasm-bindgen",
    "dep:wasm-bindgen-futures",
    "dep:web-sys",
]
fbx = [
    "assets",
    "dep:ufbx",
]
file_dialog = [
    "core",
    "dep:rfd",
    "dep:dirs",
]
file_watcher = ["dep:notify"]
full = [
    "engine",
    "wgpu",
    "shell",
    "audio",
    "physics",
    "gamepad",
    "navmesh",
    "networking",
    "grass",
    "terrain",
]
gamepad = ["dep:gilrs"]
gizmos = []
grass = []
navmesh = []
navmesh-bake = [
    "navmesh",
    "dep:rerecast",
    "dep:glam",
]
networking = ["dep:hearsay"]
physics = ["dep:rapier3d"]
picking = []
runtime = [
    "core",
    "dep:cosmic-text",
]
scene_graph = ["assets"]
screenshot = ["dep:image"]
shell = []
steam = [
    "dep:steamworks",
    "dep:steamworks-sys",
]
terrain = ["grass"]
tracing = [
    "dep:tracing-appender",
    "dep:chrono",
]
tracy = [
    "tracing",
    "dep:tracing-tracy",
]
wgpu = [
    "dep:wgpu",
    "dep:naga_oil",
    "wgpu/wgsl",
    "wgpu/naga-ir",
    "wgpu/dx12",
    "wgpu/metal",
    "wgpu/vulkan",
    "wgpu/webgpu",
]
windows-app-icon = [
    "dep:winresource",
    "dep:ico",
    "dep:image",
]

[lib]
name = "nightshade"
path = "src/lib.rs"

[dependencies.base64]
version = "0.22"

[dependencies.bevy_mikktspace]
version = "1.0"
optional = true

[dependencies.bincode]
version = "1.3"
optional = true

[dependencies.bitflags]
version = "2.10.0"
features = ["serde"]
optional = true

[dependencies.bytemuck]
version = "1.25.0"
optional = true

[dependencies.cosmic-text]
version = "0.16"
optional = true

[dependencies.egui]
version = "0.34"
features = [
    "bytemuck",
    "default_fonts",
]
optional = true
default-features = false

[dependencies.egui-wgpu]
version = "0.34"
features = ["winit"]
optional = true
default-features = false

[dependencies.egui-winit]
version = "0.34"
features = ["links"]
optional = true
default-features = false

[dependencies.egui_extras]
version = "0.34"
features = ["all_loaders"]
optional = true
default-features = false

[dependencies.ehttp]
version = "0.6"
optional = true

[dependencies.enum2schema]
version = "0.1.2"
features = ["nalgebra-glm"]

[dependencies.freecs]
version = "2.0.0"
optional = true

[dependencies.getrandom]
version = "0.3"
features = ["wasm_js"]
optional = true

[dependencies.gilrs]
version = "0.11.0"
optional = true

[dependencies.glam]
version = "0.30"
optional = true

[dependencies.gltf]
version = "1.4.1"
features = [
    "KHR_lights_punctual",
    "KHR_materials_unlit",
    "KHR_texture_transform",
    "names",
    "KHR_materials_pbrSpecularGlossiness",
    "KHR_materials_transmission",
    "KHR_materials_volume",
    "KHR_materials_ior",
    "KHR_materials_specular",
    "KHR_materials_emissive_strength",
    "extensions",
    "import",
    "allow_empty_texture",
]
optional = true

[dependencies.half]
version = "2.7.1"
optional = true

[dependencies.hearsay]
version = "0.1"
optional = true

[dependencies.kira]
version = "0.11.0"
optional = true

[dependencies.lz4_flex]
version = "0.11"
optional = true

[dependencies.mint]
version = "0.5"
optional = true

[dependencies.naga_oil]
version = "0.22"
optional = true
default-features = false

[dependencies.nalgebra]
version = "0.34.1"
features = ["serde-serialize"]
optional = true

[dependencies.nalgebra-glm]
version = "0.20.0"
features = ["convert-bytemuck"]
optional = true

[dependencies.petgraph]
version = "0.8"
features = ["serde-1"]
optional = true

[dependencies.pollster]
version = "0.4"
optional = true

[dependencies.rand]
version = "0.9"
optional = true

[dependencies.rapier3d]
version = "0.30"
features = [
    "debug-render",
    "serde-serialize",
]
optional = true

[dependencies.raw-window-handle]
version = "0.6.2"
optional = true

[dependencies.rerecast]
version = "0.2"
features = ["std"]
optional = true
default-features = false

[dependencies.serde]
version = "1.0.228"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"
optional = true

[dependencies.taffy]
version = "0.7"

[dependencies.thiserror]
version = "2.0"
optional = true

[dependencies.tracing]
version = "0.1"
optional = true

[dependencies.uuid]
version = "1.0"
features = [
    "v4",
    "v5",
    "serde",
]
optional = true

[dependencies.web-time]
version = "1.1.0"
optional = true

[dependencies.wgpu]
version = "29"
optional = true
default-features = false

[dependencies.winit]
version = "0.30.13"
features = ["serde"]
optional = true

[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "android")))'.dependencies.accesskit]
version = "0.24"
optional = true

[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "android")))'.dependencies.accesskit_winit]
version = "0.33"
optional = true

[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "android")))'.dependencies.arboard]
version = "3"

[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "android")))'.dependencies.rfd]
version = "0.17"
optional = true

[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "android")))'.dependencies.webbrowser]
version = "1"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.chrono]
version = "0.4"
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.dirs]
version = "6.0"
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.hearsay]
version = "0.1"
features = [
    "spawn",
    "websockets",
]
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.image]
version = "0.25"
features = [
    "png",
    "jpeg",
    "hdr",
    "gif",
    "webp",
]
optional = true
default-features = false

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.notify]
version = "7"
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.steamworks]
version = "0.13"
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.steamworks-sys]
version = "0.13"
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tracing-appender]
version = "0.2"
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tracing-chrome]
version = "0.7"
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tracing-tracy]
version = "0.11"
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.ufbx]
version = "0.10"
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.console_error_panic_hook]
version = "0.1.7"
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.futures]
version = "0.3.32"
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.image]
version = "0.25"
features = [
    "png",
    "jpeg",
    "hdr",
    "gif",
    "webp",
]
optional = true
default-features = false

[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3"
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.tracing-web]
version = "0.1"
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.uuid]
version = "1.0"
features = [
    "v4",
    "v5",
    "js",
    "serde",
]
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2.114"
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4.64"
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3"
features = [
    "Blob",
    "BlobPropertyBag",
    "ClipboardEvent",
    "DataTransfer",
    "DataTransferItem",
    "DataTransferItemList",
    "DedicatedWorkerGlobalScope",
    "Document",
    "DragEvent",
    "Element",
    "Event",
    "EventTarget",
    "File",
    "FileList",
    "FileReader",
    "FileSystemDirectoryEntry",
    "FileSystemDirectoryReader",
    "FileSystemEntry",
    "FileSystemFileEntry",
    "HtmlAnchorElement",
    "HtmlInputElement",
    "ProgressEvent",
    "Url",
    "Window",
]
optional = true

[target."cfg(windows)".dependencies.ico]
version = "0.5"
optional = true

[target."cfg(windows)".dependencies.winresource]
version = "0.1"
optional = true
