mlua 0.8.10

High level bindings to Lua 5.4/5.3/5.2/5.1 (including LuaJIT) and Roblox Luau with async/await features and support of writing native Lua modules in Rust.
Documentation
#![allow(dead_code)]

use std::path::PathBuf;

pub fn probe_lua() -> Option<PathBuf> {
    #[cfg(feature = "lua54")]
    let artifacts = lua_src::Build::new().build(lua_src::Lua54);
    #[cfg(feature = "lua53")]
    let artifacts = lua_src::Build::new().build(lua_src::Lua53);
    #[cfg(feature = "lua52")]
    let artifacts = lua_src::Build::new().build(lua_src::Lua52);
    #[cfg(feature = "lua51")]
    let artifacts = lua_src::Build::new().build(lua_src::Lua51);
    #[cfg(feature = "luajit")]
    let artifacts = {
        let mut builder = luajit_src::Build::new();
        if cfg!(feature = "luajit52") {
            builder.lua52compat(true);
        }
        builder.build()
    };
    #[cfg(feature = "luau")]
    let artifacts = luau0_src::Build::new().build();

    artifacts.print_cargo_metadata();

    Some(artifacts.include_dir().to_owned())
}