bevy/crates/bevy_transform/Cargo.toml

58 lines
1.9 KiB
TOML
Raw Normal View History

[package]
2020-01-19 10:02:12 +00:00
name = "bevy_transform"
version = "0.15.0-dev"
edition = "2021"
Split bevy_hierarchy out from bevy_transform (#4168) # Objective - Hierarchy tools are not just used for `Transform`: they are also used for scenes. - In the future there's interest in using them for other features, such as visiibility inheritance. - The fact that these tools are found in `bevy_transform` causes a great deal of user and developer confusion - Fixes #2758. ## Solution - Split `bevy_transform` into two! - Make everything work again. Note that this is a very tightly scoped PR: I *know* there are code quality and docs issues that existed in bevy_transform that I've just moved around. We should fix those in a seperate PR and try to merge this ASAP to reduce the bitrot involved in splitting an entire crate. ## Frustrations The API around `GlobalTransform` is a mess: we have massive code and docs duplication, no link between the two types and no clear way to extend this to other forms of inheritance. In the medium-term, I feel pretty strongly that `GlobalTransform` should be replaced by something like `Inherited<Transform>`, which lives in `bevy_hierarchy`: - avoids code duplication - makes the inheritance pattern extensible - links the types at the type-level - allows us to remove all references to inheritance from `bevy_transform`, making it more useful as a standalone crate and cleaning up its docs ## Additional context - double-blessed by @cart in https://github.com/bevyengine/bevy/issues/4141#issuecomment-1063592414 and https://github.com/bevyengine/bevy/issues/2758#issuecomment-913810963 - preparation for more advanced / cleaner hierarchy tools: go read https://github.com/bevyengine/rfcs/pull/53 ! - originally attempted by @finegeometer in #2789. It was a great idea, just needed more discussion! Co-authored-by: Carter Anderson <mcanders1@gmail.com>
2022-03-15 01:54:05 +00:00
description = "Provides transform functionality for Bevy Engine"
2020-08-10 00:24:27 +00:00
homepage = "https://bevyengine.org"
repository = "https://github.com/bevyengine/bevy"
Relicense Bevy under the dual MIT or Apache-2.0 license (#2509) This relicenses Bevy under the dual MIT or Apache-2.0 license. For rationale, see #2373. * Changes the LICENSE file to describe the dual license. Moved the MIT license to docs/LICENSE-MIT. Added the Apache-2.0 license to docs/LICENSE-APACHE. I opted for this approach over dumping both license files at the root (the more common approach) for a number of reasons: * Github links to the "first" license file (LICENSE-APACHE) in its license links (you can see this in the wgpu and rust-analyzer repos). People clicking these links might erroneously think that the apache license is the only option. Rust and Amethyst both use COPYRIGHT or COPYING files to solve this problem, but this creates more file noise (if you do everything at the root) and the naming feels way less intuitive. * People have a reflex to look for a LICENSE file. By providing a single license file at the root, we make it easy for them to understand our licensing approach. * I like keeping the root clean and noise free * There is precedent for putting the apache and mit license text in sub folders (amethyst) * Removed the `Copyright (c) 2020 Carter Anderson` copyright notice from the MIT license. I don't care about this attribution, it might make license compliance more difficult in some cases, and it didn't properly attribute other contributors. We shoudn't replace it with something like "Copyright (c) 2021 Bevy Contributors" because "Bevy Contributors" is not a legal entity. Instead, we just won't include the copyright line (which has precedent ... Rust also uses this approach). * Updates crates to use the new "MIT OR Apache-2.0" license value * Removes the old legion-transform license file from bevy_transform. bevy_transform has been its own, fully custom implementation for a long time and that license no longer applies. * Added a License section to the main readme * Updated our Bevy Plugin licensing guidelines. As a follow-up we should update the website to properly describe the new license. Closes #2373
2021-07-23 21:11:51 +00:00
license = "MIT OR Apache-2.0"
2020-08-10 00:24:27 +00:00
keywords = ["bevy"]
[dependencies]
# bevy
bevy_app = { path = "../bevy_app", version = "0.15.0-dev", optional = true }
bevy_ecs = { path = "../bevy_ecs", version = "0.15.0-dev", features = [
"bevy_reflect",
Allow bevy_transform to be used as a barebones dependency (#13533) # Objective Fixes https://github.com/bevyengine/bevy/issues/13529 Allow using the `bevy_transform` crate for its definitions of `Transform` (and `GlobalTransform`) which are re-usable in many contexts, including ones where other parts of Bevy (ECS, reflection, etc.) are not necessarily needed or wanted due to the big dependency tree. ## Solution Introduce a feature flag "bevy-support" in the `bevy_transform` crate which makes the dependency tree small when default features are off. ## Testing Both `cargo b` and `cargo b --no-default-features` builds. The dependency tree **before**: ```text bevy_transform v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_transform) ├── bevy_app v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_app) │ ├── bevy_derive v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_derive) │ │ ├── bevy_macro_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_macro_utils) │ │ │ ├── proc-macro2 v1.0.83 │ │ │ │ └── unicode-ident v1.0.12 │ │ │ ├── quote v1.0.36 │ │ │ │ └── proc-macro2 v1.0.83 (*) │ │ │ ├── syn v2.0.65 │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ └── unicode-ident v1.0.12 │ │ │ └── toml_edit v0.22.13 │ │ │ ├── indexmap v2.2.6 │ │ │ │ ├── equivalent v1.0.1 │ │ │ │ └── hashbrown v0.14.5 │ │ │ ├── toml_datetime v0.6.6 │ │ │ └── winnow v0.6.8 │ │ ├── quote v1.0.36 (*) │ │ └── syn v2.0.65 (*) │ ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) │ │ ├── bevy_ecs_macros v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_ecs/macros) │ │ │ ├── bevy_macro_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_macro_utils) (*) │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ ├── quote v1.0.36 (*) │ │ │ └── syn v2.0.65 (*) │ │ ├── bevy_ptr v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ptr) │ │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) │ │ │ ├── bevy_math v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_math) │ │ │ │ ├── approx v0.5.1 │ │ │ │ │ └── num-traits v0.2.19 │ │ │ │ │ [build-dependencies] │ │ │ │ │ └── autocfg v1.3.0 │ │ │ │ ├── glam v0.27.0 │ │ │ │ │ ├── approx v0.5.1 (*) │ │ │ │ │ ├── bytemuck v1.16.0 │ │ │ │ │ ├── rand v0.8.5 │ │ │ │ │ │ └── rand_core v0.6.4 │ │ │ │ │ └── serde v1.0.202 │ │ │ │ │ └── serde_derive v1.0.202 (proc-macro) │ │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ │ └── syn v2.0.65 (*) │ │ │ │ ├── rand v0.8.5 (*) │ │ │ │ ├── serde v1.0.202 (*) │ │ │ │ ├── smallvec v1.13.2 │ │ │ │ └── thiserror v1.0.61 │ │ │ │ └── thiserror-impl v1.0.61 (proc-macro) │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ └── syn v2.0.65 (*) │ │ │ ├── bevy_ptr v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ptr) │ │ │ ├── bevy_reflect_derive v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_reflect/derive) │ │ │ │ ├── bevy_macro_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_macro_utils) (*) │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ ├── syn v2.0.65 (*) │ │ │ │ └── uuid v1.8.0 │ │ │ │ └── getrandom v0.2.15 │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ └── libc v0.2.155 │ │ │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) │ │ │ │ ├── ahash v0.8.11 │ │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ │ ├── getrandom v0.2.15 (*) │ │ │ │ │ ├── once_cell v1.19.0 │ │ │ │ │ └── zerocopy v0.7.34 │ │ │ │ │ [build-dependencies] │ │ │ │ │ └── version_check v0.9.4 │ │ │ │ ├── bevy_utils_proc_macros v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_utils/macros) │ │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ │ └── syn v2.0.65 (*) │ │ │ │ ├── hashbrown v0.14.5 │ │ │ │ │ ├── ahash v0.8.11 (*) │ │ │ │ │ ├── allocator-api2 v0.2.18 │ │ │ │ │ └── serde v1.0.202 (*) │ │ │ │ ├── thread_local v1.1.8 │ │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ │ └── once_cell v1.19.0 │ │ │ │ ├── tracing v0.1.40 │ │ │ │ │ ├── pin-project-lite v0.2.14 │ │ │ │ │ └── tracing-core v0.1.32 │ │ │ │ │ └── once_cell v1.19.0 │ │ │ │ └── web-time v0.2.4 │ │ │ ├── downcast-rs v1.2.1 │ │ │ ├── erased-serde v0.4.5 │ │ │ │ ├── serde v1.0.202 (*) │ │ │ │ └── typeid v1.0.0 │ │ │ ├── glam v0.27.0 (*) │ │ │ ├── serde v1.0.202 (*) │ │ │ ├── smallvec v1.13.2 │ │ │ ├── smol_str v0.2.2 │ │ │ └── thiserror v1.0.61 (*) │ │ ├── bevy_tasks v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_tasks) │ │ │ ├── async-executor v1.11.0 │ │ │ │ ├── async-task v4.7.1 │ │ │ │ ├── concurrent-queue v2.5.0 │ │ │ │ │ └── crossbeam-utils v0.8.20 │ │ │ │ ├── fastrand v2.1.0 │ │ │ │ ├── futures-lite v2.3.0 │ │ │ │ │ ├── fastrand v2.1.0 │ │ │ │ │ ├── futures-core v0.3.30 │ │ │ │ │ ├── futures-io v0.3.30 │ │ │ │ │ ├── parking v2.2.0 │ │ │ │ │ └── pin-project-lite v0.2.14 │ │ │ │ └── slab v0.4.9 │ │ │ │ [build-dependencies] │ │ │ │ └── autocfg v1.3.0 │ │ │ └── futures-lite v2.3.0 (*) │ │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ │ ├── bitflags v2.5.0 │ │ ├── concurrent-queue v2.5.0 (*) │ │ ├── fixedbitset v0.5.7 │ │ ├── nonmax v0.5.5 │ │ ├── petgraph v0.6.5 │ │ │ ├── fixedbitset v0.4.2 │ │ │ └── indexmap v2.2.6 (*) │ │ └── thiserror v1.0.61 (*) │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) │ ├── bevy_state v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_state) │ │ ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) (*) │ │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) │ │ ├── bevy_state_macros v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_state/macros) │ │ │ ├── bevy_macro_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_macro_utils) (*) │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ ├── quote v1.0.36 (*) │ │ │ └── syn v2.0.65 (*) │ │ └── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ ├── bevy_tasks v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_tasks) (*) │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ ├── downcast-rs v1.2.1 │ └── thiserror v1.0.61 (*) ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) (*) ├── bevy_hierarchy v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_hierarchy) │ ├── bevy_app v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_app) (*) │ ├── bevy_core v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_core) │ │ ├── bevy_app v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_app) (*) │ │ ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) (*) │ │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) │ │ ├── bevy_tasks v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_tasks) (*) │ │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ │ └── uuid v1.8.0 │ ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) (*) │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ └── smallvec v1.13.2 ├── bevy_math v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_math) (*) ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) └── thiserror v1.0.61 (*) ``` The dependency tree **after** (no default features): ```text bevy_transform v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_transform) ├── bevy_math v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_math) │ ├── approx v0.5.1 │ │ └── num-traits v0.2.19 │ │ [build-dependencies] │ │ └── autocfg v1.3.0 │ ├── glam v0.27.0 │ │ ├── approx v0.5.1 (*) │ │ ├── bytemuck v1.16.0 │ │ └── rand v0.8.5 │ │ └── rand_core v0.6.4 │ ├── rand v0.8.5 (*) │ ├── smallvec v1.13.2 │ └── thiserror v1.0.61 │ └── thiserror-impl v1.0.61 (proc-macro) │ ├── proc-macro2 v1.0.83 │ │ └── unicode-ident v1.0.12 │ ├── quote v1.0.36 │ │ └── proc-macro2 v1.0.83 (*) │ └── syn v2.0.65 │ ├── proc-macro2 v1.0.83 (*) │ ├── quote v1.0.36 (*) │ └── unicode-ident v1.0.12 └── thiserror v1.0.61 (*) ``` Signed-off-by: Torstein Grindvik <torstein.grindvik@muybridge.com> Co-authored-by: Torstein Grindvik <torstein.grindvik@muybridge.com>
2024-06-01 11:34:49 +00:00
], optional = true }
bevy_hierarchy = { path = "../bevy_hierarchy", version = "0.15.0-dev", optional = true }
bevy_math = { path = "../bevy_math", version = "0.15.0-dev", default-features = false }
bevy_reflect = { path = "../bevy_reflect", version = "0.15.0-dev", features = [
"bevy",
Allow bevy_transform to be used as a barebones dependency (#13533) # Objective Fixes https://github.com/bevyengine/bevy/issues/13529 Allow using the `bevy_transform` crate for its definitions of `Transform` (and `GlobalTransform`) which are re-usable in many contexts, including ones where other parts of Bevy (ECS, reflection, etc.) are not necessarily needed or wanted due to the big dependency tree. ## Solution Introduce a feature flag "bevy-support" in the `bevy_transform` crate which makes the dependency tree small when default features are off. ## Testing Both `cargo b` and `cargo b --no-default-features` builds. The dependency tree **before**: ```text bevy_transform v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_transform) ├── bevy_app v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_app) │ ├── bevy_derive v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_derive) │ │ ├── bevy_macro_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_macro_utils) │ │ │ ├── proc-macro2 v1.0.83 │ │ │ │ └── unicode-ident v1.0.12 │ │ │ ├── quote v1.0.36 │ │ │ │ └── proc-macro2 v1.0.83 (*) │ │ │ ├── syn v2.0.65 │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ └── unicode-ident v1.0.12 │ │ │ └── toml_edit v0.22.13 │ │ │ ├── indexmap v2.2.6 │ │ │ │ ├── equivalent v1.0.1 │ │ │ │ └── hashbrown v0.14.5 │ │ │ ├── toml_datetime v0.6.6 │ │ │ └── winnow v0.6.8 │ │ ├── quote v1.0.36 (*) │ │ └── syn v2.0.65 (*) │ ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) │ │ ├── bevy_ecs_macros v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_ecs/macros) │ │ │ ├── bevy_macro_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_macro_utils) (*) │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ ├── quote v1.0.36 (*) │ │ │ └── syn v2.0.65 (*) │ │ ├── bevy_ptr v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ptr) │ │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) │ │ │ ├── bevy_math v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_math) │ │ │ │ ├── approx v0.5.1 │ │ │ │ │ └── num-traits v0.2.19 │ │ │ │ │ [build-dependencies] │ │ │ │ │ └── autocfg v1.3.0 │ │ │ │ ├── glam v0.27.0 │ │ │ │ │ ├── approx v0.5.1 (*) │ │ │ │ │ ├── bytemuck v1.16.0 │ │ │ │ │ ├── rand v0.8.5 │ │ │ │ │ │ └── rand_core v0.6.4 │ │ │ │ │ └── serde v1.0.202 │ │ │ │ │ └── serde_derive v1.0.202 (proc-macro) │ │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ │ └── syn v2.0.65 (*) │ │ │ │ ├── rand v0.8.5 (*) │ │ │ │ ├── serde v1.0.202 (*) │ │ │ │ ├── smallvec v1.13.2 │ │ │ │ └── thiserror v1.0.61 │ │ │ │ └── thiserror-impl v1.0.61 (proc-macro) │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ └── syn v2.0.65 (*) │ │ │ ├── bevy_ptr v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ptr) │ │ │ ├── bevy_reflect_derive v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_reflect/derive) │ │ │ │ ├── bevy_macro_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_macro_utils) (*) │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ ├── syn v2.0.65 (*) │ │ │ │ └── uuid v1.8.0 │ │ │ │ └── getrandom v0.2.15 │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ └── libc v0.2.155 │ │ │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) │ │ │ │ ├── ahash v0.8.11 │ │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ │ ├── getrandom v0.2.15 (*) │ │ │ │ │ ├── once_cell v1.19.0 │ │ │ │ │ └── zerocopy v0.7.34 │ │ │ │ │ [build-dependencies] │ │ │ │ │ └── version_check v0.9.4 │ │ │ │ ├── bevy_utils_proc_macros v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_utils/macros) │ │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ │ └── syn v2.0.65 (*) │ │ │ │ ├── hashbrown v0.14.5 │ │ │ │ │ ├── ahash v0.8.11 (*) │ │ │ │ │ ├── allocator-api2 v0.2.18 │ │ │ │ │ └── serde v1.0.202 (*) │ │ │ │ ├── thread_local v1.1.8 │ │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ │ └── once_cell v1.19.0 │ │ │ │ ├── tracing v0.1.40 │ │ │ │ │ ├── pin-project-lite v0.2.14 │ │ │ │ │ └── tracing-core v0.1.32 │ │ │ │ │ └── once_cell v1.19.0 │ │ │ │ └── web-time v0.2.4 │ │ │ ├── downcast-rs v1.2.1 │ │ │ ├── erased-serde v0.4.5 │ │ │ │ ├── serde v1.0.202 (*) │ │ │ │ └── typeid v1.0.0 │ │ │ ├── glam v0.27.0 (*) │ │ │ ├── serde v1.0.202 (*) │ │ │ ├── smallvec v1.13.2 │ │ │ ├── smol_str v0.2.2 │ │ │ └── thiserror v1.0.61 (*) │ │ ├── bevy_tasks v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_tasks) │ │ │ ├── async-executor v1.11.0 │ │ │ │ ├── async-task v4.7.1 │ │ │ │ ├── concurrent-queue v2.5.0 │ │ │ │ │ └── crossbeam-utils v0.8.20 │ │ │ │ ├── fastrand v2.1.0 │ │ │ │ ├── futures-lite v2.3.0 │ │ │ │ │ ├── fastrand v2.1.0 │ │ │ │ │ ├── futures-core v0.3.30 │ │ │ │ │ ├── futures-io v0.3.30 │ │ │ │ │ ├── parking v2.2.0 │ │ │ │ │ └── pin-project-lite v0.2.14 │ │ │ │ └── slab v0.4.9 │ │ │ │ [build-dependencies] │ │ │ │ └── autocfg v1.3.0 │ │ │ └── futures-lite v2.3.0 (*) │ │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ │ ├── bitflags v2.5.0 │ │ ├── concurrent-queue v2.5.0 (*) │ │ ├── fixedbitset v0.5.7 │ │ ├── nonmax v0.5.5 │ │ ├── petgraph v0.6.5 │ │ │ ├── fixedbitset v0.4.2 │ │ │ └── indexmap v2.2.6 (*) │ │ └── thiserror v1.0.61 (*) │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) │ ├── bevy_state v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_state) │ │ ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) (*) │ │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) │ │ ├── bevy_state_macros v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_state/macros) │ │ │ ├── bevy_macro_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_macro_utils) (*) │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ ├── quote v1.0.36 (*) │ │ │ └── syn v2.0.65 (*) │ │ └── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ ├── bevy_tasks v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_tasks) (*) │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ ├── downcast-rs v1.2.1 │ └── thiserror v1.0.61 (*) ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) (*) ├── bevy_hierarchy v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_hierarchy) │ ├── bevy_app v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_app) (*) │ ├── bevy_core v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_core) │ │ ├── bevy_app v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_app) (*) │ │ ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) (*) │ │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) │ │ ├── bevy_tasks v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_tasks) (*) │ │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ │ └── uuid v1.8.0 │ ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) (*) │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ └── smallvec v1.13.2 ├── bevy_math v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_math) (*) ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) └── thiserror v1.0.61 (*) ``` The dependency tree **after** (no default features): ```text bevy_transform v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_transform) ├── bevy_math v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_math) │ ├── approx v0.5.1 │ │ └── num-traits v0.2.19 │ │ [build-dependencies] │ │ └── autocfg v1.3.0 │ ├── glam v0.27.0 │ │ ├── approx v0.5.1 (*) │ │ ├── bytemuck v1.16.0 │ │ └── rand v0.8.5 │ │ └── rand_core v0.6.4 │ ├── rand v0.8.5 (*) │ ├── smallvec v1.13.2 │ └── thiserror v1.0.61 │ └── thiserror-impl v1.0.61 (proc-macro) │ ├── proc-macro2 v1.0.83 │ │ └── unicode-ident v1.0.12 │ ├── quote v1.0.36 │ │ └── proc-macro2 v1.0.83 (*) │ └── syn v2.0.65 │ ├── proc-macro2 v1.0.83 (*) │ ├── quote v1.0.36 (*) │ └── unicode-ident v1.0.12 └── thiserror v1.0.61 (*) ``` Signed-off-by: Torstein Grindvik <torstein.grindvik@muybridge.com> Co-authored-by: Torstein Grindvik <torstein.grindvik@muybridge.com>
2024-06-01 11:34:49 +00:00
], optional = true }
serde = { version = "1", features = ["derive"], optional = true }
thiserror = { version = "2", default-features = false }
derive_more = { version = "1", default-features = false, features = ["from"] }
[dev-dependencies]
bevy_tasks = { path = "../bevy_tasks", version = "0.15.0-dev" }
bevy_math = { path = "../bevy_math", version = "0.15.0-dev", default-features = false, features = [
"approx",
] }
approx = "0.5.1"
[features]
Allow bevy_transform to be used as a barebones dependency (#13533) # Objective Fixes https://github.com/bevyengine/bevy/issues/13529 Allow using the `bevy_transform` crate for its definitions of `Transform` (and `GlobalTransform`) which are re-usable in many contexts, including ones where other parts of Bevy (ECS, reflection, etc.) are not necessarily needed or wanted due to the big dependency tree. ## Solution Introduce a feature flag "bevy-support" in the `bevy_transform` crate which makes the dependency tree small when default features are off. ## Testing Both `cargo b` and `cargo b --no-default-features` builds. The dependency tree **before**: ```text bevy_transform v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_transform) ├── bevy_app v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_app) │ ├── bevy_derive v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_derive) │ │ ├── bevy_macro_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_macro_utils) │ │ │ ├── proc-macro2 v1.0.83 │ │ │ │ └── unicode-ident v1.0.12 │ │ │ ├── quote v1.0.36 │ │ │ │ └── proc-macro2 v1.0.83 (*) │ │ │ ├── syn v2.0.65 │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ └── unicode-ident v1.0.12 │ │ │ └── toml_edit v0.22.13 │ │ │ ├── indexmap v2.2.6 │ │ │ │ ├── equivalent v1.0.1 │ │ │ │ └── hashbrown v0.14.5 │ │ │ ├── toml_datetime v0.6.6 │ │ │ └── winnow v0.6.8 │ │ ├── quote v1.0.36 (*) │ │ └── syn v2.0.65 (*) │ ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) │ │ ├── bevy_ecs_macros v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_ecs/macros) │ │ │ ├── bevy_macro_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_macro_utils) (*) │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ ├── quote v1.0.36 (*) │ │ │ └── syn v2.0.65 (*) │ │ ├── bevy_ptr v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ptr) │ │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) │ │ │ ├── bevy_math v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_math) │ │ │ │ ├── approx v0.5.1 │ │ │ │ │ └── num-traits v0.2.19 │ │ │ │ │ [build-dependencies] │ │ │ │ │ └── autocfg v1.3.0 │ │ │ │ ├── glam v0.27.0 │ │ │ │ │ ├── approx v0.5.1 (*) │ │ │ │ │ ├── bytemuck v1.16.0 │ │ │ │ │ ├── rand v0.8.5 │ │ │ │ │ │ └── rand_core v0.6.4 │ │ │ │ │ └── serde v1.0.202 │ │ │ │ │ └── serde_derive v1.0.202 (proc-macro) │ │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ │ └── syn v2.0.65 (*) │ │ │ │ ├── rand v0.8.5 (*) │ │ │ │ ├── serde v1.0.202 (*) │ │ │ │ ├── smallvec v1.13.2 │ │ │ │ └── thiserror v1.0.61 │ │ │ │ └── thiserror-impl v1.0.61 (proc-macro) │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ └── syn v2.0.65 (*) │ │ │ ├── bevy_ptr v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ptr) │ │ │ ├── bevy_reflect_derive v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_reflect/derive) │ │ │ │ ├── bevy_macro_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_macro_utils) (*) │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ ├── syn v2.0.65 (*) │ │ │ │ └── uuid v1.8.0 │ │ │ │ └── getrandom v0.2.15 │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ └── libc v0.2.155 │ │ │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) │ │ │ │ ├── ahash v0.8.11 │ │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ │ ├── getrandom v0.2.15 (*) │ │ │ │ │ ├── once_cell v1.19.0 │ │ │ │ │ └── zerocopy v0.7.34 │ │ │ │ │ [build-dependencies] │ │ │ │ │ └── version_check v0.9.4 │ │ │ │ ├── bevy_utils_proc_macros v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_utils/macros) │ │ │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ │ │ ├── quote v1.0.36 (*) │ │ │ │ │ └── syn v2.0.65 (*) │ │ │ │ ├── hashbrown v0.14.5 │ │ │ │ │ ├── ahash v0.8.11 (*) │ │ │ │ │ ├── allocator-api2 v0.2.18 │ │ │ │ │ └── serde v1.0.202 (*) │ │ │ │ ├── thread_local v1.1.8 │ │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ │ └── once_cell v1.19.0 │ │ │ │ ├── tracing v0.1.40 │ │ │ │ │ ├── pin-project-lite v0.2.14 │ │ │ │ │ └── tracing-core v0.1.32 │ │ │ │ │ └── once_cell v1.19.0 │ │ │ │ └── web-time v0.2.4 │ │ │ ├── downcast-rs v1.2.1 │ │ │ ├── erased-serde v0.4.5 │ │ │ │ ├── serde v1.0.202 (*) │ │ │ │ └── typeid v1.0.0 │ │ │ ├── glam v0.27.0 (*) │ │ │ ├── serde v1.0.202 (*) │ │ │ ├── smallvec v1.13.2 │ │ │ ├── smol_str v0.2.2 │ │ │ └── thiserror v1.0.61 (*) │ │ ├── bevy_tasks v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_tasks) │ │ │ ├── async-executor v1.11.0 │ │ │ │ ├── async-task v4.7.1 │ │ │ │ ├── concurrent-queue v2.5.0 │ │ │ │ │ └── crossbeam-utils v0.8.20 │ │ │ │ ├── fastrand v2.1.0 │ │ │ │ ├── futures-lite v2.3.0 │ │ │ │ │ ├── fastrand v2.1.0 │ │ │ │ │ ├── futures-core v0.3.30 │ │ │ │ │ ├── futures-io v0.3.30 │ │ │ │ │ ├── parking v2.2.0 │ │ │ │ │ └── pin-project-lite v0.2.14 │ │ │ │ └── slab v0.4.9 │ │ │ │ [build-dependencies] │ │ │ │ └── autocfg v1.3.0 │ │ │ └── futures-lite v2.3.0 (*) │ │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ │ ├── bitflags v2.5.0 │ │ ├── concurrent-queue v2.5.0 (*) │ │ ├── fixedbitset v0.5.7 │ │ ├── nonmax v0.5.5 │ │ ├── petgraph v0.6.5 │ │ │ ├── fixedbitset v0.4.2 │ │ │ └── indexmap v2.2.6 (*) │ │ └── thiserror v1.0.61 (*) │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) │ ├── bevy_state v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_state) │ │ ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) (*) │ │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) │ │ ├── bevy_state_macros v0.14.0-dev (proc-macro) (/home/togr/repos/bevy/crates/bevy_state/macros) │ │ │ ├── bevy_macro_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_macro_utils) (*) │ │ │ ├── proc-macro2 v1.0.83 (*) │ │ │ ├── quote v1.0.36 (*) │ │ │ └── syn v2.0.65 (*) │ │ └── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ ├── bevy_tasks v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_tasks) (*) │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ ├── downcast-rs v1.2.1 │ └── thiserror v1.0.61 (*) ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) (*) ├── bevy_hierarchy v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_hierarchy) │ ├── bevy_app v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_app) (*) │ ├── bevy_core v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_core) │ │ ├── bevy_app v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_app) (*) │ │ ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) (*) │ │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) │ │ ├── bevy_tasks v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_tasks) (*) │ │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ │ └── uuid v1.8.0 │ ├── bevy_ecs v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_ecs) (*) │ ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) │ ├── bevy_utils v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_utils) (*) │ └── smallvec v1.13.2 ├── bevy_math v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_math) (*) ├── bevy_reflect v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_reflect) (*) └── thiserror v1.0.61 (*) ``` The dependency tree **after** (no default features): ```text bevy_transform v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_transform) ├── bevy_math v0.14.0-dev (/home/togr/repos/bevy/crates/bevy_math) │ ├── approx v0.5.1 │ │ └── num-traits v0.2.19 │ │ [build-dependencies] │ │ └── autocfg v1.3.0 │ ├── glam v0.27.0 │ │ ├── approx v0.5.1 (*) │ │ ├── bytemuck v1.16.0 │ │ └── rand v0.8.5 │ │ └── rand_core v0.6.4 │ ├── rand v0.8.5 (*) │ ├── smallvec v1.13.2 │ └── thiserror v1.0.61 │ └── thiserror-impl v1.0.61 (proc-macro) │ ├── proc-macro2 v1.0.83 │ │ └── unicode-ident v1.0.12 │ ├── quote v1.0.36 │ │ └── proc-macro2 v1.0.83 (*) │ └── syn v2.0.65 │ ├── proc-macro2 v1.0.83 (*) │ ├── quote v1.0.36 (*) │ └── unicode-ident v1.0.12 └── thiserror v1.0.61 (*) ``` Signed-off-by: Torstein Grindvik <torstein.grindvik@muybridge.com> Co-authored-by: Torstein Grindvik <torstein.grindvik@muybridge.com>
2024-06-01 11:34:49 +00:00
# Adds normal Bevy impls like deriving components, bundles, reflection, as well as adding
# systems for transform propagation and more.
# This exists because it allows opting out of all of this, leaving only a bare-bones transform struct,
# which enables users to depend on that without needing the larger Bevy dependency tree.
bevy-support = [
"dep:bevy_app",
"dep:bevy_ecs",
"dep:bevy_hierarchy",
"dep:bevy_reflect",
"bevy_math/bevy_reflect",
]
# Turning off default features leaves you with a barebones
# definition of transform.
default = ["bevy-support"]
serialize = ["dep:serde", "bevy_math/serialize"]
[lints]
workspace = true
[package.metadata.docs.rs]
rustdoc-args = ["-Zunstable-options", "--generate-link-to-definition"]
all-features = true