1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- local scriptdir = path.getdirectory(_SCRIPT)
- local function stripfile(fname)
- local f = io.open(fname)
- local s = assert(f:read("*a"))
- f:close()
-
- s = s:gsub("[\t]", "")
-
-
- s = s:gsub("[\r]", "")
-
-
- s = s:gsub("\n%-%-[^\n]*", "")
-
-
- s = s:gsub("\\", "\\\\")
-
- s = s:gsub("\n+", "\n")
-
- s = s:gsub("^%-%-\n", "")
-
- s = s:gsub("\n", "\\n")
-
-
- s = s:gsub("\"", "\\\"")
-
- return s
- end
- local function writeline(out, s, continues)
- out:write("\t\"")
- out:write(s)
- out:write(iif(continues, "\"\n", "\",\n"))
- end
-
-
- local function writefile(out, fname, contents)
- local max = 1024
- out:write("\t/* " .. fname .. " */\n")
-
-
- local start = 1
- local len = contents:len()
- while start <= len do
- local n = len - start
- if n > max then n = max end
- local finish = start + n
-
- while contents:sub(finish, finish) == "\\" do
- finish = finish - 1
- end
- writeline(out, contents:sub(start, finish), finish < len)
- start = finish + 1
- end
- out:write("\n")
- end
- function doembed()
-
- scripts = dofile(path.join(scriptdir, "../src/_manifest.lua"))
-
-
- table.insert(scripts, "_premake_main.lua")
-
-
- local out = io.open(path.join(scriptdir, "../src/host/scripts.c"), "w+b")
- out:write("/* Premake's Lua scripts, as static data buffers for release mode builds */\n")
- out:write("/* DO NOT EDIT - this file is autogenerated - see BUILD.txt */\n")
- out:write("/* To regenerate this file, run: premake4 embed */ \n\n")
- out:write("const char* builtin_scripts[] = {\n")
-
- for i,fn in ipairs(scripts) do
- print(fn)
- local s = stripfile(path.join(scriptdir,"../src/" .. fn))
- writefile(out, fn, s)
- end
-
- out:write("\t0\n};\n");
- out:close()
- end
|