|
13 | 13 | extern crate filetime;
|
14 | 14 |
|
15 | 15 | use std::fs::File;
|
16 |
| -use std::io; |
17 | 16 | use std::path::{Path, PathBuf};
|
18 | 17 | use std::process::{Command, Stdio};
|
19 | 18 | use std::{fs, env};
|
@@ -211,7 +210,7 @@ pub fn native_lib_boilerplate(src_name: &str,
|
211 | 210 |
|
212 | 211 | let out_dir = env::var_os("RUSTBUILD_NATIVE_DIR").unwrap_or(env::var_os("OUT_DIR").unwrap());
|
213 | 212 | let out_dir = PathBuf::from(out_dir).join(out_name);
|
214 |
| - t!(create_dir_racy(&out_dir)); |
| 213 | + t!(fs::create_dir_all(&out_dir)); |
215 | 214 | if link_name.contains('=') {
|
216 | 215 | println!("cargo:rustc-link-lib={}", link_name);
|
217 | 216 | } else {
|
@@ -260,21 +259,3 @@ fn fail(s: &str) -> ! {
|
260 | 259 | println!("\n\n{}\n\n", s);
|
261 | 260 | std::process::exit(1);
|
262 | 261 | }
|
263 |
| - |
264 |
| -fn create_dir_racy(path: &Path) -> io::Result<()> { |
265 |
| - match fs::create_dir(path) { |
266 |
| - Ok(()) => return Ok(()), |
267 |
| - Err(ref e) if e.kind() == io::ErrorKind::AlreadyExists => return Ok(()), |
268 |
| - Err(ref e) if e.kind() == io::ErrorKind::NotFound => {} |
269 |
| - Err(e) => return Err(e), |
270 |
| - } |
271 |
| - match path.parent() { |
272 |
| - Some(p) => try!(create_dir_racy(p)), |
273 |
| - None => return Err(io::Error::new(io::ErrorKind::Other, "failed to create whole tree")), |
274 |
| - } |
275 |
| - match fs::create_dir(path) { |
276 |
| - Ok(()) => Ok(()), |
277 |
| - Err(ref e) if e.kind() == io::ErrorKind::AlreadyExists => Ok(()), |
278 |
| - Err(e) => Err(e), |
279 |
| - } |
280 |
| -} |
0 commit comments