diff options
| author | ruki <[email protected]> | 2024-09-26 16:50:09 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-09-26 16:50:09 +0800 |
| commit | f7124e1da63d632b795558cb7c5c40c4a47d15bc (patch) | |
| tree | 5d088619d520bb0e64491354d42dafcf02832cef | |
| parent | 74a69b0beab63ea29471bac920ad6d58fc2ca06d (diff) | |
| parent | 4b3af02d37c3fc2f277dc396304587b64e1420c5 (diff) | |
Merge pull request #5666 from xmake-io/librarydep
use librarydep
| -rw-r--r-- | xmake/core/package/package.lua | 14 | ||||
| -rw-r--r-- | xmake/modules/package/tools/autoconf.lua | 4 | ||||
| -rw-r--r-- | xmake/modules/package/tools/cmake.lua | 4 | ||||
| -rw-r--r-- | xmake/modules/package/tools/meson.lua | 4 |
4 files changed, 20 insertions, 6 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua index 4a26e170a..ce8333c0f 100644 --- a/xmake/core/package/package.lua +++ b/xmake/core/package/package.lua @@ -433,6 +433,20 @@ function _instance:plaindeps() return self._PLAINDEPS end +-- get library dep +function _instance:librarydep(name, opt) + local key = "librarydeps_map_" .. ((opt and opt.private) and "private" or "") + local librarydeps_map = self:_memcache():get(key) + if not librarydeps_map then + librarydeps_map = {} + for _, dep in ipairs(self:librarydeps()) do + librarydeps_map[dep:name()] = dep + end + self:_memcache():set(key, librarydeps_map) + end + return librarydeps_map[name] +end + -- get library deps with correct link order function _instance:librarydeps(opt) if opt and opt.private then diff --git a/xmake/modules/package/tools/autoconf.lua b/xmake/modules/package/tools/autoconf.lua index af50784fb..58ea2e4c2 100644 --- a/xmake/modules/package/tools/autoconf.lua +++ b/xmake/modules/package/tools/autoconf.lua @@ -176,7 +176,7 @@ end function _get_cflags_from_packagedeps(package, opt) local values for _, depname in ipairs(opt.packagedeps) do - local dep = type(depname) ~= "string" and depname or package:dep(depname) + local dep = type(depname) ~= "string" and depname or package:librarydep(depname) if dep then local fetchinfo = dep:fetch() if fetchinfo then @@ -208,7 +208,7 @@ end function _get_ldflags_from_packagedeps(package, opt) local values for _, depname in ipairs(opt.packagedeps) do - local dep = type(depname) ~= "string" and depname or package:dep(depname) + local dep = type(depname) ~= "string" and depname or package:librarydep(depname) if dep then local fetchinfo = dep:fetch() if fetchinfo then diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua index e0535bdac..d4eeabe56 100644 --- a/xmake/modules/package/tools/cmake.lua +++ b/xmake/modules/package/tools/cmake.lua @@ -119,7 +119,7 @@ end function _get_cflags_from_packagedeps(package, opt) local values for _, depname in ipairs(opt.packagedeps) do - local dep = type(depname) ~= "string" and depname or package:dep(depname) + local dep = type(depname) ~= "string" and depname or package:librarydep(depname) if dep then local fetchinfo = dep:fetch() if fetchinfo then @@ -151,7 +151,7 @@ end function _get_ldflags_from_packagedeps(package, opt) local values for _, depname in ipairs(opt.packagedeps) do - local dep = type(depname) ~= "string" and depname or package:dep(depname) + local dep = type(depname) ~= "string" and depname or package:librarydep(depname) if dep then local fetchinfo = dep:fetch() if fetchinfo then diff --git a/xmake/modules/package/tools/meson.lua b/xmake/modules/package/tools/meson.lua index 21ab6faf1..1668d2bfe 100644 --- a/xmake/modules/package/tools/meson.lua +++ b/xmake/modules/package/tools/meson.lua @@ -396,7 +396,7 @@ end function _get_cflags_from_packagedeps(package, opt) local values for _, depname in ipairs(opt.packagedeps) do - local dep = type(depname) ~= "string" and depname or package:dep(depname) + local dep = type(depname) ~= "string" and depname or package:librarydep(depname) if dep then local fetchinfo = dep:fetch() if fetchinfo then @@ -428,7 +428,7 @@ end function _get_ldflags_from_packagedeps(package, opt) local values for _, depname in ipairs(opt.packagedeps) do - local dep = type(depname) ~= "string" and depname or package:dep(depname) + local dep = type(depname) ~= "string" and depname or package:librarydep(depname) if dep then local fetchinfo = dep:fetch() if fetchinfo then |
