From 73b7a0403235732daa0664bfd1bd3279b7ab5cb6 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Fri, 14 Aug 2020 14:50:18 -0700 Subject: [PATCH 1/2] Fix crate-version with rustdoc in bootstrap. --- src/bootstrap/bin/rustdoc.rs | 6 ------ src/bootstrap/builder.rs | 3 +-- src/bootstrap/test.rs | 1 - 3 files changed, 1 insertion(+), 9 deletions(-) diff --git a/src/bootstrap/bin/rustdoc.rs b/src/bootstrap/bin/rustdoc.rs index 8c56cf1cb3414..ab846adf9423b 100644 --- a/src/bootstrap/bin/rustdoc.rs +++ b/src/bootstrap/bin/rustdoc.rs @@ -48,12 +48,6 @@ fn main() { cmd.arg(arg); } - // Bootstrap's Cargo-command builder sets this variable to the current Rust version; let's pick - // it up so we can make rustdoc print this into the docs - if let Some(version) = env::var_os("RUSTDOC_CRATE_VERSION") { - cmd.arg("--crate-version").arg(version); - } - // Needed to be able to run all rustdoc tests. if let Some(ref x) = env::var_os("RUSTDOC_RESOURCE_SUFFIX") { // This "unstable-options" can be removed when `--resource-suffix` is stabilized diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs index 4b0905bd6c16c..8536569919bf4 100644 --- a/src/bootstrap/builder.rs +++ b/src/bootstrap/builder.rs @@ -745,7 +745,6 @@ impl<'a> Builder<'a> { .env("RUSTDOC_LIBDIR", self.rustc_libdir(compiler)) .env("CFG_RELEASE_CHANNEL", &self.config.channel) .env("RUSTDOC_REAL", self.rustdoc(compiler)) - .env("RUSTDOC_CRATE_VERSION", self.rust_version()) .env("RUSTC_BOOTSTRAP", "1") .arg("-Winvalid_codeblock_attributes"); if self.config.deny_warnings { @@ -1271,7 +1270,7 @@ impl<'a> Builder<'a> { } // For `cargo doc` invocations, make rustdoc print the Rust version into the docs - cargo.env("RUSTDOC_CRATE_VERSION", self.rust_version()); + rustdocflags.arg("--crate-version").arg(&self.rust_version()); // Environment variables *required* throughout the build // diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs index 11e2564305f0d..ac833a55d4c53 100644 --- a/src/bootstrap/test.rs +++ b/src/bootstrap/test.rs @@ -599,7 +599,6 @@ impl Step for RustdocTheme { .env("RUSTDOC_LIBDIR", builder.sysroot_libdir(self.compiler, self.compiler.host)) .env("CFG_RELEASE_CHANNEL", &builder.config.channel) .env("RUSTDOC_REAL", builder.rustdoc(self.compiler)) - .env("RUSTDOC_CRATE_VERSION", builder.rust_version()) .env("RUSTC_BOOTSTRAP", "1"); if let Some(linker) = builder.linker(self.compiler.host, true) { cmd.env("RUSTC_TARGET_LINKER", linker); From 85a9cfaa3110f204242df8536636b73318ced145 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Fri, 14 Aug 2020 17:52:09 -0700 Subject: [PATCH 2/2] Deal with spaces in the rust version. --- src/bootstrap/builder.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs index 8536569919bf4..709b202052e57 100644 --- a/src/bootstrap/builder.rs +++ b/src/bootstrap/builder.rs @@ -1270,7 +1270,11 @@ impl<'a> Builder<'a> { } // For `cargo doc` invocations, make rustdoc print the Rust version into the docs - rustdocflags.arg("--crate-version").arg(&self.rust_version()); + // This replaces spaces with newlines because RUSTDOCFLAGS does not + // support arguments with regular spaces. Hopefully someday Cargo will + // have space support. + let rust_version = self.rust_version().replace(' ', "\n"); + rustdocflags.arg("--crate-version").arg(&rust_version); // Environment variables *required* throughout the build // @@ -1447,14 +1451,14 @@ impl Rustflags { fn env(&mut self, env: &str) { if let Ok(s) = env::var(env) { - for part in s.split_whitespace() { + for part in s.split(' ') { self.arg(part); } } } fn arg(&mut self, arg: &str) -> &mut Self { - assert_eq!(arg.split_whitespace().count(), 1); + assert_eq!(arg.split(' ').count(), 1); if !self.0.is_empty() { self.0.push_str(" "); }