about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJonas Schievink <jonasschievink@gmail.com>2020-09-18 00:18:19 +0200
committerJonas Schievink <jonasschievink@gmail.com>2020-09-18 00:18:19 +0200
commitee1e9343b35c169a100654a511e21c47eb2cb0bc (patch)
tree022b57b88dd48028a9fe50698d5a9a3f5e654e5a
parent7bdb5dee7bac15458b10b148e9e24968e633053e (diff)
downloadrust-ee1e9343b35c169a100654a511e21c47eb2cb0bc.tar.gz
rust-ee1e9343b35c169a100654a511e21c47eb2cb0bc.zip
Distribute rustc sources as part of `rustc-dev`
-rw-r--r--src/bootstrap/dist.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
index cf73e570fa5..debe6e36a9b 100644
--- a/src/bootstrap/dist.rs
+++ b/src/bootstrap/dist.rs
@@ -793,6 +793,18 @@ impl Step for RustcDev {
         let stamp = compile::librustc_stamp(builder, compiler_to_use, target);
         copy_target_libs(builder, target, &image, &stamp);
 
+        // Copy compiler sources.
+        let dst_src = image.join("lib/rustlib/rustc-src/rust");
+        t!(fs::create_dir_all(&dst_src));
+
+        let src_files = ["Cargo.lock"];
+        // This is the reduced set of paths which will become the rustc-dev component
+        // (essentially the compiler crates and all of their path dependencies).
+        copy_src_dirs(builder, &builder.src, &["compiler"], &[], &dst_src);
+        for file in src_files.iter() {
+            builder.copy(&builder.src.join(file), &dst_src.join(file));
+        }
+
         let mut cmd = rust_installer(builder);
         cmd.arg("generate")
             .arg("--product-name=Rust")