summaryrefslogtreecommitdiffstats
path: root/tools/build-pkg.lua
diff options
context:
space:
mode:
authorTony Theodore <tonyt@logyst.com>2015-12-14 07:38:58 (GMT)
committerTony Theodore <tonyt@logyst.com>2015-12-14 07:38:58 (GMT)
commitef6e50a11ad83fe9924fce28864a97bde70bbdab (patch)
treeea274797b5093e9b5dddfacf7bea5a1108804c2a /tools/build-pkg.lua
parentfd5eb860a15935d1c12bb8963338d0abd9f76aab (diff)
parent686afc35ecd513c2e0934a6d0287665efcc2a3a7 (diff)
downloadmxe-ef6e50a11ad83fe9924fce28864a97bde70bbdab.zip
mxe-ef6e50a11ad83fe9924fce28864a97bde70bbdab.tar.gz
mxe-ef6e50a11ad83fe9924fce28864a97bde70bbdab.tar.bz2
Merge pull request #1056 from LuaAndC/build-empty-dependencies-of-nonempty
build-pkg: build empty dependencies of non-empty
Diffstat (limited to 'tools/build-pkg.lua')
-rwxr-xr-xtools/build-pkg.lua29
1 files changed, 24 insertions, 5 deletions
diff --git a/tools/build-pkg.lua b/tools/build-pkg.lua
index f42f7f2..62ceb0f 100755
--- a/tools/build-pkg.lua
+++ b/tools/build-pkg.lua
@@ -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()