Fix sysroot rebuild for clean_target

This commit is contained in:
Wildan M 2026-04-26 10:59:08 +07:00
parent dfcbb5bebe
commit daf639a762
No known key found for this signature in database
GPG Key ID: 01AC53185C679C79

View File

@ -267,17 +267,15 @@ pub fn build(
return build_remote(stage_dirs, stage_pkgars, recipe, target_dir, logger);
}
let deps_sysroot = if name.is_host() {
&dep_host_pkgars
} else {
&dep_pkgars
};
let have_toolchain = !name.is_host() && dep_host_pkgars.len() > 0;
let (sysroot_cached, toolchain_cached) = (
build_deps_dir(
logger,
&sysroot_dir,
if name.is_host() {
&dep_host_pkgars
} else {
&dep_pkgars
},
)?,
if !name.is_host() && dep_host_pkgars.len() > 0 {
build_deps_dir(logger, &sysroot_dir, deps_sysroot)?,
if have_toolchain {
build_deps_dir(logger, &toolchain_dir, &dep_host_pkgars)?
} else {
true
@ -300,6 +298,17 @@ pub fn build(
for stage_dir in &stage_dirs {
remove_stage_dir(stage_dir)?;
}
if cook_config.clean_target {
// no matter what, these two caches are invalid
if sysroot_cached {
fs::remove_all(&sysroot_dir)?;
build_deps_dir(logger, &sysroot_dir, deps_sysroot)?;
}
if toolchain_cached && have_toolchain {
fs::remove_all(&toolchain_dir)?;
build_deps_dir(logger, &toolchain_dir, &dep_host_pkgars)?;
}
}
} else {
log_to_pty!(logger, "DEBUG: using cached build");
// stop early otherwise we'll end up rebuilding