diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2017-02-01 00:27:51 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2017-02-02 22:40:42 +0300 |
| commit | a5b603b1bf1e9d74227a8a3b2f73acd558b952ef (patch) | |
| tree | ff9d004f3566a87c49ca157f778e40007625c993 /src/libstd | |
| parent | c0253304ea9d40103dc7d1055b7fa090b48781f8 (diff) | |
| download | rust-a5b603b1bf1e9d74227a8a3b2f73acd558b952ef.tar.gz rust-a5b603b1bf1e9d74227a8a3b2f73acd558b952ef.zip | |
Build libbacktrace/jemalloc only when their timestamps are older than sources
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/build.rs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/libstd/build.rs b/src/libstd/build.rs index 112e48921cb..a0844821709 100644 --- a/src/libstd/build.rs +++ b/src/libstd/build.rs @@ -10,13 +10,15 @@ #![deny(warnings)] -extern crate gcc; +#[macro_use] extern crate build_helper; +extern crate gcc; -use std::{env, fs}; -use std::path::PathBuf; +use std::env; +use std::fs::{self, File}; +use std::path::{Path, PathBuf}; use std::process::Command; -use build_helper::{run, rerun_if_changed_anything_in_dir}; +use build_helper::{run, rerun_if_changed_anything_in_dir, up_to_date}; fn main() { println!("cargo:rustc-cfg=cargobuild"); @@ -71,12 +73,13 @@ fn build_libbacktrace(host: &str, target: &str) { println!("cargo:rustc-link-lib=static=backtrace"); println!("cargo:rustc-link-search=native={}/.libs", build_dir.display()); - if !cfg!(stage0) && target == host { + let src_dir = env::current_dir().unwrap().join("../libbacktrace"); + rerun_if_changed_anything_in_dir(&src_dir); + let timestamp = build_dir.join("rustbuild.timestamp"); + if up_to_date(&Path::new("build.rs"), ×tamp) && up_to_date(&src_dir, ×tamp) { return } - let src_dir = env::current_dir().unwrap().join("../libbacktrace"); - rerun_if_changed_anything_in_dir(&src_dir); let compiler = gcc::Config::new().get_compiler(); // only msvc returns None for ar so unwrap is okay let ar = build_helper::cc2ar(compiler.path(), target).unwrap(); @@ -103,4 +106,6 @@ fn build_libbacktrace(host: &str, target: &str) { .current_dir(&build_dir) .arg(format!("INCDIR={}", src_dir.display())) .arg("-j").arg(env::var("NUM_JOBS").expect("NUM_JOBS was not set"))); + + t!(File::create(×tamp)); } |
