lu-sys 0.696.0

FFI bindings to the Luau C API
Documentation
use cmake::Config;

fn main() {
    let mut config = Config::new("luau");

    config
        .define("LUAU_BUILD_CLI", "OFF")
        .define("LUAU_BUILD_TESTS", "OFF")
        .define("LUAU_BUILD_WEB", "OFF")
        .define("LUAU_EXTERN_C", "ON")
        .define("LUAU_STATIC_CRT", "ON")
        .define("LUAU_ENABLE_ASSERT", "ON")
        .no_build_target(true)
        .profile(if cfg!(debug_assertions) {
            "RelWithDebInfo"
        } else {
            "Release"
        });

    #[cfg(target_os = "windows")]
    config.cxxflag("/EHsc");

    let dst = config.build();

    #[cfg(target_os = "windows")]
    {
        #[cfg(debug_assertions)]
        println!(
            "cargo:rustc-link-search=native={}/build/RelWithDebInfo",
            dst.display()
        );
        #[cfg(not(debug_assertions))]
        println!(
            "cargo:rustc-link-search=native={}/build/Release",
            dst.display()
        );
    }

    #[cfg(not(target_os = "windows"))]
    println!("cargo:rustc-link-search=native={}/build", dst.display());

    println!("cargo:rustc-link-lib=static=Luau.VM");
    println!("cargo:rustc-link-lib=static=Luau.Compiler");
    println!("cargo:rustc-link-lib=static=Luau.Ast");

    #[cfg(target_os = "linux")]
    println!("cargo:rustc-link-lib=stdc++");

    #[cfg(target_os = "macos")]
    println!("cargo:rustc-link-lib=c++");
}