diff options
| author | varkor <github@varkor.com> | 2018-01-29 16:31:14 +0000 |
|---|---|---|
| committer | varkor <github@varkor.com> | 2018-01-29 16:31:14 +0000 |
| commit | 79d85dab88536a66efdf550d687591b1bc53c022 (patch) | |
| tree | 0a23d2544ae030e4ff71bc26f859d11be32055d3 | |
| parent | 6b99adeb11313197f409b4f7c4083c2ceca8a4fe (diff) | |
| download | rust-79d85dab88536a66efdf550d687591b1bc53c022.tar.gz rust-79d85dab88536a66efdf550d687591b1bc53c022.zip | |
Create a directory for --out-dir if it does not already exist
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.
| -rw-r--r-- | src/librustc_driver/driver.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index e97d83ed1ee..ed680feae0a 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -163,6 +163,13 @@ pub fn compile_input(trans: Box<TransCrate>, 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 |
