fn main() { let root_dir = std::path::Path::new("."); let xml_dir = root_dir.join("xml").join("src"); let dtd_dir = root_dir.join("dtd").join("src"); let common_dir = root_dir.join("common"); let mut config = cc::Build::new(); config.std("c11").include(&xml_dir); config.flag_if_supported("-Wno-unused-value"); #[cfg(target_env = "msvc")] config.flag("-utf-8"); for path in &[ xml_dir.join("parser.c"), xml_dir.join("scanner.c"), dtd_dir.join("parser.c"), dtd_dir.join("scanner.c"), ] { config.file(path); println!("cargo:rerun-if-changed={}", path.to_str().unwrap()); } println!( "cargo:rerun-if-changed={}", common_dir.join("scanner.h").to_str().unwrap() ); config.compile("tree-sitter-xml"); }