xref: /relibc/build.rs (revision b8c50c7c6421d1868a95e57ac1553557cb2314b1)
179d05d7eSJeremy Soller extern crate cc;
279d05d7eSJeremy Soller 
37f702720SjD91mZM2 use std::{env, fs};
479d05d7eSJeremy Soller 
579d05d7eSJeremy Soller fn main() {
6277b9abcSJeremy Soller     let crate_dir = env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR not set");
7277b9abcSJeremy Soller 
8277b9abcSJeremy Soller     cc::Build::new()
9277b9abcSJeremy Soller         .flag("-nostdinc")
10277b9abcSJeremy Soller         .flag("-nostdlib")
117f702720SjD91mZM2         .include(&format!("{}/include", crate_dir))
12277b9abcSJeremy Soller         .flag("-fno-stack-protector")
13c911faccSJeremy Soller         .flag("-Wno-expansion-to-defined")
14*b8c50c7cSjD91mZM2         .files(
15*b8c50c7cSjD91mZM2             fs::read_dir("src/c")
167f702720SjD91mZM2                 .expect("src/c directory missing")
17*b8c50c7cSjD91mZM2                 .map(|res| res.expect("read_dir error").path()),
18*b8c50c7cSjD91mZM2         )
19277b9abcSJeremy Soller         .compile("relibc_c");
2079d05d7eSJeremy Soller 
2179d05d7eSJeremy Soller     println!("cargo:rustc-link-lib=static=relibc_c");
2279d05d7eSJeremy Soller }
23