diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2018-04-05 11:36:01 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2018-04-05 11:38:03 -0700 |
| commit | 59059f2ed1d9ee6d23a8aba0507bac7ac6d40e48 (patch) | |
| tree | 68c5948853f1e95216d84b77bdbc16469226a08e /src/tools | |
| parent | 56714acc5eb0687ed9a7566fdebe5528657fc5b3 (diff) | |
| download | rust-59059f2ed1d9ee6d23a8aba0507bac7ac6d40e48.tar.gz rust-59059f2ed1d9ee6d23a8aba0507bac7ac6d40e48.zip | |
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.
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/build-manifest/src/main.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs index 49b054f8b9e..0f482c95e05 100644 --- a/src/tools/build-manifest/src/main.rs +++ b/src/tools/build-manifest/src/main.rs @@ -356,6 +356,28 @@ impl Builder { 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 { available: true, url: Some(self.url(&filename)), |
