1
0
mirror of https://github.com/natnat-mc/moonbuild synced 2026-05-28 06:09:41 +02:00

5 Commits

Author SHA1 Message Date
Codinget 88a8117f06 Producing rockspec 2.1.2-1 2020-11-09 19:53:14 +01:00
Codinget 69e781bc8f fix crash when multiple targets depend on the same target 2020-11-09 19:53:05 +01:00
Codinget ee0d76db98 Producing rockspec 2.1.1-1 2020-11-08 00:53:45 +01:00
Codinget 6a6334fc78 actually honor sync requests 2020-11-08 00:53:32 +01:00
Codinget e5bd85933a Producing rockspec 2.1.0-3 2020-11-08 00:45:59 +01:00
6 changed files with 105 additions and 0 deletions
+7
View File
@@ -12,6 +12,8 @@ nodepriority = (a, b) ->
tb = type b.name
da = #a.deps
db = #b.deps
sa = a.sync
sb = b.sync
if ta=='string' and tb!='string'
return true
elseif ta!='string' and tb=='string'
@@ -20,6 +22,10 @@ nodepriority = (a, b) ->
return true
elseif a.priority < b.priority
return false
elseif sa and not sb
return false
elseif sb and not sa
return true
else
return da < db
@@ -28,6 +34,7 @@ transclosure = (obj, prop) ->
i = 1
set = {}
imp = (e) ->
return unless e[prop]
for v in *e[prop]
if not set[v]
elems[i], i = v, i+1
+8
View File
@@ -37,6 +37,14 @@ class Executor
error "Node #{name} wasn't built" unless node.built
addprocess: (node, opts) =>
if node.sync
while @nprocesses != 0
@waitprocess
node\build opts
node.built = true
node\updatecache!
return
pid = fork!
error "Failed to fork" unless pid
if pid!=0
+18
View File
@@ -1670,6 +1670,8 @@ nodepriority = function(a, b)
local tb = type(b.name)
local da = #a.deps
local db = #b.deps
local sa = a.sync
local sb = b.sync
if ta == 'string' and tb ~= 'string' then
return true
elseif ta ~= 'string' and tb == 'string' then
@@ -1678,6 +1680,10 @@ nodepriority = function(a, b)
return true
elseif a.priority < b.priority then
return false
elseif sa and not sb then
return false
elseif sb and not sa then
return true
else
return da < db
end
@@ -1689,6 +1695,9 @@ transclosure = function(obj, prop)
local set = { }
local imp
imp = function(e)
if not (e[prop]) then
return
end
local _list_0 = e[prop]
for _index_0 = 1, #_list_0 do
local v = _list_0[_index_0]
@@ -2248,6 +2257,15 @@ do
end
end,
addprocess = function(self, node, opts)
if node.sync then
while self.nprocesses ~= 0 do
local _ = self.waitprocess
end
node:build(opts)
node.built = true
node:updatecache()
return
end
local pid = fork()
if not (pid) then
error("Failed to fork")
+24
View File
@@ -0,0 +1,24 @@
build = {
install = {
bin = {
moonbuild = "out/moonbuild"
}
},
type = "builtin"
}
dependencies = {
"lua >= 5.1",
"argparse >= 0.7.1-1",
"moonscript >= 0.5.0-1"
}
description = {
detailed = "moonbuild is a small build system that simplifies your build definitions by allowing you to use declarative as well as imperative rules. It represents the build as a DAG with explicit ordering, and doesn't give you any default confusing rules (unlike make). If you can, installing luaposix and/or luafilesystem will speed up builds and increase stability.\n",
summary = "Small build system in between make and a build.sh"
}
package = "moonbuild"
rockspec_format = "3.0"
source = {
tag = "v2.1.0",
url = "git://github.com/natnat-mc/moonbuild"
}
version = "2.1.0-3"
+24
View File
@@ -0,0 +1,24 @@
build = {
install = {
bin = {
moonbuild = "out/moonbuild"
}
},
type = "builtin"
}
dependencies = {
"lua >= 5.1",
"argparse >= 0.7.1-1",
"moonscript >= 0.5.0-1"
}
description = {
detailed = "moonbuild is a small build system that simplifies your build definitions by allowing you to use declarative as well as imperative rules. It represents the build as a DAG with explicit ordering, and doesn't give you any default confusing rules (unlike make). If you can, installing luaposix and/or luafilesystem will speed up builds and increase stability.\n",
summary = "Small build system in between make and a build.sh"
}
package = "moonbuild"
rockspec_format = "3.0"
source = {
tag = "v2.1.1",
url = "git://github.com/natnat-mc/moonbuild"
}
version = "2.1.1-1"
+24
View File
@@ -0,0 +1,24 @@
build = {
install = {
bin = {
moonbuild = "out/moonbuild"
}
},
type = "builtin"
}
dependencies = {
"lua >= 5.1",
"argparse >= 0.7.1-1",
"moonscript >= 0.5.0-1"
}
description = {
detailed = "moonbuild is a small build system that simplifies your build definitions by allowing you to use declarative as well as imperative rules. It represents the build as a DAG with explicit ordering, and doesn't give you any default confusing rules (unlike make). If you can, installing luaposix and/or luafilesystem will speed up builds and increase stability.\n",
summary = "Small build system in between make and a build.sh"
}
package = "moonbuild"
rockspec_format = "3.0"
source = {
tag = "v2.1.2",
url = "git://github.com/natnat-mc/moonbuild"
}
version = "2.1.2-1"