diff options
-rwxr-xr-x | tools/build-pkg.lua | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/tools/build-pkg.lua b/tools/build-pkg.lua index 102c74f..8db71e4 100755 --- a/tools/build-pkg.lua +++ b/tools/build-pkg.lua @@ -299,18 +299,21 @@ local function sortForBuild(items, item2deps) return build_list end +local function makeItem2Index(build_list) + local item2index = {} + for index, item in ipairs(build_list) do + assert(not item2index[item], 'Duplicate item') + item2index[item] = index + end + return item2index +end + -- return if build_list is ordered topologically local function isTopoOrdered(build_list, items, item2deps) if #build_list ~= #items then return false, 'Length of build_list is wrong' end - local item2index = {} - for index, item in ipairs(build_list) do - if item2index[item] then - return false, 'Duplicate item: ' .. item - end - item2index[item] = index - end + local item2index = makeItem2Index(build_list) for item, deps in pairs(item2deps) do for _, dep in ipairs(deps) do if item2index[item] < item2index[dep] then |