diff options
| author | ruki <[email protected]> | 2024-08-19 23:47:28 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-08-19 23:47:28 +0800 |
| commit | 248cf58f94a08d45ec6262b84038d1661ec37729 (patch) | |
| tree | 56c6da15fcc118e598aef6a6451aa6299c777ef7 | |
| parent | e5c5bb03024be9595b18d1e25779f40278f1d812 (diff) | |
fix packagedeps for meson
| -rw-r--r-- | xmake/modules/package/tools/meson.lua | 48 |
1 files changed, 40 insertions, 8 deletions
diff --git a/xmake/modules/package/tools/meson.lua b/xmake/modules/package/tools/meson.lua index ddac3c5a4..fddf32999 100644 --- a/xmake/modules/package/tools/meson.lua +++ b/xmake/modules/package/tools/meson.lua @@ -410,35 +410,67 @@ end -- get cflags from package deps function _get_cflags_from_packagedeps(package, opt) - local result = {} + local values for _, depname in ipairs(opt.packagedeps) do local dep = type(depname) ~= "string" and depname or package:dep(depname) if dep then local fetchinfo = dep:fetch() if fetchinfo then - table.join2(result, _map_compflags(package, "cxx", "define", fetchinfo.defines)) - table.join2(result, _map_compflags(package, "cxx", "includedir", fetchinfo.includedirs)) - table.join2(result, _map_compflags(package, "cxx", "sysincludedir", fetchinfo.sysincludedirs)) + if values then + values = values .. fetchinfo + else + values = fetchinfo + end end end end + -- @see https://github.com/xmake-io/xmake-repo/pull/4973#issuecomment-2295890196 + local result = {} + if values then + if values.defines then + table.join2(result, _map_compflags(package, "cxx", "define", values.defines)) + end + if values.includedirs then + table.join2(result, _map_compflags(package, "cxx", "includedir", values.includedirs)) + end + if values.sysincludedirs then + table.join2(result, _map_compflags(package, "cxx", "sysincludedir", values.sysincludedirs)) + end + end return _translate_flags(package, result) end -- get ldflags from package deps function _get_ldflags_from_packagedeps(package, opt) - local result = {} + local values for _, depname in ipairs(opt.packagedeps) do local dep = type(depname) ~= "string" and depname or package:dep(depname) if dep then local fetchinfo = dep:fetch() if fetchinfo then - table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "linkdir", fetchinfo.linkdirs)) - table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "link", fetchinfo.links)) - table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "syslink", fetchinfo.syslinks)) + if values then + values = values .. fetchinfo + else + values = fetchinfo + end end end end + local result = {} + if values then + if values.linkdirs then + table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "linkdir", values.linkdirs)) + end + if values.links then + table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "link", values.links)) + end + if values.syslinks then + table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "syslink", values.syslinks)) + end + if values.frameworks then + table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "framework", values.frameworks)) + end + end return _translate_flags(package, result) end |
