diff --git a/crates/bevy_reflect/bevy_reflect_derive/src/modules.rs b/crates/bevy_reflect/bevy_reflect_derive/src/modules.rs index e0a5109124..73335874c0 100644 --- a/crates/bevy_reflect/bevy_reflect_derive/src/modules.rs +++ b/crates/bevy_reflect/bevy_reflect_derive/src/modules.rs @@ -1,4 +1,4 @@ -use find_crate::Manifest; +use find_crate::{Dependencies, Manifest}; use proc_macro::TokenStream; use syn::Path; @@ -28,7 +28,10 @@ impl Modules { } pub fn get_modules() -> Modules { - let manifest = Manifest::new().unwrap(); + let mut manifest = Manifest::new().unwrap(); + // Only look for regular dependencies in the first pass. + manifest.dependencies = Dependencies::Release; + if let Some(package) = manifest.find(|name| name == "bevy") { Modules::meta(&package.name) } else if let Some(package) = manifest.find(|name| name == "bevy_internal") { @@ -36,7 +39,19 @@ pub fn get_modules() -> Modules { } else if let Some(_package) = manifest.find(|name| name == "bevy_reflect") { Modules::external() } else { - Modules::internal() + // If reflect is not found as a regular dependency, + // try dev-dependencies. + manifest.dependencies = Dependencies::Dev; + + if let Some(package) = manifest.find(|name| name == "bevy") { + Modules::meta(&package.name) + } else if let Some(package) = manifest.find(|name| name == "bevy_internal") { + Modules::meta(&package.name) + } else if let Some(_package) = manifest.find(|name| name == "bevy_reflect") { + Modules::external() + } else { + Modules::internal() + } } }