playdate
playdate copied to clipboard
Check main/dev is empty and add clean assets task for `package`/`kind`
Check main/dev is empty and add clean assets task for package
/kind
https://api.github.com/boozook/playdate/blob/44ba9bc18e094bd1efc0428025f6cd528c8bdf8b/cargo/src/assets/mod.rs#L95
Also remove old build-plan.
Source of this issue
layout.clean()?;
}
let target_pid = package.package_id();
let has_dev = targets.iter()
.any(|t| t.is_example() || t.is_test() || t.is_bench());
log::debug!("Inspecting dependencies tree for {}", package.package_id());
let packages = deps_tree_metadata(package, &bcx, config)?;
// TODO: list deps in the plan
for (package, metadata) in packages {
let locked = layout.lock_mut(config.workspace.config())?;
let dev = has_dev && package.package_id() == target_pid;
let err_msg = |err| format!("{err}, caused when planning assets for {}.", package.package_id());
match plan::plan_for(config, package, &metadata, &env, &locked, dev) {
// nothing to pack:
Ok(plan) if plan.is_empty() => {
config.log()
.verbose(|mut log| log.status("Skip", format!("{} without plan", package.package_id())))
// TODO: add clean assets task for `package`/`kind`
// Also remove old build-plan.
// Here and below for error case.
},
// report and continue:
Err(err) if config.compile_options.build_config.keep_going => {
let msg = format!("{} Continuing because `keep-going` is set.", err_msg(&err));
config.log().error(msg)
},
// abort:
Err(err) => {
config.log().error(err_msg(&err));
return Err(err);
},
// add plan to pack:
Ok(plan) => {
// TODO: Check main/dev is empty and add clean assets task for `package`/`kind`
// Also remove old build-plan.
options.insert(package, metadata);
plans.insert(package, plan);
},
}
}
// report if needed:
if config.compile_options.build_config.emit_json() || config.compile_options.build_config.build_plan {
for (package, plan) in plans.iter() {
for (plan, kind) in plan.main
.as_ref()
.into_iter()
.map(|plan| (plan, AssetKind::Package))
.chain(plan.dev.as_ref().into_iter().map(|plan| (plan, AssetKind::Dev)))
{
let message = plan.printable_serializable(&package, kind);
config.workspace.config().shell().print_json(&message)?;
}
}
} else {
config.workspace