summaryrefslogtreecommitdiff
path: root/xmake/core/package/package.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2023-10-26 23:51:57 +0800
committerruki <[email protected]>2023-10-26 23:51:57 +0800
commit311171bcd0cee217855858b9c94502a40fbfad56 (patch)
treeecee776b38e23ca4a4e62aad070dee67a9181a16 /xmake/core/package/package.lua
parentd867bea8765d546abdbad08a3e573a88a8553b1c (diff)
fix sort and extra
Diffstat (limited to 'xmake/core/package/package.lua')
-rw-r--r--xmake/core/package/package.lua24
1 files changed, 17 insertions, 7 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index 1ba408ff7..b9f6e8a06 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -905,13 +905,18 @@ function _instance:manifest_save()
local extras
local components
local apis = language.apis()
- for _, apiname in ipairs(table.join(apis.values, apis.paths)) do
+ for _, apiname in ipairs(table.join(apis.values, apis.paths, apis.groups)) do
if apiname:startswith("package.add_") or apiname:startswith("package.set_") then
local name = apiname:sub(13)
- local value = self:get(name)
- if value ~= nil then
+ local values = self:get(name)
+ if values ~= nil then
+ -- we need wrap locked value, e.g. linkgroups = {{"m", "pthread"}}
+ values = table.wrap(table.clone(values))
+ for _, value in ipairs(values) do
+ table.wrap_unlock(value)
+ end
vars = vars or {}
- vars[name] = value
+ vars[name] = values
local extra = self:extraconf(name)
if extra then
extras = extras or {}
@@ -921,12 +926,17 @@ function _instance:manifest_save()
for _, component_name in ipairs(table.wrap(self:get("components"))) do
local comp = self:component(component_name)
if comp then
- local component_value = comp:get(name)
- if component_value ~= nil then
+ local component_values = comp:get(name)
+ if component_values ~= nil then
+ -- we need wrap locked value, e.g. linkgroups = {{"m", "pthread"}}
+ component_values = table.wrap(table.clone(component_values))
+ for _, value in ipairs(component_values) do
+ table.wrap_unlock(value)
+ end
components = components or {}
components.vars = components.vars or {}
components.vars[component_name] = components.vars[component_name] or {}
- components.vars[component_name][name] = component_value
+ components.vars[component_name][name] = component_values
end
end
end