diff options
| -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 |
