mirror of
https://github.com/bevyengine/bevy
synced 2024-12-18 17:13:10 +00:00
a8b9c945c7
# Objective - Contributes to #15460 ## Solution - Added two new features, `std` (default) and `alloc`, gating `std` and `alloc` behind them respectively. - Added missing `f32` functions to `std_ops` as required. These `f32` methods have been added to the `clippy.toml` deny list to aid in `no_std` development. ## Testing - CI - `cargo clippy -p bevy_math --no-default-features --features libm --target "x86_64-unknown-none"` - `cargo test -p bevy_math --no-default-features --features libm` - `cargo test -p bevy_math --no-default-features --features "libm, alloc"` - `cargo test -p bevy_math --no-default-features --features "libm, alloc, std"` - `cargo test -p bevy_math --no-default-features --features "std"` ## Notes The following items require the `alloc` feature to be enabled: - `CubicBSpline` - `CubicBezier` - `CubicCardinalSpline` - `CubicCurve` - `CubicGenerator` - `CubicHermite` - `CubicNurbs` - `CyclicCubicGenerator` - `RationalCurve` - `RationalGenerator` - `BoxedPolygon` - `BoxedPolyline2d` - `BoxedPolyline3d` - `SampleCurve` - `SampleAutoCurve` - `UnevenSampleCurve` - `UnevenSampleAutoCurve` - `EvenCore` - `UnevenCore` - `ChunkedUnevenCore` This requirement could be relaxed in certain cases, but I had erred on the side of gating rather than modifying. Since `no_std` is a new set of platforms we are adding support to, and the `alloc` feature is enabled by default, this is not a breaking change. --------- Co-authored-by: Benjamin Brienen <benjamin.brienen@outlook.com> Co-authored-by: Matty <2975848+mweatherley@users.noreply.github.com> Co-authored-by: Joona Aalto <jondolf.dev@gmail.com>
87 lines
2.7 KiB
TOML
87 lines
2.7 KiB
TOML
[package]
|
|
name = "bevy_math"
|
|
version = "0.15.0-dev"
|
|
edition = "2021"
|
|
description = "Provides math functionality for Bevy Engine"
|
|
homepage = "https://bevyengine.org"
|
|
repository = "https://github.com/bevyengine/bevy"
|
|
license = "MIT OR Apache-2.0"
|
|
keywords = ["bevy"]
|
|
rust-version = "1.81.0"
|
|
|
|
[dependencies]
|
|
glam = { version = "0.29", default-features = false, features = ["bytemuck"] }
|
|
derive_more = { version = "1", default-features = false, features = [
|
|
"error",
|
|
"from",
|
|
"display",
|
|
"into",
|
|
] }
|
|
itertools = { version = "0.13.0", default-features = false }
|
|
serde = { version = "1", default-features = false, features = [
|
|
"derive",
|
|
], optional = true }
|
|
libm = { version = "0.2", optional = true }
|
|
approx = { version = "0.5", default-features = false, optional = true }
|
|
rand = { version = "0.8", default-features = false, optional = true }
|
|
rand_distr = { version = "0.4.3", optional = true }
|
|
smallvec = { version = "1.11" }
|
|
bevy_reflect = { path = "../bevy_reflect", version = "0.15.0-dev", features = [
|
|
"glam",
|
|
], optional = true }
|
|
|
|
[dev-dependencies]
|
|
approx = "0.5"
|
|
# Supply rngs for examples and tests
|
|
rand = "0.8"
|
|
rand_chacha = "0.3"
|
|
# Enable the approx feature when testing.
|
|
bevy_math = { path = ".", version = "0.15.0-dev", default-features = false, features = [
|
|
"approx",
|
|
] }
|
|
glam = { version = "0.29", default-features = false, features = ["approx"] }
|
|
|
|
[features]
|
|
default = ["std", "rand", "bevy_reflect", "curve"]
|
|
std = [
|
|
"alloc",
|
|
"glam/std",
|
|
"derive_more/std",
|
|
"itertools/use_std",
|
|
"serde?/std",
|
|
"approx?/std",
|
|
"rand?/std",
|
|
"rand_distr?/std",
|
|
]
|
|
alloc = [
|
|
"itertools/use_alloc",
|
|
"serde?/alloc",
|
|
"rand?/alloc",
|
|
"rand_distr?/alloc",
|
|
]
|
|
|
|
serialize = ["dep:serde", "glam/serde"]
|
|
# Enable approx for glam types to approximate floating point equality comparisons and assertions
|
|
approx = ["dep:approx", "glam/approx"]
|
|
# Enable interoperation of glam types with mint-compatible libraries
|
|
mint = ["glam/mint"]
|
|
# Enable libm mathematical functions for glam types to ensure consistent outputs
|
|
# across platforms at the cost of losing hardware-level optimization using intrinsics
|
|
libm = ["dep:libm", "glam/libm"]
|
|
# Enable assertions to check the validity of parameters passed to glam
|
|
glam_assert = ["glam/glam-assert"]
|
|
# Enable assertions in debug builds to check the validity of parameters passed to glam
|
|
debug_glam_assert = ["glam/debug-glam-assert"]
|
|
# Enable the rand dependency for shape_sampling
|
|
rand = ["dep:rand", "dep:rand_distr", "glam/rand"]
|
|
# Include code related to the Curve trait
|
|
curve = []
|
|
# Enable bevy_reflect (requires std)
|
|
bevy_reflect = ["dep:bevy_reflect", "std"]
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[package.metadata.docs.rs]
|
|
rustdoc-args = ["-Zunstable-options", "--generate-link-to-definition"]
|
|
all-features = true
|