Skip to content

Commit 48d3166

Browse files
authored
Delete directory only for the toplevel package
1 parent cc61ce3 commit 48d3166

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
@@ -294,10 +294,19 @@ pub fn cleanup<Telem: Telemetry>(paths: &ProjectPaths, telemetry: Telem) -> Resu
294294
let changes = PackageChanges::between_manifests(&old_manifest, &manifest);
295295
telemetry.resolved_package_versions(&changes);
296296

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

302311
Ok(manifest)
303312
}

0 commit comments

Comments
 (0)