diff options
| author | ruki <[email protected]> | 2024-10-29 22:31:14 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-10-29 22:31:14 +0800 |
| commit | 796a3b9d5004d820e167b445c2f15a3d0c4fcc12 (patch) | |
| tree | 03eb10cd7ec537659e06ac306ebd88c1f1747f4c | |
| parent | dab3f1080222305fa91dd8c6b9b213b224a0e051 (diff) | |
deduplicate rust libs
| -rw-r--r-- | xmake/modules/package/manager/cargo/find_package.lua | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/xmake/modules/package/manager/cargo/find_package.lua b/xmake/modules/package/manager/cargo/find_package.lua index 1090f2049..cc66f63df 100644 --- a/xmake/modules/package/manager/cargo/find_package.lua +++ b/xmake/modules/package/manager/cargo/find_package.lua @@ -156,6 +156,7 @@ function main(name, opt) else libfiles_native_host = os.files(path.join(librarydir_host, "*.so")) end + local libraries_set = {} for _, libraryfile in ipairs(table.join(libfiles or {}, libfiles_native or {}, libfiles_native_host)) do local filename = path.filename(libraryfile) local libraryname = filename:split('-', {plain = true})[1] @@ -163,11 +164,12 @@ function main(name, opt) if not libraryname:startswith("lib") then libraryname = "lib" .. libraryname end - if names:has(libraryname) then + if names:has(libraryname) and not libraries_set[libraryname] then frameworkdirs = frameworkdirs or {} frameworks = frameworks or {} table.insert(frameworkdirs, path.directory(libraryfile)) table.insert(frameworks, libraryfile) + libraries_set[libraryname] = true end end local result |
