Remove filetime dep from build_helper

This commit is contained in:
Mark Simulacrum 2018-03-31 20:32:40 -06:00
parent 517f24025a
commit 86915ddf30
4 changed files with 8 additions and 19 deletions

3
src/Cargo.lock generated
View file

@ -152,9 +152,6 @@ dependencies = [
[[package]] [[package]]
name = "build_helper" name = "build_helper"
version = "0.1.0" version = "0.1.0"
dependencies = [
"filetime 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "byteorder" name = "byteorder"

View file

@ -1120,7 +1120,7 @@ pub fn run_cargo(build: &Build, cargo: &mut Command, stamp: &Path, is_check: boo
let max = max.unwrap(); let max = max.unwrap();
let max_path = max_path.unwrap(); let max_path = max_path.unwrap();
if stamp_contents == new_contents && max <= stamp_mtime { if stamp_contents == new_contents && max <= stamp_mtime {
build.verbose(&format!("not updating {:?}; contents equal and {} <= {}", build.verbose(&format!("not updating {:?}; contents equal and {:?} <= {:?}",
stamp, max, stamp_mtime)); stamp, max, stamp_mtime));
return deps return deps
} }

View file

@ -6,6 +6,3 @@ authors = ["The Rust Project Developers"]
[lib] [lib]
name = "build_helper" name = "build_helper"
path = "lib.rs" path = "lib.rs"
[dependencies]
filetime = "0.1"

View file

@ -10,14 +10,11 @@
#![deny(warnings)] #![deny(warnings)]
extern crate filetime;
use std::fs::File; use std::fs::File;
use std::path::{Path, PathBuf}; use std::path::{Path, PathBuf};
use std::process::{Command, Stdio}; use std::process::{Command, Stdio};
use std::{fs, env}; use std::{fs, env};
use std::time::{SystemTime, UNIX_EPOCH};
use filetime::FileTime;
/// A helper macro to `unwrap` a result except also print out details like: /// A helper macro to `unwrap` a result except also print out details like:
/// ///
@ -137,10 +134,8 @@ pub fn rerun_if_changed_anything_in_dir(dir: &Path) {
} }
/// Returns the last-modified time for `path`, or zero if it doesn't exist. /// Returns the last-modified time for `path`, or zero if it doesn't exist.
pub fn mtime(path: &Path) -> FileTime { pub fn mtime(path: &Path) -> SystemTime {
fs::metadata(path).map(|f| { fs::metadata(path).and_then(|f| f.modified()).unwrap_or(UNIX_EPOCH)
FileTime::from_last_modification_time(&f)
}).unwrap_or(FileTime::zero())
} }
/// Returns whether `dst` is up to date given that the file or files in `src` /// Returns whether `dst` is up to date given that the file or files in `src`
@ -157,9 +152,9 @@ pub fn up_to_date(src: &Path, dst: &Path) -> bool {
Err(e) => panic!("source {:?} failed to get metadata: {}", src, e), Err(e) => panic!("source {:?} failed to get metadata: {}", src, e),
}; };
if meta.is_dir() { if meta.is_dir() {
dir_up_to_date(src, &threshold) dir_up_to_date(src, threshold)
} else { } else {
FileTime::from_last_modification_time(&meta) <= threshold meta.modified().unwrap_or(UNIX_EPOCH) <= threshold
} }
} }
@ -226,13 +221,13 @@ pub fn sanitizer_lib_boilerplate(sanitizer_name: &str) -> Result<NativeLibBoiler
search_path) search_path)
} }
fn dir_up_to_date(src: &Path, threshold: &FileTime) -> bool { fn dir_up_to_date(src: &Path, threshold: SystemTime) -> bool {
t!(fs::read_dir(src)).map(|e| t!(e)).all(|e| { t!(fs::read_dir(src)).map(|e| t!(e)).all(|e| {
let meta = t!(e.metadata()); let meta = t!(e.metadata());
if meta.is_dir() { if meta.is_dir() {
dir_up_to_date(&e.path(), threshold) dir_up_to_date(&e.path(), threshold)
} else { } else {
FileTime::from_last_modification_time(&meta) < *threshold meta.modified().unwrap_or(UNIX_EPOCH) < threshold
} }
}) })
} }