Skip to content

Commit ea7e868

Browse files
Strip unused features from bevy_asset dependencies (#18979)
# Objective - Contributes to #18978 ## Solution - Disable default features on all dependencies in `bevy_asset` and explicitly enable ones that are required. - Remove `compile_error` caused by enabling `file_watcher` without `multi_threaded` by including `multi_threaded` in `file_watcher`. ## Testing - CI --- ## Notes No breaking changes here, just a little cleaning before the more controversial changes for `no_std` support. --------- Co-authored-by: François Mockers <[email protected]>
1 parent 65f7b05 commit ea7e868

File tree

2 files changed

+37
-32
lines changed

2 files changed

+37
-32
lines changed

crates/bevy_asset/Cargo.toml

Lines changed: 37 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,46 +11,58 @@ keywords = ["bevy"]
1111
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
1212

1313
[features]
14-
file_watcher = ["notify-debouncer-full", "watch"]
14+
file_watcher = ["notify-debouncer-full", "watch", "multi_threaded"]
1515
embedded_watcher = ["file_watcher"]
1616
multi_threaded = ["bevy_tasks/multi_threaded"]
1717
asset_processor = []
1818
watch = []
1919
trace = []
2020

2121
[dependencies]
22-
bevy_app = { path = "../bevy_app", version = "0.16.0-dev" }
22+
bevy_app = { path = "../bevy_app", version = "0.16.0-dev", default-features = false, features = [
23+
"bevy_reflect",
24+
] }
2325
bevy_asset_macros = { path = "macros", version = "0.16.0-dev" }
24-
bevy_ecs = { path = "../bevy_ecs", version = "0.16.0-dev" }
25-
bevy_reflect = { path = "../bevy_reflect", version = "0.16.0-dev", features = [
26+
bevy_ecs = { path = "../bevy_ecs", version = "0.16.0-dev", default-features = false }
27+
bevy_reflect = { path = "../bevy_reflect", version = "0.16.0-dev", default-features = false, features = [
2628
"uuid",
2729
] }
28-
bevy_tasks = { path = "../bevy_tasks", version = "0.16.0-dev" }
29-
bevy_utils = { path = "../bevy_utils", version = "0.16.0-dev" }
30+
bevy_tasks = { path = "../bevy_tasks", version = "0.16.0-dev", default-features = false, features = [
31+
"async_executor",
32+
] }
33+
bevy_utils = { path = "../bevy_utils", version = "0.16.0-dev", default-features = false }
3034
bevy_platform = { path = "../bevy_platform", version = "0.16.0-dev", default-features = false, features = [
3135
"std",
3236
] }
3337

34-
stackfuture = "0.3"
35-
atomicow = "1.0"
36-
async-broadcast = "0.7.2"
37-
async-fs = "2.0"
38-
async-lock = "3.0"
39-
bitflags = { version = "2.3", features = ["serde"] }
40-
crossbeam-channel = "0.5"
41-
downcast-rs = { version = "2", default-features = false, features = ["std"] }
42-
disqualified = "1.0"
43-
either = "1.13"
44-
futures-io = "0.3"
45-
futures-lite = "2.0.1"
46-
blake3 = "1.5"
47-
parking_lot = { version = "0.12", features = ["arc_lock", "send_guard"] }
48-
ron = "0.8"
49-
serde = { version = "1", features = ["derive"] }
38+
stackfuture = { version = "0.3", default-features = false }
39+
atomicow = { version = "1.0", default-features = false, features = ["std"] }
40+
async-broadcast = { version = "0.7.2", default-features = false }
41+
async-fs = { version = "2.0", default-features = false }
42+
async-lock = { version = "3.0", default-features = false }
43+
bitflags = { version = "2.3", default-features = false }
44+
crossbeam-channel = { version = "0.5", default-features = false, features = [
45+
"std",
46+
] }
47+
downcast-rs = { version = "2", default-features = false }
48+
disqualified = { version = "1.0", default-features = false }
49+
either = { version = "1.13", default-features = false }
50+
futures-io = { version = "0.3", default-features = false }
51+
futures-lite = { version = "2.0.1", default-features = false }
52+
blake3 = { version = "1.5", default-features = false }
53+
parking_lot = { version = "0.12", default-features = false, features = [
54+
"arc_lock",
55+
"send_guard",
56+
] }
57+
ron = { version = "0.8", default-features = false }
58+
serde = { version = "1", default-features = false, features = ["derive"] }
5059
thiserror = { version = "2", default-features = false }
5160
derive_more = { version = "1", default-features = false, features = ["from"] }
52-
uuid = { version = "1.13.1", features = ["v4"] }
53-
tracing = { version = "0.1", default-features = false, features = ["std"] }
61+
uuid = { version = "1.13.1", default-features = false, features = [
62+
"v4",
63+
"serde",
64+
] }
65+
tracing = { version = "0.1", default-features = false }
5466

5567
[target.'cfg(target_os = "android")'.dependencies]
5668
bevy_window = { path = "../bevy_window", version = "0.16.0-dev" }
@@ -77,7 +89,7 @@ bevy_reflect = { path = "../bevy_reflect", version = "0.16.0-dev", default-featu
7789
] }
7890

7991
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
80-
notify-debouncer-full = { version = "0.5.0", optional = true }
92+
notify-debouncer-full = { version = "0.5.0", default-features = false, optional = true }
8193

8294
[lints]
8395
workspace = true

crates/bevy_asset/src/lib.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -228,13 +228,6 @@ use bevy_reflect::{FromReflect, GetTypeRegistration, Reflect, TypePath};
228228
use core::any::TypeId;
229229
use tracing::error;
230230

231-
#[cfg(all(feature = "file_watcher", not(feature = "multi_threaded")))]
232-
compile_error!(
233-
"The \"file_watcher\" feature for hot reloading requires the \
234-
\"multi_threaded\" feature to be functional.\n\
235-
Consider either disabling the \"file_watcher\" feature or enabling \"multi_threaded\""
236-
);
237-
238231
/// Provides "asset" loading and processing functionality. An [`Asset`] is a "runtime value" that is loaded from an [`AssetSource`],
239232
/// which can be something like a filesystem, a network, etc.
240233
///

0 commit comments

Comments
 (0)