Skip to content

Commit

Permalink
Use bevy_reflect as path in case of no direct references
Browse files Browse the repository at this point in the history
Fixes #1844
  • Loading branch information
YohDeadfall committed Apr 10, 2021
1 parent bc13d11 commit 1265c28
Showing 1 changed file with 14 additions and 26 deletions.
40 changes: 14 additions & 26 deletions crates/bevy_reflect/bevy_reflect_derive/src/modules.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,40 +19,28 @@ impl Modules {
bevy_reflect: "bevy_reflect".to_string(),
}
}

pub fn internal() -> Modules {
Modules {
bevy_reflect: "crate".to_string(),
}
}
}

pub fn get_modules() -> Modules {
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") {
Modules::meta(&package.name)
} else if let Some(_package) = manifest.find(|name| name == "bevy_reflect") {
Modules::external()
} else {
// If reflect is not found as a regular dependency,
// try dev-dependencies.
manifest.dependencies = Dependencies::Dev;

fn find_in_manifest(manifest: &mut Manifest, dependencies: Dependencies) -> Option<Modules> {
manifest.dependencies = dependencies;
if let Some(package) = manifest.find(|name| name == "bevy") {
Modules::meta(&package.name)
Some(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()
Some(Modules::meta(&package.name))
} else if let Some(_) = manifest.find(|name| name == "bevy_reflect") {
Some(Modules::external())
} else {
Modules::internal()
None
}
}

let mut manifest = Manifest::new().unwrap();
let modules = find_in_manifest(&mut manifest, Dependencies::Release)
.or_else(|| find_in_manifest(&mut manifest, Dependencies::Dev))
.unwrap_or_else(|| Modules::external());

modules
}

pub fn get_path(path_str: &str) -> Path {
Expand Down

0 comments on commit 1265c28

Please sign in to comment.