Skip to content

Commit 604704a

Browse files
authored
wasm-builder: Optimize rerun-if-changed logic (#2282)
Optimizes the `rerun-if-changed` logic by ignoring `dev-dependencies` and also not outputting paths. Because outputting paths could lead to include unwanted crates in the rerun checks.
1 parent 5f4ce80 commit 604704a

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

substrate/utils/wasm-builder/src/wasm_project.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
use crate::{write_file_if_changed, CargoCommandVersioned, OFFLINE};
1919

2020
use build_helper::rerun_if_changed;
21-
use cargo_metadata::{CargoOpt, Metadata, MetadataCommand};
21+
use cargo_metadata::{DependencyKind, Metadata, MetadataCommand};
2222
use parity_wasm::elements::{deserialize_buffer, Module};
2323
use std::{
2424
borrow::ToOwned,
@@ -89,8 +89,7 @@ fn crate_metadata(cargo_manifest: &Path) -> Metadata {
8989
cargo_manifest.to_path_buf()
9090
};
9191

92-
let mut crate_metadata_command = create_metadata_command(cargo_manifest);
93-
crate_metadata_command.features(CargoOpt::AllFeatures);
92+
let crate_metadata_command = create_metadata_command(cargo_manifest);
9493

9594
let crate_metadata = crate_metadata_command
9695
.exec()
@@ -915,6 +914,11 @@ fn generate_rerun_if_changed_instructions(
915914
packages.insert(DeduplicatePackage::from(package));
916915

917916
while let Some(dependency) = dependencies.pop() {
917+
// Ignore all dev dependencies
918+
if dependency.kind == DependencyKind::Development {
919+
continue;
920+
}
921+
918922
let path_or_git_dep =
919923
dependency.source.as_ref().map(|s| s.starts_with("git+")).unwrap_or(true);
920924

@@ -967,9 +971,7 @@ fn package_rerun_if_changed(package: &DeduplicatePackage) {
967971
p.path() == manifest_path || !p.path().is_dir() || !p.path().join("Cargo.toml").exists()
968972
})
969973
.filter_map(|p| p.ok().map(|p| p.into_path()))
970-
.filter(|p| {
971-
p.is_dir() || p.extension().map(|e| e == "rs" || e == "toml").unwrap_or_default()
972-
})
974+
.filter(|p| p.extension().map(|e| e == "rs" || e == "toml").unwrap_or_default())
973975
.for_each(rerun_if_changed);
974976
}
975977

0 commit comments

Comments
 (0)