build.rs 948 B

12345678910111213141516171819202122232425262728
  1. use std::path::Path;
  2. extern crate cc;
  3. fn main() {
  4. let src_dir = Path::new("src");
  5. let mut c_config = cc::Build::new();
  6. c_config.include(&src_dir);
  7. c_config
  8. .flag_if_supported("-Wno-unused-parameter")
  9. .flag_if_supported("-Wno-unused-but-set-variable")
  10. .flag_if_supported("-Wno-trigraphs");
  11. let parser_path = src_dir.join("parser.c");
  12. c_config.file(&parser_path);
  13. println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap());
  14. c_config.compile("parser");
  15. let mut cpp_config = cc::Build::new();
  16. cpp_config.cpp(true);
  17. cpp_config.include(&src_dir);
  18. cpp_config
  19. .flag_if_supported("-Wno-unused-parameter")
  20. .flag_if_supported("-Wno-unused-but-set-variable");
  21. let scanner_path = src_dir.join("scanner.cc");
  22. cpp_config.file(&scanner_path);
  23. println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap());
  24. cpp_config.compile("scanner");
  25. }