]> git.lizzy.rs Git - rust.git/commitdiff
Create a directory for --out-dir if it does not already exist
authorvarkor <github@varkor.com>
Mon, 29 Jan 2018 16:31:14 +0000 (16:31 +0000)
committervarkor <github@varkor.com>
Mon, 29 Jan 2018 16:31:14 +0000 (16:31 +0000)
Currently if `--out-dir` is set to a non-existent directory, the
compiler will throw unfriendly messages like `error: could not write
output to subdir/example.crate.allocator.rcgu.o: No such file or
directory`, which, while not completely unreadable, isn’t very
user-friendly either. This change creates the directory automatically
if it does not yet exist.

src/librustc_driver/driver.rs

index e97d83ed1ee5ab0670c6dc030ed8fa1d8a7042f5..ed680feae0aa533d3edcda9d259cef2539262534 100644 (file)
@@ -163,6 +163,13 @@ macro_rules! controller_entry_point {
             return Ok(())
         }
 
+        if let &Some(ref dir) = outdir {
+            if fs::create_dir_all(dir).is_err() {
+                sess.err("failed to find or create the directory specified by --out-dir");
+                return Err(CompileIncomplete::Stopped);
+            }
+        }
+
         let arenas = AllArenas::new();
 
         // Construct the HIR map