|
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