wechat-protocol 1.3.1

Native WeChat transport, authentication and protocol codecs
Documentation
fn main() {
    let mut build = cc::Build::new();
    build
        .include("vendor/silk/interface")
        .include("vendor/silk/src")
        .warnings(false)
        .flag_if_supported("-fwrapv")
        .flag_if_supported("-fno-strict-aliasing");
    let mut files = std::fs::read_dir("vendor/silk/src")
        .expect("vendored SILK sources")
        .map(|e| e.expect("source entry").path())
        .filter(|p| p.extension().is_some_and(|e| e == "c"))
        .collect::<Vec<_>>();
    files.sort();
    for file in files {
        println!("cargo:rerun-if-changed={}", file.display());
        build.file(file);
    }
    build.file("src/silk_bridge.c").compile("agent_wechat_silk");
    println!("cargo:rerun-if-changed=src/silk_bridge.c");
    println!("cargo:rerun-if-changed=vendor/silk/interface");
    println!("cargo:rerun-if-changed=vendor/silk/src");
}