diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs
index 90e6a10d9d6..cf8ed11c6b0 100644
--- a/src/bootstrap/src/core/build_steps/dist.rs
+++ b/src/bootstrap/src/core/build_steps/dist.rs
@@ -1633,6 +1633,8 @@ impl Step for Extended {
"rust-analyzer-preview".to_string()
} else if name == "clippy" {
"clippy-preview".to_string()
+ } else if name == "rustfmt" {
+ "rustfmt-preview".to_string()
} else if name == "miri" {
"miri-preview".to_string()
} else if name == "rustc-codegen-cranelift" {
@@ -1652,7 +1654,7 @@ impl Step for Extended {
prepare("cargo");
prepare("rust-analysis");
prepare("rust-std");
- for tool in &["clippy", "rust-analyzer", "rust-docs", "miri"] {
+ for tool in &["clippy", "rustfmt", "rust-analyzer", "rust-docs", "miri"] {
if built_tools.contains(tool) {
prepare(tool);
}
@@ -1770,6 +1772,24 @@ impl Step for Extended {
.arg(etc.join("msi/remove-duplicates.xsl"))
.run(builder);
}
+ if built_tools.contains("rustfmt") {
+ command(&heat)
+ .current_dir(&exe)
+ .arg("dir")
+ .arg("rustfmt")
+ .args(heat_flags)
+ .arg("-cg")
+ .arg("RustFmtGroup")
+ .arg("-dr")
+ .arg("RustFmt")
+ .arg("-var")
+ .arg("var.RustFmtDir")
+ .arg("-out")
+ .arg(exe.join("RustFmtGroup.wxs"))
+ .arg("-t")
+ .arg(etc.join("msi/remove-duplicates.xsl"))
+ .run(builder);
+ }
if built_tools.contains("miri") {
command(&heat)
.current_dir(&exe)
@@ -1841,6 +1861,9 @@ impl Step for Extended {
if built_tools.contains("clippy") {
cmd.arg("-dClippyDir=clippy");
}
+ if built_tools.contains("rustfmt") {
+ cmd.arg("-dRustFmtDir=rustfmt");
+ }
if built_tools.contains("rust-docs") {
cmd.arg("-dDocsDir=rust-docs");
}
@@ -1867,6 +1890,9 @@ impl Step for Extended {
if built_tools.contains("clippy") {
candle("ClippyGroup.wxs".as_ref());
}
+ if built_tools.contains("rustfmt") {
+ candle("RustFmtGroup.wxs".as_ref());
+ }
if built_tools.contains("miri") {
candle("MiriGroup.wxs".as_ref());
}
@@ -1905,6 +1931,9 @@ impl Step for Extended {
if built_tools.contains("clippy") {
cmd.arg("ClippyGroup.wixobj");
}
+ if built_tools.contains("rustfmt") {
+ cmd.arg("RustFmtGroup.wixobj");
+ }
if built_tools.contains("miri") {
cmd.arg("MiriGroup.wixobj");
}
diff --git a/src/etc/installer/msi/rust.wxs b/src/etc/installer/msi/rust.wxs
index f29e1e4d27a..2d155bf0b10 100644
--- a/src/etc/installer/msi/rust.wxs
+++ b/src/etc/installer/msi/rust.wxs
@@ -172,6 +172,11 @@
+
+
+
+
+
@@ -279,7 +284,41 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+