[package] name = "naga" version = "23.0.0" authors = ["gfx-rs developers"] edition = "2021" description = "Shader translation infrastructure" repository = "https://github.com/gfx-rs/wgpu/tree/trunk/naga" keywords = ["shader", "SPIR-V", "GLSL", "MSL"] license = "MIT OR Apache-2.0" exclude = ["bin/**/*", "tests/**/*", "Cargo.lock", "target/**/*"] resolver = "2" autotests = false # Override the workspace's `rust-version` key. Firefox uses `cargo vendor` to # copy the crates it actually uses out of the workspace, so it's meaningful for # them to have less restrictive MSRVs individually than the workspace as a # whole, if their code permits. See `../README.md` for details. rust-version = "1.76" [[test]] name = "naga-test" path = "tests/root.rs" [package.metadata.docs.rs] all-features = true [features] default = [] dot-out = [] glsl-in = ["dep:pp-rs"] glsl-out = [] ## Enables outputting to the Metal Shading Language (MSL). ## ## This enables MSL output regardless of the target platform. ## If you want to enable it only when targeting iOS/tvOS/watchOS/macOS, use `naga/msl-out-if-target-apple`. msl-out = [] ## Enables outputting to the Metal Shading Language (MSL) only if the target platform is iOS/tvOS/watchOS/macOS. ## ## If you want to enable MSL output it regardless of the target platform, use `naga/msl-out`. msl-out-if-target-apple = [] serialize = ["dep:serde", "bitflags/serde", "indexmap/serde"] deserialize = ["dep:serde", "bitflags/serde", "indexmap/serde"] arbitrary = ["dep:arbitrary", "bitflags/arbitrary", "indexmap/arbitrary"] spv-in = ["dep:petgraph", "dep:spirv"] spv-out = ["dep:spirv"] wgsl-in = ["dep:hexf-parse", "dep:unicode-xid", "compact"] wgsl-out = [] ## Enables outputting to HLSL (Microsoft's High-Level Shader Language). ## ## This enables HLSL output regardless of the target platform. ## If you want to enable it only when targeting Windows, use `hlsl-out-if-target-windows`. hlsl-out = [] ## Enables outputting to HLSL (Microsoft's High-Level Shader Language) only if the target platform is Windows. ## ## If you want to enable HLSL output it regardless of the target platform, use `naga/hlsl-out`. hlsl-out-if-target-windows = [] compact = [] [dependencies] arbitrary = { version = "1.3", features = ["derive"], optional = true } arrayvec.workspace = true bitflags.workspace = true bit-set.workspace = true termcolor = { version = "1.4.1" } # remove termcolor dep when updating to the next version of codespan-reporting # termcolor minimum version was wrong and was fixed in # https://github.com/brendanzab/codespan/commit/e99c867339a877731437e7ee6a903a3d03b5439e codespan-reporting = { version = "0.11.0" } rustc-hash.workspace = true indexmap.workspace = true log = "0.4" spirv = { version = "0.3", optional = true } thiserror.workspace = true serde = { version = "1.0.213", features = ["derive"], optional = true } petgraph = { version = "0.6", optional = true } pp-rs = { version = "0.2.1", optional = true } hexf-parse = { version = "0.2.1", optional = true } unicode-xid = { version = "0.2.6", optional = true } [build-dependencies] cfg_aliases.workspace = true [dev-dependencies] diff = "0.1" env_logger.workspace = true itertools.workspace = true # This _cannot_ have a version specified. If it does, crates.io will look # for a version of the package on crates when we publish naga. Path dependencies # are allowed through though. hlsl-snapshots = { path = "./hlsl-snapshots" } # Require at least version 0.7.1 of ron, this version changed how floating points are # serialized by forcing them to always have the decimal part, this makes it backwards # incompatible with our tests because we do a syntactic diff and not a semantic one. ron = "0.8.0" rspirv = { version = "0.11", git = "https://github.com/gfx-rs/rspirv", rev = "b969f175d5663258b4891e44b76c1544da9661ab" } serde = { workspace = true, features = ["derive"] } spirv = { version = "0.3", features = ["deserialize"] } strum.workspace = true