naga 24.0.0

Shader translator and validator. Part of the wgpu project
Documentation
[package]

name = "naga"

version = "24.0.0"

authors = ["gfx-rs developers"]

edition = "2021"

description = "Shader translator and validator. Part of the wgpu project"

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.4", 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"

strum.workspace = true

spirv = { version = "0.3", optional = true }

thiserror.workspace = true

serde = { version = "1.0.217", features = [

    "default",

    "derive",

], optional = true }

petgraph = { version = "0.7", 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 = ["default", "derive"] }

spirv = { version = "0.3", features = ["deserialize"] }