lua-latest-sys 0.0.2

Unsafe bindings to latest Lua's C API (5.4.4)
Documentation
use std::{env, path::PathBuf};

fn main() {
    let lua_folder = "lua-5.4.4";

    let dst = PathBuf::from(env::var_os("OUT_DIR").unwrap());

    let lua_dir = PathBuf::from(lua_folder).join("src");
    let target_os = env::var("CARGO_CFG_TARGET_OS");
    let target_family = env::var("CARGO_CFG_TARGET_FAMILY");

    let mut cc_config = cc::Build::new();
    cc_config.warnings(false);

    if target_os == Ok("linux".to_string()) {
        cc_config.define("LUA_USE_LINUX", None);
    } else if target_os == Ok("macos".to_string()) {
        cc_config.define("LUA_USE_MACOSX", None);
    } else if target_family == Ok("unix".to_string()) {
        cc_config.define("LUA_USE_POSIX", None);
    } else if target_family == Ok("windows".to_string()) {
        cc_config.define("LUA_USE_WINDOWS", None);
    }

    let mut cc_config_build = cc_config.include(&lua_dir);

    cc_config_build = cc_config_build
        .file(lua_dir.join("lapi.c"))
        .file(lua_dir.join("lbaselib.c"))
        .file(lua_dir.join("lcode.c"))
        .file(lua_dir.join("lcorolib.c"))
        .file(lua_dir.join("lctype.c"))
        .file(lua_dir.join("ldblib.c"))
        .file(lua_dir.join("ldebug.c"))
        .file(lua_dir.join("ldo.c"))
        .file(lua_dir.join("ldump.c"))
        .file(lua_dir.join("lfunc.c"))
        .file(lua_dir.join("lgc.c"))
        .file(lua_dir.join("linit.c"))
        .file(lua_dir.join("liolib.c"))
        .file(lua_dir.join("llex.c"))
        .file(lua_dir.join("lmathlib.c"))
        .file(lua_dir.join("lauxlib.c"))
        .file(lua_dir.join("lmem.c"))
        .file(lua_dir.join("loadlib.c"))
        .file(lua_dir.join("lobject.c"))
        .file(lua_dir.join("lopcodes.c"))
        .file(lua_dir.join("loslib.c"))
        .file(lua_dir.join("lparser.c"))
        .file(lua_dir.join("lstate.c"))
        .file(lua_dir.join("lstring.c"))
        .file(lua_dir.join("lstrlib.c"))
        .file(lua_dir.join("ltable.c"))
        .file(lua_dir.join("ltablib.c"))
        .file(lua_dir.join("ltm.c"))
        .file(lua_dir.join("lundump.c"))
        .file(lua_dir.join("lutf8lib.c"))
        .file(lua_dir.join("lvm.c"))
        .file(lua_dir.join("lzio.c"));

    cc_config_build
        .out_dir(dst.join("lib"))
        .compile("liblua5.4.a");
}