From e02ec3e9c6936c7cf32edb82a0c24d686a7b3c01 Mon Sep 17 00:00:00 2001 From: slowsage <84777606+slowsage@users.noreply.github.com> Date: Wed, 26 Nov 2025 11:42:43 -0500 Subject: [PATCH 1/2] Add [package.metadata.system-deps] to mlua-sys/Cargo.toml --- mlua-sys/Cargo.toml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mlua-sys/Cargo.toml b/mlua-sys/Cargo.toml index 53a414a2..bf3b12b4 100644 --- a/mlua-sys/Cargo.toml +++ b/mlua-sys/Cargo.toml @@ -45,3 +45,10 @@ 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" } From 24269b67d07f14b223c460382d963111739c6905 Mon Sep 17 00:00:00 2001 From: slowsage <84777606+slowsage@users.noreply.github.com> Date: Wed, 26 Nov 2025 13:02:33 -0500 Subject: [PATCH 2/2] Migrate to `system-deps` for mlua-sys --- mlua-sys/Cargo.toml | 2 +- mlua-sys/build/find_normal.rs | 40 +++-------------------------------- 2 files changed, 4 insertions(+), 38 deletions(-) diff --git a/mlua-sys/Cargo.toml b/mlua-sys/Cargo.toml index bf3b12b4..b01bb631 100644 --- a/mlua-sys/Cargo.toml +++ b/mlua-sys/Cargo.toml @@ -38,7 +38,7 @@ 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 } 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(); } +