filenamesof() an installable now returns all installed files, not just the ones

at the top level (necessary to make a lot of the dependency stuff work when
using tools which depend on installables).
This commit is contained in:
David Given 2016-08-21 21:55:21 +02:00
parent 84ee7c9cc4
commit 08823a172c

View file

@ -723,6 +723,7 @@ definerule("installable",
local deps = {} local deps = {}
local commands = {} local commands = {}
local srcs = {} local srcs = {}
local outs = {}
local dests = {} local dests = {}
for dest, src in pairs(e.map) do for dest, src in pairs(e.map) do
if src.is.installable then if src.is.installable then
@ -730,6 +731,7 @@ definerule("installable",
error("can't specify a destination filename when installing an installable") error("can't specify a destination filename when installing an installable")
end end
deps[#deps+1] = src.fullname deps[#deps+1] = src.fullname
outs = concat(outs, filenamesof(src))
elseif (type(dest) == "number") then elseif (type(dest) == "number") then
error("only references to other installables can be missing a destination") error("only references to other installables can be missing a destination")
else else
@ -740,6 +742,7 @@ definerule("installable",
deps[#deps+1] = f deps[#deps+1] = f
dests[#dests+1] = dest dests[#dests+1] = dest
outs[#outs+1] = dest
commands[#commands+1] = "cp "..f[1].." "..dest commands[#commands+1] = "cp "..f[1].." "..dest
end end
end end
@ -752,7 +755,7 @@ definerule("installable",
emitter:endrule() emitter:endrule()
return { return {
outs = dests outs = outs
} }
end end
) )