diff options
| author | ruki <[email protected]> | 2023-10-26 23:51:57 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2023-10-26 23:51:57 +0800 |
| commit | 311171bcd0cee217855858b9c94502a40fbfad56 (patch) | |
| tree | ecee776b38e23ca4a4e62aad070dee67a9181a16 /xmake/core/package/package.lua | |
| parent | d867bea8765d546abdbad08a3e573a88a8553b1c (diff) | |
fix sort and extra
Diffstat (limited to 'xmake/core/package/package.lua')
| -rw-r--r-- | xmake/core/package/package.lua | 24 |
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 |
