From 0749ad02d0b8429e2a3a50158994268c0b0af044 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Fri, 25 Sep 2020 15:36:16 +0200 Subject: [PATCH] build-manifest: handle rust-src being target-independent --- src/tools/build-manifest/src/versions.rs | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/tools/build-manifest/src/versions.rs b/src/tools/build-manifest/src/versions.rs index 9f37b22c4941..d949dff72798 100644 --- a/src/tools/build-manifest/src/versions.rs +++ b/src/tools/build-manifest/src/versions.rs @@ -88,6 +88,11 @@ impl PkgType { PkgType::Other(_) => true, } } + + /// Whether this package is target-independent or not. + fn target_independent(&self) -> bool { + *self == PkgType::RustSrc + } } #[derive(Debug, Default, Clone)] @@ -198,15 +203,15 @@ impl Versions { package: &PkgType, target: &str, ) -> Result { - Ok(format!( - "{}-{}-{}.tar.gz", - package.tarball_component_name(), - self.package_version(package).with_context(|| format!( - "failed to get the package version for component {:?}", - package, - ))?, - target - )) + let component_name = package.tarball_component_name(); + let version = self.package_version(package).with_context(|| { + format!("failed to get the package version for component {:?}", package,) + })?; + if package.target_independent() { + Ok(format!("{}-{}.tar.gz", component_name, version)) + } else { + Ok(format!("{}-{}-{}.tar.gz", component_name, version, target)) + } } pub(crate) fn package_version(&mut self, package: &PkgType) -> Result {