Merge pull request #1056 from LuaAndC/build-empty-dependencies-of-nonempty

build-pkg: build empty dependencies of non-empty
This commit is contained in:
Tony Theodore 2015-12-14 18:38:58 +11:00
commit ef6e50a11a
1 changed files with 24 additions and 5 deletions

View File

@ -623,21 +623,40 @@ local function buildPackages(items, item2deps)
end
local function makeDebs(items, item2deps, item2ver, item2files)
-- start from building non-empty packages
local to_build = {}
for _, item in ipairs(items) do
local deps = assert(item2deps[item], item)
local ver = assert(item2ver[item], item)
local files = assert(item2files[item], item)
if not isEmpty(item, files) then
table.insert(to_build, item)
end
end
local built = {}
repeat
local missing_deps_set = {}
for _, item in ipairs(to_build) do
local deps = assert(item2deps[item], item)
local ver = assert(item2ver[item], item)
local files = assert(item2files[item], item)
for _, dep in ipairs(deps) do
local dep_files = assert(item2files[dep], dep)
local dep_files = item2files[dep]
if isEmpty(dep, dep_files) then
log('Non-empty item %s depends on ' ..
log('Item %s depends on ' ..
'empty item %s', item, dep)
missing_deps_set[dep] = true
end
end
makeDeb(item, files, deps, ver)
built[item] = true
end
end
-- empty packages built to satisfy non-empty
to_build = {}
for item in pairs(missing_deps_set) do
if not built[item] then
table.insert(to_build, item)
end
end
until #to_build == 0
end
local function getMxeVersion()