use std::env;
use std::path::PathBuf;
fn main() {
let vendor_dir = PathBuf::from("vendor/lwext4");
let src_dir = vendor_dir.join("src");
let include_dir = vendor_dir.join("include");
let sources = [
"ext4.c",
"ext4_balloc.c",
"ext4_bcache.c",
"ext4_bitmap.c",
"ext4_block_group.c",
"ext4_blockdev.c",
"ext4_crc32.c",
"ext4_debug.c",
"ext4_dir.c",
"ext4_dir_idx.c",
"ext4_extent.c",
"ext4_fs.c",
"ext4_hash.c",
"ext4_ialloc.c",
"ext4_inode.c",
"ext4_journal.c",
"ext4_mkfs.c",
"ext4_super.c",
"ext4_trans.c",
"ext4_xattr.c",
"ext4_mbr.c",
];
let mut build = cc::Build::new();
build
.include(&include_dir)
.define("CONFIG_USE_DEFAULT_CFG", "1")
.define("CONFIG_HAVE_OWN_OFLAGS", "0")
.define("CONFIG_HAVE_OWN_ERRNO", "0")
.define("CONFIG_DEBUG_PRINTF", "0")
.define("CONFIG_DEBUG_ASSERT", "0")
.flag_if_supported("-std=c99")
.flag_if_supported("-Wno-unused-parameter")
.flag_if_supported("-Wno-sign-compare");
for source in &sources {
build.file(src_dir.join(source));
}
build.compile("lwext4");
println!("cargo:rerun-if-changed=vendor/lwext4/src");
println!("cargo:rerun-if-changed=vendor/lwext4/include");
let out_dir = env::var("OUT_DIR").unwrap();
println!("cargo:include={}", include_dir.display());
println!("cargo:root={}", out_dir);
}