build.rs 612 B

12345678910111213141516171819202122
  1. extern crate cc;
  2. use std::{env, fs};
  3. fn main() {
  4. let crate_dir = env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR not set");
  5. cc::Build::new()
  6. .flag("-nostdinc")
  7. .flag("-nostdlib")
  8. .include(&format!("{}/include", crate_dir))
  9. .flag("-fno-stack-protector")
  10. .flag("-Wno-expansion-to-defined")
  11. .files(
  12. fs::read_dir("src/c")
  13. .expect("src/c directory missing")
  14. .map(|res| res.expect("read_dir error").path()),
  15. )
  16. .compile("relibc_c");
  17. println!("cargo:rustc-link-lib=static=relibc_c");
  18. }