diff options
| author | ruki <[email protected]> | 2020-11-21 12:00:53 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-11-21 12:00:53 +0800 |
| commit | 3bba7d268aa9375db82b0983dc80f8ec00f4e59c (patch) | |
| tree | a504a33ee17854875a7a8be5d7a0d3416414d10a /xmake/modules/package/tools/cmake.lua | |
| parent | ca6a421a88efb8bf4bc6728fd3602b600fadd32f (diff) | |
pass packagedeps links to tools/cmake
Diffstat (limited to 'xmake/modules/package/tools/cmake.lua')
| -rw-r--r-- | xmake/modules/package/tools/cmake.lua | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua index 93929c764..882f029cf 100644 --- a/xmake/modules/package/tools/cmake.lua +++ b/xmake/modules/package/tools/cmake.lua @@ -34,14 +34,15 @@ function _translate_windows_bin_path(bin_path) end end --- get includedirs -function _get_cxflags_from_includedirs(package, opt) +-- get cflags from package deps +function _get_cflags_from_packagedeps(package, opt) local result = {} for _, depname in ipairs(opt.packagedeps) do local dep = package:dep(depname) if dep then local fetchinfo = dep:fetch() if fetchinfo then + table.join2(result, compiler.map_flags("cxx", "define", fetchinfo.includedirs)) table.join2(result, compiler.map_flags("cxx", "includedir", fetchinfo.includedirs)) table.join2(result, compiler.map_flags("cxx", "sysincludedir", fetchinfo.sysincludedirs)) end @@ -50,6 +51,23 @@ function _get_cxflags_from_includedirs(package, opt) return result end +-- get ldflags from package deps +function _get_ldflags_from_packagedeps(package, opt) + local result = {} + for _, depname in ipairs(opt.packagedeps) do + local dep = package:dep(depname) + if dep then + local fetchinfo = dep:fetch() + if fetchinfo then + table.join2(result, linker.map_flags("binary", {"cxx"}, "linkdir", fetchinfo.linkdirs)) + table.join2(result, linker.map_flags("binary", {"cxx"}, "link", fetchinfo.links)) + table.join2(result, linker.map_flags("binary", {"cxx"}, "syslink", fetchinfo.syslinks)) + end + end + end + return result +end + -- get cflags function _get_cflags(package, opt) opt = opt or {} @@ -60,7 +78,7 @@ function _get_cflags(package, opt) end table.join2(result, package:config("cflags")) table.join2(result, package:config("cxflags")) - table.join2(result, _get_cxflags_from_includedirs(package, opt)) + table.join2(result, _get_cflags_from_packagedeps(package, opt)) if #result > 0 then return table.concat(result, ' ') end @@ -76,7 +94,7 @@ function _get_cxxflags(package, opt) end table.join2(result, package:config("cxxflags")) table.join2(result, package:config("cxflags")) - table.join2(result, _get_cxflags_from_includedirs(package, opt)) + table.join2(result, _get_cflags_from_packagedeps(package, opt)) if #result > 0 then return table.concat(result, ' ') end @@ -102,6 +120,7 @@ function _get_ldflags(package, opt) if opt.cross then table.join2(result, package:build_getenv("ldflags")) end + table.join2(result, _get_ldflags_from_packagedeps(package, opt)) if #result > 0 then return table.concat(result, ' ') end @@ -114,6 +133,7 @@ function _get_shflags(package, opt) if opt.cross then table.join2(result, package:build_getenv("shflags")) end + table.join2(result, _get_ldflags_from_packagedeps(package, opt)) if #result > 0 then return table.concat(result, ' ') end |
