2014-09-14 08:36:58 +02:00

41 lines
971 B
Lua

-- alias.lua -- support for named aliases in the DAG
module(..., package.seeall)
local nodegen = require "tundra.nodegen"
local depgraph = require "tundra.depgraph"
local util = require "tundra.util"
local _alias_mt = nodegen.create_eval_subclass {}
function _alias_mt:create_dag(env, data, input_deps)
local deps = util.clone_table(input_deps)
for _, dep in util.nil_ipairs(data.Depends) do
deps[#deps+1] = dep:get_dag(env:get_parent())
end
local dag = depgraph.make_node {
Env = env,
Label = "Named alias " .. data.Name .. " for " .. env:get('BUILD_ID'),
Pass = data.Pass,
Dependencies = deps,
}
-- Remember this dag node for IDE file generation purposes
data.__DagNode = dag
return dag
end
local alias_blueprint = {
Name = {
Required = true,
Help = "Set alias name",
Type = "string",
},
}
nodegen.add_evaluator("Alias", _alias_mt, alias_blueprint)