diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2017-03-03 02:15:56 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2017-03-04 21:38:26 +0300 |
| commit | aeadc81ddcf25df677f75d781aa2ec9d732bb6f4 (patch) | |
| tree | d209490ee1c2b510925e19c754ce4b521653c240 /src/libstd | |
| parent | a7c8afd28d45018f3c3af9dec569c36bd4dea10a (diff) | |
| download | rust-aeadc81ddcf25df677f75d781aa2ec9d732bb6f4.tar.gz rust-aeadc81ddcf25df677f75d781aa2ec9d732bb6f4.zip | |
Build compiler-rt and sanitizers only once
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/build.rs | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/src/libstd/build.rs b/src/libstd/build.rs index 834e3d09211..ef1d3c84f2a 100644 --- a/src/libstd/build.rs +++ b/src/libstd/build.rs @@ -15,10 +15,9 @@ extern crate build_helper; extern crate gcc; use std::env; -use std::fs::{self, File}; -use std::path::{Path, PathBuf}; +use std::fs::File; use std::process::Command; -use build_helper::{run, rerun_if_changed_anything_in_dir, up_to_date}; +use build_helper::{run, native_lib_boilerplate}; fn main() { let target = env::var("TARGET").expect("TARGET was not set"); @@ -68,16 +67,9 @@ fn main() { } fn build_libbacktrace(host: &str, target: &str) { - let build_dir = env::var_os("RUSTBUILD_NATIVE_DIR").unwrap_or(env::var_os("OUT_DIR").unwrap()); - let build_dir = PathBuf::from(build_dir).join("libbacktrace"); - let _ = fs::create_dir_all(&build_dir); - - println!("cargo:rustc-link-lib=static=backtrace"); - println!("cargo:rustc-link-search=native={}/.libs", build_dir.display()); - 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) { + let native = native_lib_boilerplate("libbacktrace", "libbacktrace", "backtrace", + "rustbuild.timestamp", ".libs"); + if native.skip_build { return } @@ -88,10 +80,10 @@ fn build_libbacktrace(host: &str, target: &str) { .collect::<Vec<_>>().join(" "); cflags.push_str(" -fvisibility=hidden"); run(Command::new("sh") - .current_dir(&build_dir) - .arg(src_dir.join("configure").to_str().unwrap() - .replace("C:\\", "/c/") - .replace("\\", "/")) + .current_dir(&native.out_dir) + .arg(native.src_dir.join("configure").to_str().unwrap() + .replace("C:\\", "/c/") + .replace("\\", "/")) .arg("--with-pic") .arg("--disable-multilib") .arg("--disable-shared") @@ -104,9 +96,9 @@ fn build_libbacktrace(host: &str, target: &str) { .env("CFLAGS", cflags)); run(Command::new(build_helper::make(host)) - .current_dir(&build_dir) - .arg(format!("INCDIR={}", src_dir.display())) + .current_dir(&native.out_dir) + .arg(format!("INCDIR={}", native.src_dir.display())) .arg("-j").arg(env::var("NUM_JOBS").expect("NUM_JOBS was not set"))); - t!(File::create(×tamp)); + t!(File::create(&native.timestamp)); } |
