Filter out missing components from manifests
This commit updates our manifest generation for rustup to filter out any components/extensions which are actually missing. This is intended to help mitigate #49462 by making the manifests reflect reality, that many targets now are missing a `rust-docs` component rather than requiring it exists.
This commit is contained in:
parent
56714acc5e
commit
59059f2ed1
1 changed files with 22 additions and 0 deletions
|
@ -356,6 +356,28 @@ impl Builder {
|
||||||
target: "*".to_string(),
|
target: "*".to_string(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// If the components/extensions don't actually exist for this
|
||||||
|
// particular host/target combination then nix it entirely from our
|
||||||
|
// lists.
|
||||||
|
{
|
||||||
|
let has_component = |c: &Component| {
|
||||||
|
if c.target == "*" {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
let pkg = match manifest.pkg.get(&c.pkg) {
|
||||||
|
Some(p) => p,
|
||||||
|
None => return false,
|
||||||
|
};
|
||||||
|
let target = match pkg.target.get(&c.target) {
|
||||||
|
Some(t) => t,
|
||||||
|
None => return false,
|
||||||
|
};
|
||||||
|
target.available
|
||||||
|
};
|
||||||
|
extensions.retain(&has_component);
|
||||||
|
components.retain(&has_component);
|
||||||
|
}
|
||||||
|
|
||||||
pkg.target.insert(host.to_string(), Target {
|
pkg.target.insert(host.to_string(), Target {
|
||||||
available: true,
|
available: true,
|
||||||
url: Some(self.url(&filename)),
|
url: Some(self.url(&filename)),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue