local lua_versions = { ["51"] = { link = "https://www.lua.org/ftp/lua-5.1.5.tar.gz", slib = "liblua.a", dlib = "lua51.dll" }, ["52"] = { link = "https://www.lua.org/ftp/lua-5.2.4.tar.gz", slib = "liblua.a", dlib = "lua52.dll" }, ["53"] = { link = "https://www.lua.org/ftp/lua-5.3.6.tar.gz", slib = "liblua.a", dlib = "lua53.dll" }, ["54"] = { link = "https://www.lua.org/ftp/lua-5.4.7.tar.gz", slib = "liblua.a", dlib = "lua54.dll" }, ["jit"] = { slib = "libluajit.a", dlib = "lua51.dll" } } local optimizations = { tiny = "-Oz", size = "-Os", debug = "-Og", zero = "-O0", one = "-O1", two = "-O2", three = "-O3", } local debug = { release = "", debug = "-g", } local compilers = {--[["mingw32",]]"mingw64"--[[,"clang32","clang64"]]} local builds = {} for version_k, version_v, opti_k, opti_v, debug_k, debug_v, comp_k, comp_v in cartesian(lua_versions, optimizations, debug, compilers) do local name = "luarocks-" .. version_k .. "-" .. opti_k .. "-" .. debug_k .. "-" .. comp_v builds[name] = { image="image-" .. comp_v, requires = { {"git", "luarocks"}, {"cicd", "lua" .. version_k .. "-" .. opti_k .. "-" .. debug_k .. "-" .. comp_v .. ":" .. version_v.slib}, {"cicd", "lua" .. version_k .. "-" .. opti_k .. "-" .. debug_k .. "-" .. comp_v .. ":lua.exe"}, {"cicd", "lua" .. version_k .. "-" .. opti_k .. "-" .. debug_k .. "-" .. comp_v .. ":" .. version_v.dlib}, {"cicd", "bzip2-" .. opti_k .. "-" .. debug_k .. "-" .. comp_v .. ":libbz2.a"}, {"cicd", "libressl-" .. opti_k .. "-" .. debug_k .. "-" .. comp_v .. ":libssl.a"}, {"cicd", "libz-" .. opti_k .. "-" .. debug_k .. "-" .. comp_v .. ":libz.a"}, }, produces = { ["luarocks.exe"] = true, ["luarocks.exe.c"] = true, }, env = { CFLAGS=" " .. opti_v .. " " .. debug_v, LUA_VER=version_k, } } -- Lua can't just be pulled from git, the .tar.gz releases include extra -- information and files not stored in git. -- Luajit can just be built from git though. if version_k ~= "jit" then builds[name].requires[#builds[name].requires + 1] = {"http", version_v.link} else builds[name].requires[#builds[name].requires + 1] = {"git", "luajit"} end --[[ builds[name .. "-test"] = { image="image-wine", requires={ {"cicd", name .. ":luarocks.exe"}, {"cicd", "lua" .. version_k .. "-" .. opti_k .. "-" .. debug_k .. "-" .. comp_v .. ":" .. version_v.bin}, {"cicd", "lua" .. version_k .. "-" .. opti_k .. "-" .. debug_k .. "-" .. comp_v .. ":" .. version_v.dlib}, }, produces = {}, init = "test", } ]] end return builds