Build/Public/api.lua

127 lines
2.7 KiB
Lua

-- private
local buildAction = auRequire("Core/Actions")
local target = auRequire("Core/Target")
-- executes inline under iprocessor::process
function auAddBuildAction(...)
buildAction(...)
end
function auAddBuildAction(...)
local type = {
-- stage: pre, post
-- filter: ...
-- lua/bin/targetName/command: relative path - lua script; relative path - executable; project name; command line
-- args: lua private passthrough; binary or target name command args
-- cwd: sln(default),prj
}
end
function auStart()
if (_auStart) then return end
_auStart = true
auRequire("Core/base")
end
function auStartSolution(sln)
auStart()
auRequire("Core").solution.start(sln)
end
function auStartProject(project)
auStart()
auRequire("Core").project.startProject(project)
end
function auFilterForPlatforms(callback, ...)
target.auFilterForPlatforms(callback, ...)
end
function auFilterForConfigs(callback, ...)
target.auFilterForConfigs(callback, ...)
end
function auFilterForConfigPlatforms(callback, ...)
target.auFilterForConfigPlatforms(callback, ...)
end
function auAddVisit(...)
addVisit(...)
end
-- Returns an array of filter tables where each optional table is checked against the current combination of config/platform/arch
-- Varargs are logical anded with the final filter table
-- in object -> defer to objects.lua
function auFilterOf(obj, ...)
return target.auFilterOf(obj, ...)
end
function auFilterConfig(configs)
return auFilterOf({
configs = configs
})
end
function auFilterArch(arch)
return auFilterOf({
archs = arch
})
end
function auFilterPlatform(platform)
return auFilterOf({
platforms = platform
})
end
function auGetSetting(name)
return Aurora.Settings[name]
end
_G.filterStack = {}
function auFilter(filter)
local tbl = _G.filterStack;
if (not filter or #filter == 0) then
table.remove(tbl, #tbl)
else
table.insert(tbl, filter)
end
--print("FILTERING ", json.encode(tbl), json.encode(filter))
_G.filter(tbl)
end
function auLinkProject(...)
linkAuProject(...)
end
function auIncludeProject(...)
includeAuProject(...)
end
function auLinkAndRefProject(...)
importAndLinkProject(...)
end
function auAddFeature(...)
addFeature(...)
end
function auGetCurrentProject()
return getCurrentProjectName()
end
function auGetCurrentProjectProcessor()
return getProjectProcessor(auGetCurrentProject())
end
function auGetCurrentProjectMeta()
return auGetCurrentProjectProcessor():getMeta()
end
function auIsProjectIntialized(name)
return isProjectLoaded(name)
end
function auProcessSolution()
processSolution()
end