From 45da0a085065d43741717c9c3a82f6a85568d352 Mon Sep 17 00:00:00 2001 From: elipp <1861512+elipp@users.noreply.github.com> Date: Sun, 11 Oct 2026 13:05:21 +0300 Subject: [PATCH] Optional feature to enable `bevy/dynamic_linking` in crates/benilla-app (#853) - Add bevy/dynamic_linking feature forward for benilla-app for faster dev builds - bevy_dynamic_linking says the binary starts only through cargo run Co-Authored-By: Claude Opus 5.5 Co-Authored-By: Sam --- Cargo.lock | 10 ++++++++++ crates/benilla-app/Cargo.toml | 3 +++ crates/benilla/Cargo.toml | 2 ++ 3 files changed, 15 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 7afa1b73..f5c9af40 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -696,6 +696,7 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd310426290cec560221f9750c2f4484be4a8eeea7de3483c423329b465c40e" dependencies = [ + "bevy_dylib", "bevy_internal", "tracing", ] @@ -1015,6 +1016,15 @@ dependencies = [ "sysinfo", ] +[[package]] +name = "bevy_dylib" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f142f72bbbc1a61338bf6da5dc7cf6dcf223683b9d53bcd635ebff4bfeb5308f" +dependencies = [ + "bevy_internal", +] + [[package]] name = "bevy_ecs" version = "0.18.1" diff --git a/crates/benilla-app/Cargo.toml b/crates/benilla-app/Cargo.toml index 7dd1c49f..de8d45eb 100644 --- a/crates/benilla-app/Cargo.toml +++ b/crates/benilla-app/Cargo.toml @@ -16,6 +16,9 @@ dev = ["benilla-assets/dev", "benilla-formats/dev", "benilla-world/dev", "dep:be tracy = ["bevy/trace_tracy"] # Writes every system's per-run span to `trace-.json` in the cwd. trace_chrome = ["bevy/trace_chrome"] +# Links Bevy as a shared library so an incremental rebuild relinks faster. The binary then starts +# only through `cargo run`, which puts the toolchain's libstd on the loader path. +bevy_dynamic_linking = ["bevy/dynamic_linking"] [dependencies] anyhow.workspace = true diff --git a/crates/benilla/Cargo.toml b/crates/benilla/Cargo.toml index 179cf1a0..d5af6336 100644 --- a/crates/benilla/Cargo.toml +++ b/crates/benilla/Cargo.toml @@ -15,6 +15,8 @@ dev = ["benilla-app/dev"] # Profiling switches, forwarded so `cargo run -p benilla --features tracy` works. tracy = ["benilla-app/tracy"] trace_chrome = ["benilla-app/trace_chrome"] +# Forwards to benilla-app's `bevy_dynamic_linking`, which enables bevy/dynamic_linking. +bevy_dynamic_linking = ["benilla-app/bevy_dynamic_linking"] [dependencies] # `default-features = false`, or `--no-default-features` here still builds benilla-app with `dev`.