Skip to content

Commit a11c5a3

Browse files
committed
Delete directory only for the toplevel package
1 parent a824f7b commit a11c5a3

1 file changed

Lines changed: 13 additions & 4 deletions

File tree

compiler-cli/src/dependencies.rs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,10 +301,19 @@ pub fn cleanup<Telem: Telemetry>(paths: &ProjectPaths, telemetry: Telem) -> Resu
301301
let changes = PackageChanges::between_manifests(&old_manifest, &manifest);
302302
telemetry.resolved_package_versions(&changes);
303303

304-
// Invalidate build caches after removing package. This deletes the entire
305-
// build directory.
306-
let build_directory_path = paths.build_directory();
307-
fs::delete_directory(build_directory_path.as_ref())?;
304+
// Invalidate build caches after removing package
305+
let target = config.target;
306+
let name = config.name.clone();
307+
308+
// We need to clean build directory for the top level package for both dev
309+
// and prod modes
310+
for mode in [Mode::Dev, Mode::Prod] {
311+
let lock = BuildLock::new_target(paths, mode, target)?;
312+
let _guard = lock.lock(&telemetry)?;
313+
314+
let build_directory_path = paths.build_directory_for_package(mode, target, &name);
315+
fs::delete_directory(build_directory_path.as_ref())?;
316+
}
308317

309318
Ok(manifest)
310319
}

0 commit comments

Comments
 (0)