diff --git a/mlua-sys/Cargo.toml b/mlua-sys/Cargo.toml index 53a414a2..b01bb631 100644 --- a/mlua-sys/Cargo.toml +++ b/mlua-sys/Cargo.toml @@ -38,10 +38,17 @@ module = [] [build-dependencies] cc = "1.0" cfg-if = "1.0" -pkg-config = "0.3.17" +system-deps = "7.0" lua-src = { version = ">= 548.1.0, < 548.2.0", optional = true } luajit-src = { version = ">= 210.6.0, < 210.7.0", optional = true } luau0-src = { version = "0.17.0", optional = true } [lints.rust] unexpected_cfgs = { level = "allow", check-cfg = ['cfg(raw_dylib)'] } + +[package.metadata.system-deps] +lua54 = { name = "lua", fallback-names = ["lua5.4", "lua-5.4", "lua54"], version = ">= 5.4, < 5.5", feature = "lua54" } +lua53 = { name = "lua", fallback-names = ["lua5.3", "lua-5.3", "lua53"], version = ">= 5.3, < 5.4", feature = "lua53" } +lua52 = { name = "lua", fallback-names = ["lua5.2", "lua-5.2", "lua52"], version = ">= 5.2, < 5.3", feature = "lua52" } +lua51 = { name = "lua", fallback-names = ["lua5.1", "lua-5.1", "lua51"], version = ">= 5.1, < 5.2", feature = "lua51" } +luajit = { name = "luajit", version = ">= 2.0.4, < 2.2", feature = "luajit" } diff --git a/mlua-sys/build/find_normal.rs b/mlua-sys/build/find_normal.rs index dbbc18c4..789c2c69 100644 --- a/mlua-sys/build/find_normal.rs +++ b/mlua-sys/build/find_normal.rs @@ -1,7 +1,6 @@ #![allow(dead_code)] use std::env; -use std::ops::Bound; pub fn probe_lua() { let target_arch = env::var("CARGO_CFG_TARGET_ARCH").unwrap(); @@ -29,40 +28,7 @@ pub fn probe_lua() { return; } - // Find using `pkg-config` - - #[cfg(feature = "lua54")] - let (incl_bound, excl_bound, alt_probe, ver) = - ("5.4", "5.5", ["lua5.4", "lua-5.4", "lua54"], "5.4"); - #[cfg(feature = "lua53")] - let (incl_bound, excl_bound, alt_probe, ver) = - ("5.3", "5.4", ["lua5.3", "lua-5.3", "lua53"], "5.3"); - #[cfg(feature = "lua52")] - let (incl_bound, excl_bound, alt_probe, ver) = - ("5.2", "5.3", ["lua5.2", "lua-5.2", "lua52"], "5.2"); - #[cfg(feature = "lua51")] - let (incl_bound, excl_bound, alt_probe, ver) = - ("5.1", "5.2", ["lua5.1", "lua-5.1", "lua51"], "5.1"); - #[cfg(feature = "luajit")] - let (incl_bound, excl_bound, alt_probe, ver) = ("2.0.4", "2.2", [], "JIT"); - - #[rustfmt::skip] - let mut lua = pkg_config::Config::new() - .range_version((Bound::Included(incl_bound), Bound::Excluded(excl_bound))) - .cargo_metadata(true) - .probe(if cfg!(feature = "luajit") { "luajit" } else { "lua" }); - - if lua.is_err() { - for pkg in alt_probe { - lua = pkg_config::Config::new() - .cargo_metadata(true) - .probe(pkg); - - if lua.is_ok() { - break; - } - } - } - - lua.unwrap_or_else(|err| panic!("cannot find Lua{ver} using `pkg-config`: {err}")); + // This reads [package.metadata.system-deps] from Cargo.toml + system_deps::Config::new().probe().unwrap(); } +