diff options
author | Tony Theodore <tonyt@logyst.com> | 2015-12-14 07:38:58 (GMT) |
---|---|---|
committer | Tony Theodore <tonyt@logyst.com> | 2015-12-14 07:38:58 (GMT) |
commit | ef6e50a11ad83fe9924fce28864a97bde70bbdab (patch) | |
tree | ea274797b5093e9b5dddfacf7bea5a1108804c2a /tools | |
parent | fd5eb860a15935d1c12bb8963338d0abd9f76aab (diff) | |
parent | 686afc35ecd513c2e0934a6d0287665efcc2a3a7 (diff) | |
download | mxe-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')
-rwxr-xr-x | tools/build-pkg.lua | 29 |
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() |