Skip to content

Commit 763c40c

Browse files
ankddevlpil
authored andcommitted
delete directory only for the toplevel package
1 parent 3075a79 commit 763c40c

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

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

307316
Ok(manifest)
308317
}

0 commit comments

Comments
 (0)