	.file	"45450472.c"
	.intel_syntax noprefix
	.text
	.globl	builtin_scripts
	.section	.rodata
	.align 8
.LC0:
	.ascii	"function os.executef(cmd, ...)\nlocal arg={...}\ncmd = strin"
	.ascii	"g.format(cmd, table.unpack(arg))\nreturn os.execute(cmd)\nen"
	.ascii	"d\nlocal function parse_ld_so_conf(conf_file)\nlocal first, "
	.ascii	"last\nlocal dirs = { }\nlocal file = io.open(conf_file)\nif "
	.ascii	"file == nil then\nreturn dirs\nend\nfor line in file:lines()"
	.ascii	" do\nfirst = line:find(\"#\", 1, true)\nif first ~= nil then"
	.ascii	"\nline = line:sub(1, first - 1)\nend\nif line ~= \"\" then\n"
	.ascii	"first, last = line:find(\"include%s+\")\nif first ~= nil the"
	.ascii	"n\nlocal include_glob = line:sub(last + 1)\nlocal includes ="
	.ascii	" os.matchfiles(include_glob)\nfor _, v in ipairs(includes) d"
	.ascii	"o\ndirs = table.join(dirs, parse_ld_so_conf(v))\nend\nelse\n"
	.ascii	"table.insert(dirs, line)\nend\nend\nend\nreturn dirs\nend\nf"
	.ascii	"unction os.findlib(libname)\nlocal path, formats\nif os.is(\""
	.ascii	"windows\") then\nformats = { \"%s.dll\", \"%s\" }\npath = os"
	.ascii	".getenv(\"PATH\")\nelse\nif os.is(\"macosx\") then\nformats "
	.ascii	"= { \"lib%s.dylib\", \"%s.dylib\" }\npath = os.getenv(\"DYLD"
	.ascii	"_LIBRARY_PATH\")\nelse\nformats = { \"lib%s.so\", \"%s.so\" "
	.ascii	"}\npath = os.getenv(\"LD_LIBRARY_PATH\") or \"\"\nfor _, v i"
	.ascii	"n ipairs(parse_ld_so_conf(\"/etc/ld.so.conf\")) do\npath = p"
	.ascii	"ath .. \":\" .. v\nend\nend\ntable.insert(formats, \"%s\")\n"
	.ascii	"path = path or \"\"\nif os.is64bit() then\npath = path .. \""
	.ascii	":/lib64:/usr/lib64/:usr/local/lib64\"\nend\npath = path .. \""
	.ascii	":/lib:/usr/lib:/usr/local/lib\"\nend\nfor _, fmt in ipairs(f"
	.ascii	"ormats) do\nlocal name = string.format(fmt, libname)\nlocal "
	.ascii	"result = os.pathsearch(name, path)\nif result then return re"
	.ascii	"sult end\nend\nend\nfunction os.get()\nreturn _OPTIONS.os or"
	.ascii	" _OS\nend\nfunction os.is(id)\nreturn (os.get():lower() == i"
	.ascii	"d:lower())\nend\nlocal _64BitHostTypes = {\n\"x86_64\",\n\"i"
	.ascii	"a64\",\n\"amd64\",\n\"ppc64\",\n\"powerpc64\",\n\"sparc64\"\n"
	.ascii	"}\nfunction os.is64bit()\nif (os._is64bit()) then\nreturn tr"
	.ascii	"ue\nend\nlocal arch = \"\"\nif _OS == \"windows\" then\narch"
	.ascii	" = os.getenv(\"PROCESSOR_ARCHITECTURE\")\nelseif _OS == \"ma"
	.ascii	"cosx\" then\narch = os.outputof(\"echo $HOSTTYPE\")\nelse\na"
	.ascii	"rch = os.outputof(\"uname -m\")\nend\nif nil ~= arch then\na"
	.ascii	"rch = arch:lower()\nfor _, hosttype in ipairs(_64BitHostType"
	.ascii	"s) do\nif arch:find(hosttype) then\nreturn true\nend\nen"
	.ascii	"d\nend\nreturn false\nend\nlocal function domatch(result, ma"
	.ascii	"sk, wantfiles)\nif mask:startswith(\"./\") then\nmask = mask"
	.ascii	":sub(3)\nend\nlocal basedir = mask\nlocal starpos = mask:fin"
	.ascii	"d(\"%*\")\nif starpos then\nbasedir = basedir:sub(1, starpos"
	.ascii	" - 1)\nend\nbasedir = path.getdirectory(basedir)\nif (basedi"
	.ascii	"r == \".\") then basedir = \"\" end\nlocal recurse = mask:fi"
	.ascii	"nd(\"**\", nil, true)\nmask = path.wildcards(mask)\nlocal fu"
	.ascii	"nction matchwalker(basedir)\nlocal wildcard = path.join(base"
	.ascii	"dir, \"*\")\nlocal m = os.matchstart(wildcard)\nwhile (os.ma"
	.ascii	"tchnext(m)) do\nlocal isfile = os.matchisfile(m)\nif ((wantf"
	.ascii	"iles and isfile) or (not wantfiles and not isfile)) then\nlo"
	.ascii	"cal fname = path.join(basedir, os.matchname(m))\nif fname:ma"
	.ascii	"tch(mask) == fname then\ntable.insert(result, fname)\nend\ne"
	.ascii	"nd\nend\nos.matchdone(m)\nif recurse then\nm = os.matchstart"
	.ascii	"(wildcard)\nwhile (os.matchnext(m)) do\nif not os.matchisfil"
	.ascii	"e(m) then\nlocal dirname = os.matchname(m)\nmatchwalker(path"
	.ascii	".join(basedir, dirname))\nend\nend\nos.matchdone(m)\nend\nen"
	.ascii	"d\nmatchwalker(basedir)\nend\nfunction os.matchdirs(...)\nlo"
	.ascii	"cal arg={...}\nlocal result = { }\nfor _, mask in ipairs(arg"
	.ascii	") do\ndomatch(result, mask, false)\nend\nreturn result\nend\n"
	.ascii	"function os.matchfiles(...)\nlocal arg={...}\nlocal result ="
	.ascii	" { }\nfor _, mask in ipairs(arg) do\ndomatch(result, mask, t"
	.ascii	"rue)\nend\nreturn result\nend\nlocal builtin_mkdir = os.mkdi"
	.ascii	"r\nfunction os.mkdir(p)\nlocal dir = iif(p:startswith(\"/\")"
	.ascii	", \"/\", \"\")\nfor part in p:gmatch(\"[^/]+\") do\ndir = di"
	.ascii	"r .. part\nif (part ~= \"\" and not path.isabsolute(part) an"
	.ascii	"d not os.isdir(dir)) then\nlocal ok, err = builtin_mkdir(dir"
	.ascii	")\nif (not ok) then\nreturn nil, err\nend\nend\ndir = dir .."
	.ascii	" \"/\"\nend\nreturn true\nend\nfunction os.outputof(cmd)\nlo"
	.ascii	"cal pipe = io.popen(cmd)\nlocal result = pipe:read('*a')\npi"
	.ascii	"pe:close()\nreturn result\nend"
	.string	"\nlocal builtin_rmdir = os.rmdir\nfunction os.rmdir(p)\nlocal dirs = os.matchdirs(p .. \"/*\")\nfor _, dname in ipairs(dirs) do\nos.rmdir(dname)\nend\nlocal files = os.matchfiles(p .. \"/*\")\nfor _, fname in ipairs(files) do\nos.remove(fname)\nend\nbuiltin_rmdir(p)\nend\n"
	.align 8
.LC1:
	.ascii	"function path.getbasename(p)\nlocal name = path.getname(p)\n"
	.ascii	"local i = name:findlast(\".\", true)\nif (i) then\nreturn na"
	.ascii	"me:sub(1, i - 1)\nelse\nreturn name\nend\nend\nfunction path"
	.ascii	".removeext(name)\nlocal i = name:findlast(\".\", true)\nif ("
	.ascii	"i) then\nreturn name:sub(1, i - 1)\nelse\nreturn name\nend\n"
	.ascii	"end\nfunction path.getdirectory(p)\nlocal i = p:findlast(\"/"
	.ascii	"\", true)\nif (i) then\nif i > 1 then i = i - 1 end\nreturn "
	.ascii	"p:sub(1, i)\nelse\nreturn \".\"\nend\nend\nfunction path.get"
	.ascii	"drive(p)\nlocal ch1 = p:sub(1,1)\nlocal ch2 = p:sub(2,2)\nif"
	.ascii	" ch2 == \":\" then\nreturn ch1\nend\nend\nfunction path.gete"
	.ascii	"xtension(p)\nlocal i = p:findlast(\".\", true)\nif (i) then\n"
	.ascii	"return p:sub(i)\nelse\nreturn \"\"\nend\nend\nfunction path."
	.ascii	"getname(p)\nlocal i = p:findlast(\"[/\\\\]\")\nif (i) then\n"
	.ascii	"return p:sub(i + 1)\nelse\nreturn p\nend\nend\nfunction path"
	.ascii	".getcommonbasedir(a, b)\na = path.getdirectory(a)..'/'\nb = "
	.ascii	"path.getdirectory(b)..'/'\nlocal idx = 0\nwhile (true) do\nl"
	.ascii	"ocal tst = a:find('/', idx + 1, true)\nif tst then\nif a:sub"
	.ascii	"(1,tst) == b:sub(1,tst) then\nidx = tst\nelse\nbreak\nend\ne"
	.ascii	"lse\nbreak\nend\nend\nlocal result = ''\nif idx > 1 then\nre"
	.ascii	"sult = a:sub(1, idx - 1)-- Remove the trailing slash to be c"
	.ascii	"onsistent with other functions.\nend\nreturn result\nend\nfu"
	.ascii	"nction path.hasextension(fname, extensions)\nlocal fext = pa"
	.ascii	"th.getextension(fname):lower()\nif type(extensions) == \"tab"
	.ascii	"le\" then\nfor _, extension in pairs(extensions) do\nif fext"
	.ascii	" == extension then\nreturn true\nend\nend\nreturn false\nels"
	.ascii	"e\nreturn (fext == extensions)\nend\nend\nfunction path.iscf"
	.ascii	"ile(fname)\nreturn path.hasextension(fname, { \".c\", \".m\""
	.ascii	" })\nend\nfunction path.iscppfile(fname)\nreturn path.hasext"
	.ascii	"ension(fname, { \".cc\", \".cpp\", \".cxx\", \".c++\", \".c\""
	.ascii	", \".m\", \".mm\" })\nend\nfunction path.iscxfile(fname)\nre"
	.ascii	"turn path.hasextension(fname, \".cx\")\nend\nfunction path.i"
	.ascii	"sobjcfile(fname)\nreturn path.hasextension(fname, { \".m\", "
	.ascii	"\".mm\" })\nend\nfunction path.iscppheader(fname)\nreturn pa"
	.ascii	"th.hasextension(fname, { \".h\", \".hh\", \".hpp\", \".hxx\""
	.ascii	" })\nend\nfunction path.isappxmanifest(fname)\nreturn path.h"
	.ascii	"asextension(fname, \".appxmanifest\")\nend\nfunction p"
	.ascii	"ath.isandroidbuildfile(fname)\nreturn path.getname(fname) =="
	.ascii	" \"AndroidManifest.xml\"\nend\nfunction path.isnatvis(fname)"
	.ascii	"\nreturn path.hasextension(fname, \".natvis\")\nend\nfunctio"
	.ascii	"n path.isasmfile(fname)\nreturn path.hasextension(fname, { \""
	.ascii	".asm\", \".s\", \".S\" })\nend\nfunction path.isvalafile(fna"
	.ascii	"me)\nreturn path.hasextension(fname, \".vala\")\nend\nfuncti"
	.ascii	"on path.isswiftfile(fname)\nreturn path.hasextension(fname, "
	.ascii	"\".swift\")\nend\nfunction path.issourcefile(fname)\nreturn "
	.ascii	"path.iscfile(fname)\nor path.iscppfile(fname)\nor path.iscxf"
	.ascii	"ile(fname)\nor path.isasmfile(fname)\nor path.isvalafile(fna"
	.ascii	"me)\nor path.isswiftfile(fname)\nend\nfunction path.issource"
	.ascii	"filevs(fname)\nreturn path.hasextension(fname, { \".cc\", \""
	.ascii	".cpp\", \".cxx\", \".c++\", \".c\" })\nor path.iscxfile(fnam"
	.ascii	"e)\nend\nfunction path.isobjectfile(fname)\nreturn path.hase"
	.ascii	"xtension(fname, { \".o\", \".obj\" })\nend\nfunction path.is"
	.ascii	"resourcefile(fname)\nreturn path.hasextension(fname, \".rc\""
	.ascii	")\nend\nfunction path.isimagefile(fname)\nlocal extensions ="
	.ascii	" { \".png\" }\nlocal ext = path.getextension(fname):lower()\n"
	.ascii	"return table.contains(extensions, ext)\nend\nfunction path.j"
	.ascii	"oin(...)\nlocal arg={...}\nlocal numargs = select(\"#\", ..."
	.ascii	")\nif numargs == 0 then\nreturn \"\";\nend\nlocal allparts ="
	.ascii	" {}\nfor i = numargs, 1, -1 do\nlocal part = select(i, ...)\n"
	.ascii	"if part and #part > 0 and part ~= \".\" then\nwhile part:end"
	.ascii	"swith(\"/\") do\npart = part:sub(1, -2)\nend\ntable.insert(a"
	.ascii	"llparts, 1, part)\nif path.isabsolute(part) then\nbreak\nend"
	.ascii	"\nend\nend\nreturn table.concat(allparts, \"/\")\nend\nfunct"
	.ascii	"ion path.rebase(p, oldbase, newbase)\np = path.getabsolute(p"
	.ascii	"ath.join(oldbase, p))\np = path.getrelative(newbase, p)\nret"
	.ascii	"urn p\nend\nfunction path.translate(p, sep)\nif (type(p) == "
	.ascii	"\"table\") then\nlocal result = { }\nfor _, value in ipairs("
	.ascii	"p) do\ntable.insert(result, path.translate(value))\nend\nret"
	.ascii	"urn result\nelse\nif (not sep) then\nif (os.is(\"windows\"))"
	.ascii	" then\nsep = \"\\\\\"\nelse\nsep = \"/\"\nend\nend\nlocal re"
	.ascii	"sult = p:gsub(\"[/\\\\]\", sep)\nreturn result\nend\nend\nfu"
	.ascii	"nction path.wildcards(pattern)\npattern = pattern:gsub(\"([%"
	.ascii	"+%.%-%^%$%(%)%%])\", \"%%%1\")\npattern = "
	.ascii	"pattern:gsub(\"%*%*\", \"\\001\")\npattern = pattern:gsub(\""
	.ascii	"%*\", \"\\002\")\npattern = pattern:gsub(\"\\001\", \".*\")\n"
	.ascii	"pattern = pattern:gsub(\"\\002\", \"[^/]*\")\nreturn pattern"
	.ascii	"\nend\nfunction path.trimdots(p)\nlocal changed\nrepeat\ncha"
	.ascii	"nged = true\nif p:startswith(\"./\") then\np = p:sub(3)\nels"
	.ascii	"eif p:startswith(\"../\") then\np = p:sub(4)\nelse\nchanged "
	.ascii	"= false\nend\nuntil not changed\nreturn p\nend\nfunction pat"
	.ascii	"h.rebase(p, oldbase, newbase)\np = path.getabsolute(path.joi"
	.ascii	"n(oldbase, p))\np = path.getrelative"
	.string	"(newbase, p)\nreturn p\nend\nfunction path.replaceextension(p, newext)\nlocal ext = path.getextension(p)\nif not ext then\nreturn p\nend\nif #newext > 0 and not newext:findlast(\".\", true) then\nnewext = \".\"..newext\nend\nreturn p:match(\"^(.*)\"..ext..\"$\")..newext\nend\n"
	.align 8
.LC2:
	.ascii	"function string.explode(s, pattern, plain)\nif (pattern == '"
	.ascii	"') then return false end\nlocal pos = 0\nlocal arr = { }\nfo"
	.ascii	"r st,sp in function() return s:find(pattern, pos, plain) end"
	.ascii	" do\ntable.insert(arr, s:sub(pos, st-1))\npos = sp + 1\nend\n"
	.ascii	"table.insert(arr, s:sub(pos))\nreturn arr\nend\nfunction str"
	.ascii	"ing.findlast(s, pattern, plain)\nlocal curr = 0\nlocal term "
	.ascii	"= nil\nrepeat\nlocal next, nextterm = s:find(pattern, curr +"
	.ascii	" 1, plain)\nif (next) the"
	.string	"n\ncurr = next\nterm = nextterm\nend\nuntil (not next)\nif (curr > 0) then\nreturn curr, term\nend\nend\nfunction string.startswith(haystack, needle)\nreturn (haystack:find(needle, 1, true) == 1)\nend\nfunction string.trim(s)\nreturn (s:gsub(\"^%s*(.-)%s*$\", \"%1\"))\nend\n"
	.align 8
.LC3:
	.ascii	"function table.contains(t, value)\nfor _, v in pairs(t) do\n"
	.ascii	"if v == value then return true end\nend\nreturn false\nend\n"
	.ascii	"function table.icontains(t, value)\nfor _, v in ipairs(t) do"
	.ascii	"\nif v == value then return true end\nend\nreturn false\nend"
	.ascii	"\nfunction table.deepcopy(object)\nlocal seen = {}\nlocal fu"
	.ascii	"nction copy(object)\nif type(object) ~= \"table\" then\nretu"
	.ascii	"rn object\nelseif seen[object] then\nreturn seen[object]\nen"
	.ascii	"d\nlocal clone = {}\nseen[object] = clone\nfor key, value in"
	.ascii	" pairs(object) do\nclone[key] = copy(value)\nend\nsetmetatab"
	.ascii	"le(clone, getmetatable(object))\nreturn clone\nend\nreturn c"
	.ascii	"opy(object)\nend\nfunction table.extract(arr, fname)\nlocal "
	.ascii	"result = { }\nfor _,v in ipairs(arr) do\ntable.insert(result"
	.ascii	", v[fname])\nend\nreturn result\nend\nfunction table.flatten"
	.ascii	"(arr)\nlocal result = { }\nlocal function flatten(arr)\nfor "
	.ascii	"_, v in ipairs(arr) do\nif type(v) == \"table\" then\nflatte"
	.ascii	"n(v)\nelse\ntable.insert(result, v)\nend\nend\nend\nflatten("
	.ascii	"arr)\nreturn result\nend\nfunction table.implode(arr, before"
	.ascii	", after, between)\nlocal result = \"\"\nfor _,v in ipairs(ar"
	.ascii	"r) do\nif (result ~= \"\" and between) then\nresult = result"
	.ascii	" .. between\nend\nresult = result .. before .. v .. after\ne"
	.ascii	"nd\nreturn result\nend\nfunction table.insertflat(tbl, value"
	.ascii	"s)\nif type(values) == \"table\" then\nfor _, value in ipair"
	.ascii	"s(values) do\ntable.insertflat(tbl, value)\nend\nelse\ntable"
	.ascii	".insert(tbl, values)\nend\nend\nfunction table.isempty(t)\nr"
	.ascii	"eturn next(t) == nil\nend\nfunction table.join(...)\nlocal a"
	.ascii	"rg={...}\nlocal result = { }\nfor _,t in ipairs(arg) do\nif "
	.ascii	"type(t) == \"table\" then\nfor _,v in ipairs(t) do\ntable.in"
	.ascii	"sert(result, v)\nend\nelse\ntable.insert(result, t)\nend\nen"
	.ascii	"d\nreturn result\nend\nfunction table.keys(tbl)\nlocal keys "
	.ascii	"= {}\nfor k, _ in pairs(tbl) do\ntable.insert(keys, k)\nend\n"
	.ascii	"return keys\nend\nfunction table.sortedpairs(t)\nlocal keys "
	.ascii	"= table.keys(t)\nlocal i = 0\ntable.sort(keys)\nreturn funct"
	.ascii	"ion()\ni = i + 1\nif keys[i] == nil then\nreturn nil\nend\nr"
	.ascii	"eturn keys[i], t[keys[i]]\nend\nend\nfunction table.merge(.."
	.ascii	".)\nlocal arg={...}\nlocal result = { }\nfor _,t in ipairs(a"
	.ascii	"rg) do\nif type(t) =="
	.ascii	" \"table\" then\nfor k,v in pairs(t) do\nresult[k] = v\nend\n"
	.ascii	"else\nerror(\"invalid value\")\nend\nend\nreturn result\nend"
	.ascii	"\nfunction table.translate(arr, translation)\nlocal result ="
	.ascii	" { }\nfor _, value in ipairs(arr) do\nlocal tvalue\nif type("
	.ascii	"translation) == \"function\" then\ntvalue = translation(valu"
	.ascii	"e)\nelse\ntvalue = translation[value]\nend\nif (tvalue) then"
	.ascii	"\ntable.insert(result, tvalue)\nend\nend\nreturn result\nend"
	.ascii	"\nfunction table.reverse(arr)\nfor i=1, math.floor(#arr / 2)"
	.ascii	" do\narr[i], arr[#arr - i + 1] = a"
	.string	"rr[#arr - i + 1], arr[i]\nend\nreturn arr\nend\nfunction table.arglist(arg, value)\nif #value > 0 then\nlocal args = {}\nfor _, val in ipairs(value) do\ntable.insert(args, string.format(\"%s %s\", arg, val))\nend\nreturn table.concat(args, \" \")\nelse\nreturn \"\"\nend\nend\n"
	.align 8
.LC4:
	.ascii	"io.eol         = \"\\n\"\nio.indent      = \"\\t\"\nio.inden"
	.ascii	"tLevel = 0\nlocal function _escaper(v) return v end\n_esc = "
	.ascii	"_escaper\nfunction io.capture()\nlocal prev = io.captured\ni"
	.ascii	"o.captured = ''\nreturn prev\nend\nfunction io.endcapture(re"
	.ascii	"store)\nlocal captured = io.captured\nio.captured = restore\n"
	.ascii	"return captured\nend\nlocal builtin_open = io.open\nfunction"
	.ascii	" io.open(fname, mode)\nif (mode) then\nif (mode:find(\"w\"))"
	.ascii	" then\nlocal dir = path.getdirectory(fname)\nok, err = os.mk"
	.ascii	"dir(dir)\nif (not ok) then\nerror(err, 0)\nend\nend\nend\nre"
	.ascii	"turn builtin_open(fname, mode)\nend\nfunction io.printf(msg,"
	.ascii	" ...)\nlocal arg={...}\nif not io.eol then\nio.eol = \"\\n\""
	.ascii	"\nend\nif not io.indent then\nio.indent = \"\\t\"\nend\nif t"
	.ascii	"ype(msg) == \"number\" then\ns = string.rep(io.indent, msg) "
	.ascii	".. string.format(table.unpack(arg))\nelse\ns = string.format"
	.ascii	"(msg, table.unpack(arg))\nend\nif io.captured then\nio.captu"
	.ascii	"red = io.captured .. s .. io.eol\nelse\nio.write(s)\nio.writ"
	.ascii	"e(io.eol)\nend\nend\nfunction io.xprintf(msg, ...)\nlocal ar"
	.ascii	"g = {...}\nfor i = 1, #arg do\narg[i] = io.esc(arg[i])\nend\n"
	.ascii	"io.printf(msg, unpack(arg))\nend\nfunction io.esc(value)\ni"
	.string	"f type(value) == \"table\" then\nlocal result = {}\nlocal n = #value\nfor i = 1, n do\ntable.insert(result, io.esc(value[i]))\nend\nreturn result\nend\nreturn _esc(value or \"\")\nend\nfunction io.escaper(func)\n_esc = func or _escaper\nend\n_p = io.printf\n_x = io.xprintf\n"
	.align 8
.LC5:
	.ascii	"premake = { }\npremake.platforms =\n{\nNative =\n{\ncfgsuffi"
	.ascii	"x       = \"\",\n},\nx32 =\n{\ncfgsuffix       = \"32\",\n},"
	.ascii	"\nx64 =\n{\ncfgsuffix       = \"64\",\n},\nUniversal =\n{\nc"
	.ascii	"fgsuffix       = \"univ\",\n},\nUniversal32 =\n{\ncfgsuffix "
	.ascii	"      = \"univ32\",\n},\nUniversal64 =\n{\ncfgsuffix       ="
	.ascii	" \"univ64\",\n},\nPS3 =\n{\ncfgsuffix       = \"ps3\",\niscr"
	.ascii	"osscompiler = true,\nnosharedlibs    = true,\nnamestyle     "
	.ascii	"  = \"PS3\",\n},\nWiiDev =\n{\ncfgsuffix       = \"wii\",\ni"
	.ascii	"scrosscompiler = true,\nnamestyle       = \"PS3\",\n},\nXbox"
	.ascii	"360 =\n{\ncfgsuffix       = \"xbox360\",\niscrosscompiler = "
	.ascii	"true,\nnamestyle       = \"windows\",\n},\nPowerPC =\n{\ncfg"
	.ascii	"suffix       = \"ppc\",\niscrosscompiler = true,\n},\nARM =\n"
	.ascii	"{\ncfgsuffix       = \"ARM\",\niscrosscompiler = true,\n},\n"
	.ascii	"Orbis =\n{\ncfgsuffix       = \"orbis\",\niscrosscompiler = "
	.ascii	"true,\nnamestyle       = \"Orbis\",\n},\nDurango =\n{\ncfgsu"
	.ascii	"ffix       = \"durango\",\niscrosscompiler = true,\nnoshared"
	.ascii	"libs    = true,\nnamestyle       = \"windows\",\n},\nTegraAn"
	.ascii	"droid =\n{\ncfgsuffix       = \"tegraandroid\",\niscrosscomp"
	.ascii	"iler = true,\nnamestyle       = \"TegraAndroid\",\n},\nNX32 "
	.ascii	"=\n{\ncfgsuffix       = \"nx32\",\niscrosscompiler = true,\n"
	.ascii	"namestyle       = \"NX\",\n},\nNX64 =\n{\ncfgsuffix       = "
	.ascii	"\"nx64\",\niscrosscompiler = true,\nnamestyle       = \"NX\""
	.ascii	",\n},\nEmscripten =\n{\ncfgsuffix       = \"emscripten\",\ni"
	.ascii	"scrosscompiler = true,\nnosharedlibs    = true,\nnamestyle  "
	.ascii	"     = \"Emscripten\",\n},\n}\nlocal builtin_dofile = dofile"
	.ascii	"\nfunction dofile(fname)\nlocal oldcwd = os.getcwd()\nlocal "
	.ascii	"oldfile = _SCRIPT\nif (not os.isfile(fname)) then\nlocal pat"
	.ascii	"h = os.pathsearch(fname, _OPTIONS[\"scripts\"], os.getenv(\""
	.ascii	"PREMAKE_PATH\"))\nif (path) then\nfname = path..\"/\"..fname"
	.ascii	"\nend\nend\n_SCRIPT = path.getabsolute(fname)\nlocal newcwd "
	.ascii	"= path.getdirectory(_SCRIPT)\nos.chdir(newcwd)\nlocal a, b, "
	.ascii	"c, d, e, f = builtin_dofile(_SCRIPT)\n_SCRIPT = oldfile\nos."
	.ascii	"chdir(oldcwd)\nreturn a, b, c, d, e, f\nend\nfunction iif(ex"
	.ascii	"pr, trueval, falseval)\nif (expr) then\nreturn trueval\nelse"
	.ascii	"\nreturn falseval\nend\nend\nfunction include(fname)\nlocal "
	.ascii	"dir, name = premake.findDefaultScript(fname, false)\nif dir "
	.ascii	"~= nil then\nreturn "
	.ascii	"dof"
	.string	"ile(dir .. \"/\" .. name)\nend\nreturn nil\nend\nfunction printf(msg, ...)\nlocal arg={...}\nprint(string.format(msg, table.unpack(arg)))\nend\nfunction typex(t)\nlocal mt = getmetatable(t)\nif (mt) then\nif (mt.__type) then\nreturn mt.__type\nend\nend\nreturn type(t)\nend\n"
	.align 8
.LC6:
	.ascii	"premake.action = { }\npremake.action.list = { }\nfunction pr"
	.ascii	"emake.action.add(a)\nlocal missing\nfor _, field in ipairs({"
	.ascii	"\"description\", \"trigger\"}) do\nif (not a[field]) then\nm"
	.ascii	"issing = field\nend\nend\nif (missing) then\nerror(\"action "
	.ascii	"needs a \" .. missing, 3)\nend\npremake.action.list[a.trigge"
	.ascii	"r] = a\nend\nfunction premake.action.call(name)\nlocal a = p"
	.ascii	"remake.action.list[name]\nfor sln in premake.solution.each()"
	.ascii	" do\nif a.onsolution then\na.onsolution(sln)\nend\nif sln.po"
	.ascii	"stsolutioncallbacks then\nfor _,cb in ipairs(sln.postsolutio"
	.ascii	"ncallbacks) do\ncb(sln)\nend\nend\nfor prj in premake.soluti"
	.ascii	"on.eachproject(sln) do\nif a.onproject then\na.onproject(prj"
	.ascii	")\nend\nif prj.postprojectcallbacks then\nfor _,cb in ipairs"
	.ascii	"(prj.postprojectcallbacks) do\ncb(prj)\nend\nend\nend\nend\n"
	.ascii	"if a.execute then\na.execute()\nend\nend\nfunction premake.a"
	.ascii	"ction.current()\nreturn premake.action.get(_ACTION)\nend\nfu"
	.ascii	"nction premake.action.get(name)\nreturn premake.action.list["
	.ascii	"name]\nend\nfunction premake.action.each()\nlocal keys = { }"
	.ascii	"\nfor _, action in pairs(premake.action.list) do\ntable.inse"
	.ascii	"rt(keys, action.trigger)\nend\ntable.sort(keys)\nlocal i = 0"
	.ascii	"\nreturn function()\ni = i + 1\nreturn premake.action.list[k"
	.ascii	"eys[i]]\nend\nend\nfunction premake.action.set(name)\n_ACTIO"
	.ascii	"N = name\nlocal action = premake.action.get(name)\nif action"
	.ascii	" then\n_OS = action.os or _OS\nend\nend\nfunction premake.ac"
	.ascii	"tion.supports(action, feature)\nif "
	.string	"not action then\nreturn false\nend\nif action.valid_languages then\nif table.contains(action.valid_languages, feature) then\nreturn true\nend\nend\nif action.valid_kinds then\nif table.contains(action.valid_kinds, feature) then\nreturn true\nend\nend\nreturn false\nend\n"
	.align 8
.LC7:
	.ascii	"premake.option = { }\npremake.option.list = { }\nfunction pr"
	.ascii	"emake.option.add(opt)\nlocal missing\nfor _, field in ipairs"
	.ascii	"({ \"description\", \"trigger\" }) do\nif (not opt[field]) t"
	.ascii	"hen\nmissing = field\nend\nend\nif (missing) then\nerror(\"o"
	.ascii	"ption needs a \" .. missing, 3)\nend\npremake.option.list[op"
	.ascii	"t.trigger] = opt\nend\nfunction premake.option.get(name)\nre"
	.ascii	"turn premake.option.list[name]\nend\nfunction premake.option"
	.ascii	".each()\nlocal keys = { }\nfor _, option in pairs(premake.op"
	.ascii	"tion.list) do\ntable.insert(keys, option.trigger)\nend\ntabl"
	.ascii	"e.sort(keys)\nlocal i = 0\nreturn function()\ni = i + 1\nret"
	.ascii	"urn premake.option.list[keys[i]]\nend\nend\nfunction premake"
	.ascii	".option.validate(values)\nfor key, value in pairs(values) do"
	.ascii	"\nlocal opt = premake.option.get(key)\nif (not opt) then\nre"
	.ascii	"turn false, \"invalid option '\" .. key .. \"'\"\nend\nif (o"
	.ascii	"pt.value and value == \"\") then\nreturn false, \"no value s"
	.ascii	"pecified for option '\" .. key .. \"'\"\nend\n"
	.string	"if opt.allowed then\nlocal found = false\nfor _, match in ipairs(opt.allowed) do\nif match[1] == value then\nfound = true\nbreak\nend\nend\nif not found then\nreturn false, string.format(\"invalid value '%s' for option '%s'\", value, key)\nend\nend\nend\nreturn true\nend\n"
	.align 8
.LC8:
	.ascii	"premake.tree = { }\nlocal tree = premake.tree\nfunction prem"
	.ascii	"ake.tree.new(n)\nlocal t = {\nname = n,\nchildren = { }\n}\n"
	.ascii	"return t\nend\nfunction premake.tree.add(tr, p, onaddfunc)\n"
	.ascii	"if p == \".\" then\nreturn tr\nend\nif p == \"/\" then\nretu"
	.ascii	"rn tr\nend\nlocal parentnode = tree.add(tr, path.getdirector"
	.ascii	"y(p), onaddfunc)\nlocal childname = path.getname(p)\nif chil"
	.ascii	"dname == \"..\" then\nreturn parentnode\nend\nlocal childnod"
	.ascii	"e = parentnode.children[childname]\nif not childnode or chil"
	.ascii	"dnode.path ~= p then\nchildnode = tree.insert(parentnode, tr"
	.ascii	"ee.new(childname))\nchildnode.path = p\nif onaddfunc then\no"
	.ascii	"naddfunc(childnode)\nend\nend\nreturn childnode\nend\nfuncti"
	.ascii	"on premake.tree.insert(parent, child)\ntable.insert(parent.c"
	.ascii	"hildren, child)\nif child.name then\nparent.children[child.n"
	.ascii	"ame] = child\nend\nchild.parent = parent\nreturn child\nend\n"
	.ascii	"function premake.tree.getlocalpath(node)\nif node.parent.pat"
	.ascii	"h then\nreturn node.name\nelseif node.cfg then\nreturn node."
	.ascii	"cfg.name\nelse\nreturn node.path\nend\nend\nfunction premake"
	.ascii	".tree.remove(node)\nlocal children = node.parent.children\nf"
	.ascii	"or i = 1, #children do\nif children[i] == node then\ntable.r"
	.ascii	"emove(children, i)\nend\nend\nnode.children = {}\nend\nfunct"
	.ascii	"ion premake.tree.sort(tr)\ntree.traverse(tr, {\nonnode = fun"
	.ascii	"ction(node)\ntable.sort(node.children, function(a,b)\nreturn"
	.ascii	" a.name < b.name\nend)\nend\n}, true)\nend\nfunction premake"
	.ascii	".tree.traverse(t, fn, includeroot, initialdepth)\nlocal dono"
	.ascii	"de, dochildren\ndonode = function(node, fn, depth)\nif node."
	.ascii	"isremoved then\nreturn\nend\nif fn.onnode then\nfn.onnode(no"
	.ascii	"de, depth)\nend\nif #node.children > 0 then\nif fn.onbranche"
	.ascii	"nter then\nfn.onbranchenter(node, depth)\nend\nif fn.onbranc"
	.ascii	"h then\nfn.onbranch(node, depth)\nend\ndochildren(node, fn, "
	.ascii	"depth + 1)\nif fn.onbranchexit then\nfn.onbranchexit(node, d"
	.ascii	"epth)\nend\nelse\nif fn.onleaf then\nfn.onleaf(node, depth)\n"
	.ascii	"end\nend\nend\ndochildren = function(parent, fn, depth)\nloc"
	.ascii	"al i = 1\nwhile i <= #parent.children do\nlocal node = paren"
	.ascii	"t.children[i]\ndonode(node, fn, depth)\nif node == parent.ch"
	.ascii	"ildren[i] then\ni = i + 1\nend\nend\nend\nif not initialdept"
	.ascii	"h then"
	.string	"\ninitialdepth = 0\nend\nif includeroot then\ndonode(t, fn, initialdepth)\nelse\ndochildren(t, fn, initialdepth)\nend\nend\n"
	.align 8
.LC9:
	.ascii	"premake.solution = { }\npremake.solution.list = { }\nfunctio"
	.ascii	"n premake.solution.new(name)\nlocal sln = { }\ntable.insert("
	.ascii	"premake.solution.list, sln)\npremake.solution.list[name] = s"
	.ascii	"ln\nsetmetatable(sln, { __type=\"solution\" })\nsln.name    "
	.ascii	"       = name\nsln.basedir        = os.getcwd()\nsln.project"
	.ascii	"s       = { }\nsln.blocks         = { }\nsln.configurations "
	.ascii	"= { }\nsln.groups         = { }\nsln.importedprojects = { }\n"
	.ascii	"return sln\nend\nfunction premake.solution.each()\nlocal i ="
	.ascii	" 0\nreturn function ()\ni = i + 1\nif i <= #premake.solution"
	.ascii	".list then\nreturn premake.solution.list[i]\nend\nend\nend\n"
	.ascii	"function premake.solution.eachproject(sln)\nlocal i = 0\nret"
	.ascii	"urn function ()\ni = i + 1\nif (i <= #sln.projects) then\nre"
	.ascii	"turn premake.solution.getproject(sln, i)\nend\nend\nend\nfun"
	.ascii	"ction premake.solution.eachgroup(sln)\nlocal i = 0\nreturn f"
	.ascii	"unction()\ni = i + 1\nif(i <= #sln.groups) then\nreturn prem"
	.ascii	"ake.solution.getgroup(sln, i)\nend\nend\nend\nfunction prema"
	.ascii	"ke.solution.get(key)\nreturn premake.s"
	.string	"olution.list[key]\nend\nfunction premake.solution.getproject(sln, idx)\nlocal prj = sln.projects[idx]\nlocal cfg = premake.getconfig(prj)\ncfg.name = prj.name\nreturn cfg\nend\nfunction premake.solution.getgroup(sln, idx)\nlocal grp = sln.groups[idx]\nreturn grp\nend"
	.align 8
.LC10:
	.ascii	"premake.project = { }\nfunction premake.project.buildsourcet"
	.ascii	"ree(prj, allfiles)\nlocal tr = premake.tree.new(prj.name)\nt"
	.ascii	"r.project = prj\nlocal isvpath\nlocal function onadd(node)\n"
	.ascii	"node.isvpath = isvpath\nend\nfor fcfg in premake.project.eac"
	.ascii	"hfile(prj, allfiles) do\nisvpath = (fcfg.name ~= fcfg.vpath)"
	.ascii	"\nlocal node = premake.tree.add(tr, fcfg.vpath, onadd)\nnode"
	.ascii	".cfg = fcfg\nend\npremake.tree.sort(tr)\nreturn tr\nend\nfun"
	.ascii	"ction premake.eachconfig(prj, platform)\nif prj.project then"
	.ascii	" prj = prj.project end\nlocal cfgs = prj.solution.configurat"
	.ascii	"ions\nlocal i = 0\nreturn function ()\ni = i + 1\nif i <= #c"
	.ascii	"fgs then\nreturn premake.getconfig(prj, cfgs[i], platform)\n"
	.ascii	"end\nend\nend\nfunction premake.project.eachfile(prj, allfil"
	.ascii	"es)\nif not prj.project then prj = premake.getconfig(prj) en"
	.ascii	"d\nlocal i = 0\nlocal t = iif(allfiles, prj.allfiles, prj.fi"
	.ascii	"les)\nlocal c = iif(allfiles, prj.__allfileconfigs, prj.__fi"
	.ascii	"leconfigs)\nreturn function ()\ni = i + 1\nif (i <= #t) then"
	.ascii	"\nlocal fcfg = c[t[i]]\nfcfg.vpath = premake.project.getvpat"
	.ascii	"h(prj, fcfg.name)\nreturn fcfg\nend\nend\nend\nfunction prem"
	.ascii	"ake.esc(value)\nif (type(value) == \"table\") then\nlocal re"
	.ascii	"sult = { }\nfor _,v in ipairs(value) do\ntable.insert(result"
	.ascii	", premake.esc(v))\nend\nreturn result\nelse\nvalue = value:g"
	.ascii	"sub('&',  \"&amp;\")\nvalue = value:gsub('\"',  \"&quot;\")\n"
	.ascii	"value = value:gsub(\"'\",  \"&apos;\")\nvalue = value:gsub('"
	.ascii	"<',  \"&lt;\")\nvalue = value:gsub('>',  \"&gt;\")\nvalue = "
	.ascii	"value:gsub('\\r', \"&#x0D;\")\nvalue = value:gsub('\\n', \"&"
	.ascii	"#x0A;\")\nreturn value\nend\nend\nfunction premake.filterpla"
	.ascii	"tforms(sln, map, default)\nlocal result = { }\nlocal keys = "
	.ascii	"{ }\nif sln.platforms then\nfor _, p in ipairs(sln.platforms"
	.ascii	") do\nif map[p] and not table.contains(keys, map[p]) then\nt"
	.ascii	"able.insert(result, p)\ntable.insert(keys, map[p])\nend\nend"
	.ascii	"\nend\nif #result == 0 and default then\ntable.insert(result"
	.ascii	", default)\nend\nreturn result\nend\nfunction premake.findpr"
	.ascii	"oject(name)\nfor sln in premake.solution.each() do\nfor prj "
	.ascii	"in premake.solution.eachproject(sln) do\nif (prj.name == nam"
	.ascii	"e) then\nreturn  prj\nend\nend\nend\nend\nfunction premake.f"
	.ascii	"indf"
	.ascii	"ile(prj, extension)\nfor _, fname in ipairs(prj.files) do\ni"
	.ascii	"f fname:endswith(extension) then return fname end\nend\nend\n"
	.ascii	"function premake.getconfig(prj, cfgname, pltname)\nprj = prj"
	.ascii	".project or prj\nif pltname == \"Native\" or not table.conta"
	.ascii	"ins(prj.solution.platforms or {}, pltname) then\npltname = n"
	.ascii	"il\nend\nlocal key = (cfgname or \"\")\nif pltname then key "
	.ascii	"= key .. pltname end\nreturn prj.__configs[key]\nend\nfuncti"
	.ascii	"on premake.getconfigname(cfgname, platform, useshortname)\ni"
	.ascii	"f cfgname then\nlocal name = cfgname\nif platform and platfo"
	.ascii	"rm ~= \"Native\" then\nif useshortname then\nname = name .. "
	.ascii	"premake.platforms[platform].cfgsuffix\nelse\nname = name .. "
	.ascii	"\"|\" .. platform\nend\nend\nreturn iif(useshortname, name:l"
	.ascii	"ower(), name)\nend\nend\nfunction premake.getdependencies(pr"
	.ascii	"j)\nprj = prj.project or prj\nlocal results = { }\nfor _, cf"
	.ascii	"g in pairs(prj.__configs) do\nfor _, link in ipairs(cfg.link"
	.ascii	"s) do\nlocal dep = premake.findproject(link)\nif dep and not"
	.ascii	" table.contains(results, dep) then\ntable.insert(results, de"
	.ascii	"p)\nend\nend\nend\nreturn results\nend\nfunction premake.pro"
	.ascii	"ject.getbasename(prjname, pattern)\nreturn pattern:gsub(\"%%"
	.ascii	"%%\", prjname)\nend\nfunction premake.project.getfilename(pr"
	.ascii	"j, pattern)\nlocal fname = premake.project.getbasename(prj.n"
	.ascii	"ame, pattern)\nfname = path.join(prj.location, fname)\nretur"
	.ascii	"n path.getrelative(os.getcwd(), fname)\nend\n function prema"
	.ascii	"ke.getlinks(cfg, kind, part)\nlocal result = iif (part == \""
	.ascii	"directory\" and kind == \"all\", cfg.libdirs, {})\nlocal cfg"
	.ascii	"name = iif(cfg.name == cfg.project.name, \"\", cfg.name)\nlo"
	.ascii	"cal pathstyle = premake.getpathstyle(cfg)\nlocal namestyle ="
	.ascii	" premake.getnamestyle(cfg)\nlocal function canlink(source, t"
	.ascii	"arget)\nif (target.kind ~= \"SharedLib\" and target.kind ~= "
	.ascii	"\"StaticLib\") then\nreturn false\nend\nif premake.iscppproj"
	.ascii	"ect(source) then\nreturn premake.iscppproject(target)\nelsei"
	.ascii	"f premake.isdotnetproject(source) then\nreturn premake.isdot"
	.ascii	"netproject(target)\nelseif premake.isswiftproject(source) th"
	.ascii	"en\nreturn premake.isswiftproject(source) or premake.iscpppr"
	.ascii	"oject(source)\nend\nend\nfor _, link in ipai"
	.ascii	"rs(cfg.links) do\nlocal item\nlocal prj = premake.findprojec"
	.ascii	"t(link)\nif prj and kind ~= \"system\" then\nlocal prjcfg = "
	.ascii	"premake.getconfig(prj, cfgname, cfg.platform)\nif kind == \""
	.ascii	"dependencies\" or canlink(cfg, prjcfg) then\nif (part == \"d"
	.ascii	"irectory\") then\nitem = path.rebase(prjcfg.linktarget.direc"
	.ascii	"tory, prjcfg.location, cfg.location)\nelseif (part == \"base"
	.ascii	"name\") then\nitem = prjcfg.linktarget.basename\nelseif (par"
	.ascii	"t == \"fullpath\") then\nitem = path.rebase(prjcfg.linktarge"
	.ascii	"t.fullpath, prjcfg.location, cfg.location)\nelseif (part == "
	.ascii	"\"object\") then\nitem = prjcfg\nend\nend\nelseif not prj an"
	.ascii	"d (kind == \"system\" or kind == \"all\") then\nif (part == "
	.ascii	"\"directory\") then\nitem = path.getdirectory(link)\nelseif "
	.ascii	"(part == \"fullpath\") then\nitem = link\nif namestyle == \""
	.ascii	"windows\" then\nif premake.iscppproject(cfg) then\nitem = it"
	.ascii	"em .. \".lib\"\nelseif premake.isdotnetproject(cfg) then\nit"
	.ascii	"em = item .. \".dll\"\nend\nend\nelseif part == \"name\" the"
	.ascii	"n\nitem = path.getname(link)\nelseif part == \"basename\" th"
	.ascii	"en\nitem = path.getbasename(link)\nelse\nitem = link\nend\ni"
	.ascii	"f item:find(\"/\", nil, true) then\nitem = path.getrelative("
	.ascii	"cfg.project.location, item)\nend\nend\nif item then\nif path"
	.ascii	"style == \"windows\" and part ~= \"object\" then\nitem = pat"
	.ascii	"h.translate(item, \"\\\\\")\nend\nif not table.contains(resu"
	.ascii	"lt, item) then\ntable.insert(result, item)\nend\nend\nend\nr"
	.ascii	"eturn result\nend\nfunction premake.getnamestyle(cfg)\nretur"
	.ascii	"n premake.platforms[cfg.platform].namestyle or premake.getto"
	.ascii	"ol(cfg).namestyle or \"posix\"\nend\nfunction premake.getpat"
	.ascii	"hstyle(cfg)\nif premake.action.current().os == \"windows\" t"
	.ascii	"hen\nreturn \"windows\"\nelse\nreturn \"posix\"\nend\nend\nf"
	.ascii	"unction premake.gettarget(cfg, direction, pathstyle, namesty"
	.ascii	"le, system)\nif system == \"bsd\" then\nsystem = \"linux\"\n"
	.ascii	"end\nlocal kind = cfg.kind\nif premake.iscppproject(cfg) the"
	.ascii	"n\nif (namestyle == \"windows\" or system == \"windows\")\na"
	.ascii	"nd kind == \"SharedLib\" and direction == \"link\"\nand not "
	.ascii	"cfg.flags.NoImportLib\nthen\nkind = \"StaticLib\"\nend\nif n"
	.ascii	"amestyle == \"posix\" and system == \"windows\" and kind ~= "
	.ascii	"\"StaticLib\" then\nnamestyle = \"windows\""
	.ascii	"\nend\nend\nlocal field   = \"build\"\nif direction == \"lin"
	.ascii	"k\" and cfg.kind == \"SharedLib\" then\nfield = \"implib\"\n"
	.ascii	"end\nlocal name    = cfg[field..\"name\"] or cfg.targetname "
	.ascii	"or cfg.project.name\nlocal dir     = cfg[field..\"dir\"] or "
	.ascii	"cfg.targetdir or path.getrelative(cfg.location, cfg.basedir)"
	.ascii	"\nlocal subdir  = cfg[field..\"subdir\"] or cfg.targetsubdir"
	.ascii	" or \".\"\nlocal prefix  = \"\"\nlocal suffix  = \"\"\nlocal"
	.ascii	" ext     = \"\"\nlocal bundlepath, bundlename\ndir = path.jo"
	.ascii	"in(dir, subdir)\nif namestyle == \"windows\" then\nif kind ="
	.ascii	"= \"ConsoleApp\" or kind == \"WindowedApp\" then\next = \".e"
	.ascii	"xe\"\nelseif kind == \"SharedLib\" then\next = \".dll\"\nels"
	.ascii	"eif kind == \"StaticLib\" then\next = \".lib\"\nend\nelseif "
	.ascii	"namestyle == \"posix\" then\nif kind == \"WindowedApp\" and "
	.ascii	"system == \"macosx\" and not cfg.options.SkipBundling then\n"
	.ascii	"bundlename = name .. \".app\"\nbundlepath = path.join(dir, b"
	.ascii	"undlename)\ndir = path.join(bundlepath, \"Contents/MacOS\")\n"
	.ascii	"elseif (kind == \"ConsoleApp\" or kind == \"WindowedApp\") a"
	.ascii	"nd system == \"os2\" then\next = \".exe\"\nelseif kind == \""
	.ascii	"SharedLib\" then\nprefix = \"lib\"\next = iif(system == \"ma"
	.ascii	"cosx\", \".dylib\", \".so\")\nelseif kind == \"StaticLib\" t"
	.ascii	"hen\nprefix = \"lib\"\next = \".a\"\nend\nelseif namestyle ="
	.ascii	"= \"PS3\" then\nif kind == \"ConsoleApp\" or kind == \"Windo"
	.ascii	"wedApp\" then\next = \".elf\"\nelseif kind == \"StaticLib\" "
	.ascii	"then\nprefix = \"lib\"\next = \".a\"\nend\nelseif namestyle "
	.ascii	"== \"Orbis\" then\nif kind == \"ConsoleApp\" or kind == \"Wi"
	.ascii	"ndowedApp\" then\next = \".elf\"\nelseif kind == \"StaticLib"
	.ascii	"\" then\nprefix = \"lib\"\next = \".a\"\nelseif kind == \"Sh"
	.ascii	"aredLib\" then\next = \".prx\"\nend\nelseif namestyle == \"T"
	.ascii	"egraAndroid\" then\nif kind == \"ConsoleApp\" or kind == \"W"
	.ascii	"indowedApp\" or kind == \"SharedLib\" then\nprefix = \"lib\""
	.ascii	"\next = \".so\"\nelseif kind == \"StaticLib\" then\nprefix ="
	.ascii	" \"lib\"\next = \".a\"\nend\nelseif namestyle == \"NX\" then"
	.ascii	"\nif kind == \"ConsoleApp\" or kind == \"WindowedApp\" then\n"
	.ascii	"ext = \".nspd_root\"\nelseif kind == \"StaticLib\" then\next"
	.ascii	" = \".a\"\nelseif kind == \"SharedLib\" then\next = \".nro\""
	.ascii	"\nend\nelseif namestyle == \"Emscripten\" then\nif kind == \""
	.ascii	"ConsoleApp\" or kind == \"WindowedApp\" then\next = "
	.ascii	"\".html\"\nelseif kind == \"StaticLib\" then\next = \".bc\"\n"
	.ascii	"elseif kind == \"SharedLib\" then\next = \".js\"\nend\nend\n"
	.ascii	"prefix = cfg[field..\"prefix\"] or cfg.targetprefix or prefi"
	.ascii	"x\nsuffix = cfg[field..\"suffix\"] or cfg.targetsuffix or su"
	.ascii	"ffix\next    = cfg[field..\"extension\"] or cfg.targetextens"
	.ascii	"ion or ext\nlocal result = { }\nresult.basename     = name ."
	.ascii	". suffix\nresult.name         = prefix .. name .. suffix .. "
	.ascii	"ext\nresult.directory    = dir\nresult.subdirectory = subdir"
	.ascii	"\nresult.prefix       = prefix\nresult.suffix       = suffix"
	.ascii	"\nresult.fullpath     = path.join(result.directory, result.n"
	.ascii	"ame)\nresult.bundlepath   = bundlepath or result.fullpath\ni"
	.ascii	"f pathstyle == \"windows\" then\nresult.directory    = path."
	.ascii	"translate(result.directory, \"\\\\\")\nresult.subdirectory ="
	.ascii	" path.translate(result.subdirectory, \"\\\\\")\nresult.fullp"
	.ascii	"ath     = path.translate(result.fullpath,  \"\\\\\")\nend\nr"
	.ascii	"eturn result\nend\nfunction premake.gettool(cfg)\nif premake"
	.ascii	".iscppproject(cfg) then\nif _OPTIONS.cc then\nreturn premake"
	.ascii	"[_OPTIONS.cc]\nend\nlocal action = premake.action.current()\n"
	.ascii	"if action.valid_tools then\nreturn premake[action.valid_tool"
	.ascii	"s.cc[1]]\nend\nreturn premake.gcc\nelseif premake.isdotnetpr"
	.ascii	"oject(cfg) then\nreturn premake.dotnet\nelseif premake.isswi"
	.ascii	"ftproject(cfg) then\nreturn premake.swift\nelse\nreturn prem"
	.ascii	"ake.valac\nend\nend\nfunction premake.project.getvpath(prj, "
	.ascii	"abspath)\nlocal vpath = abspath\nlocal fname = path.getname("
	.ascii	"abspath)\nlocal max = abspath:len() - fname:len()\n        \n"
	.ascii	"        -- First check for an exact match from the inverse v"
	.ascii	"paths\n        if prj.inversevpaths and prj.inversevpaths[ab"
	.ascii	"spath] then\n            return path.join(prj.inversevpaths["
	.ascii	"abspath], fname)\n        end\n        local matches = {}\nf"
	.ascii	"or replacement, patterns in pairs(prj.vpaths or {}) do\nfor "
	.ascii	"_, pattern in ipairs(patterns) do\nlocal i = abspath:find(pa"
	.ascii	"th.wildcards(pattern))\nif i == 1 then\ni = pattern:find(\"*"
	.ascii	"\", 1, true) or (pattern:len() + 1)\nlocal leaf\nif i < max "
	.ascii	"then\nleaf = abspath:sub(i)\nelse\nleaf = fname\nend\nif lea"
	.ascii	"f:startswith(\"/\") then\nleaf = leaf:sub(2)\nend\nlocal st"
	.ascii	"em = \"\"\nif replacement:len() > 0 then\nstem, stars = repl"
	.ascii	"acement:gsub(\"%*\", \"\")\nif stars == 0 then\nleaf = path."
	.ascii	"getname(leaf)\nend\nelse\nleaf = path.getname(leaf)\nend\nta"
	.ascii	"ble.insert(matches, path.join(stem, leaf))\nend\nend\nend\n "
	.ascii	"       \n        if #matches > 0 then\n            -- for th"
	.ascii	"e sake of determinism, return the first alphabetically\n    "
	.ascii	"        table.sort(matches)\n            vpath = matches[1]\n"
	.ascii	"        end\nreturn path.trimdots(vpath)\nend\nfunction prem"
	.ascii	"ake.hascppproject(sln)\nfor prj in premake.solution.eachproj"
	.ascii	"ect(sln) do\nif premake.iscppproject(prj) then\nreturn true\n"
	.ascii	"end\nend\nend\nfunction premake.hasdotnetproject(sln)\nfor p"
	.ascii	"rj in premake.solution.eachproject(sln) do\nif premake.isdot"
	.ascii	"netproject(prj) then\nreturn true\nend\nend\nend\nfunction p"
	.ascii	"remake.project.iscproject(prj)\nreturn prj.language == \"C\""
	.ascii	"\nend\nfunction premake.iscppproject(prj)\nreturn (prj.langu"
	.ascii	"age"
	.string	" == \"C\" or prj.language == \"C++\")\nend\nfunction premake.isdotnetproject(prj)\nreturn (prj.language == \"C#\")\nend\nfunction premake.isvalaproject(prj)\nreturn (prj.language == \"Vala\")\nend\nfunction premake.isswiftproject(prj)\nreturn (prj.language == \"Swift\")\nend\n"
	.align 8
.LC11:
	.ascii	"premake.config = { }\nlocal config = premake.config\nfunctio"
	.ascii	"n premake.config.isdebugbuild(cfg)\nif cfg.flags.DebugRuntim"
	.ascii	"e then\nreturn true\nend\nif cfg.flags.ReleaseRuntime then\n"
	.ascii	"return false\nend\nif cfg.flags.Optimize or cfg.flags.Optimi"
	.ascii	"zeSize or cfg.flags.OptimizeSpeed then\nreturn false\nend\ni"
	.ascii	"f not cfg.flags.Symbols then\nreturn false\nend\nreturn true"
	.ascii	"\nend\nfunction premake.config.eachfile(cfg)\nlocal i = 0\nl"
	.ascii	"ocal t = cfg.files\nreturn function ()\ni = i + 1\nif (i <= "
	.ascii	"#t) then\nlocal fcfg = cfg.__fileconfigs[t[i]]\nfcfg.vpath ="
	.ascii	" premake.project.getvpath(cfg.project, fcfg.name)\nreturn fc"
	.ascii	"fg\nend\nend\nend\nfunction premake.config.isincrementallink"
	.ascii	"(cfg)\nif cfg.kind == \"StaticLib\" then\nreturn false\nend\n"
	.ascii	"return not config.islinkeroptimizedbuild(cfg.flags) and not "
	.ascii	"cfg.flags.NoIncrementalLink\nend\nfunction premake.config.is"
	.ascii	"optimizedbuild(flags)\nreturn flags.Optimize or flags.Optimi"
	.ascii	"zeSize or flags.OptimizeSpeed\nend\nfunction premake.config."
	.ascii	"islinkeroptimizedbuild(flags)\nreturn config.isoptimizedbuil"
	.ascii	"d(flags) and not flags.NoOptimizeL"
	.string	"ink\nend\nfunction premake.config.iseditandcontinue(cfg)\nif cfg.flags.NoEditAndContinue\nor cfg.flags.Managed\nor (cfg.kind ~= \"StaticLib\" and not config.isincrementallink(cfg))\nor config.islinkeroptimizedbuild(cfg.flags) then\nreturn false\nend\nreturn true\nend\n"
	.align 8
.LC12:
	.ascii	"premake.bake = { }\nlocal bake = premake.bake\nlocal nocopy "
	.ascii	"=\n{\nblocks    = true,\nkeywords  = true,\nprojects  = true"
	.ascii	",\n__configs = true,\n}\nlocal nocascade =\n{\nmakesettings "
	.ascii	"= true,\n}\nlocal keeprelative =\n{\nbasedir  = true,\nlocat"
	.ascii	"ion = true,\n}\nfunction premake.getactiveterms(obj)\nlocal "
	.ascii	"terms = { _action = _ACTION:lower(), os = os.get() }\nfor ke"
	.ascii	"y, value in pairs(_OPTIONS) do\nif value ~= \"\" then\ntable"
	.ascii	".insert(terms, value:lower())\nelse\ntable.insert(terms, key"
	.ascii	":lower())\nend\nend\nreturn terms\nend\nfunction premake.isk"
	.ascii	"eywordmatch(keyword, terms)\nif keyword:startswith(\"not \")"
	.ascii	" then\nreturn not premake.iskeywordmatch(keyword:sub(5), ter"
	.ascii	"ms)\nend\nfor _, pattern in ipairs(keyword:explode(\" or \")"
	.ascii	") do\nfor termkey, term in pairs(terms) do\nif term:match(pa"
	.ascii	"ttern) == term then\nreturn termkey\nend\nend\nend\nend\nfun"
	.ascii	"ction premake.iskeywordsmatch(keywords, terms)\nlocal hasreq"
	.ascii	"uired = false\nfor _, keyword in ipairs(keywords) do\nlocal "
	.ascii	"matched = premake.iskeywordmatch(keyword, terms)\nif not mat"
	.ascii	"ched then\nreturn false\nend\nif matched == \"required\" the"
	.ascii	"n\nhasrequired = true\nend\nend\nif terms.required and not h"
	.ascii	"asrequired then\nreturn false\nelse\nreturn true\nend\nend\n"
	.ascii	"local function adjustpaths(location, obj)\nfunction adjustpa"
	.ascii	"thlist(list)\nfor i, p in ipairs(list) do\nlist[i] = path.ge"
	.ascii	"trelative(location, p)\nend\nend\nif obj.allfiles ~= nil the"
	.ascii	"n\nadjustpathlist(obj.allfiles)\nend\nfor name, value in pai"
	.ascii	"rs(obj) do\nlocal field = premake.fields[name]\nif field and"
	.ascii	" value and not keeprelative[name] then\nif field.kind == \"p"
	.ascii	"ath\" then\nobj[name] = path.getrelative(location, value)\ne"
	.ascii	"lseif field.kind == \"dirlist\" or field.kind == \"filelist\""
	.ascii	" then\nadjustpathlist(value)\nelseif field.kind == \"keypath"
	.ascii	"\" then\nfor k,v in pairs(value) do\nadjustpathlist(v)\nend\n"
	.ascii	"end\nend\nend\nend\nlocal function removevalue(tbl, remove)\n"
	.ascii	"for index, item in ipairs(tbl) do\nif item == remove then\nt"
	.ascii	"able.remove(tbl, index)\nbreak\nend\nend\nend\nlocal functio"
	.ascii	"n removevalues(tbl, removes)\nfor k, v in pairs(tbl) do\nfor"
	.ascii	" _, pattern in ipairs(removes) do\nif pattern == tbl[k] then"
	.ascii	"\nif ty"
	.ascii	"pe(k) == \"number\" then\ntable.remove(tbl, k)\nelse\ntbl[k]"
	.ascii	" = nil\nend\nbreak\nend\nend\nend\nend\nlocal function merge"
	.ascii	"field(kind, dest, src, mergecopiestotail)\nlocal tbl = dest "
	.ascii	"or { }\nif kind == \"keyvalue\" or kind == \"keypath\" then\n"
	.ascii	"for key, value in pairs(src) do\ntbl[key] = mergefield(\"lis"
	.ascii	"t\", tbl[key], value, mergecopiestotail)\nend\nelse\nfor _, "
	.ascii	"item in ipairs(src) do\nif tbl[item] then\nif mergecopiestot"
	.ascii	"ail then\nremovevalue(tbl, item)\ntable.insert(tbl, item)\nt"
	.ascii	"bl[item] = item\nend\nelse\ntable.insert(tbl, item)\ntbl[ite"
	.ascii	"m] = item\nend\nend\nend\nreturn tbl\nend\nlocal function me"
	.ascii	"rgeobject(dest, src)\nif not src then\nreturn\nend\nfor fiel"
	.ascii	"dname, value in pairs(src) do\nif not nocopy[fieldname] then"
	.ascii	"\nlocal field = premake.fields[fieldname]\nif field then\nif"
	.ascii	" type(value) == \"table\" then\ndest[fieldname] = mergefield"
	.ascii	"(field.kind, dest[fieldname], value, field.mergecopiestotail"
	.ascii	")\nif src.removes then\nremoves = src.removes[fieldname]\nif"
	.ascii	" removes then\nremovevalues(dest[fieldname], removes)\nend\n"
	.ascii	"end\nelse\ndest[fieldname] = value\nend\nelse\ndest[fieldnam"
	.ascii	"e] = value\nend\nend\nend\nend\nlocal function merge(dest, o"
	.ascii	"bj, basis, terms, cfgname, pltname)\nlocal key = cfgname or "
	.ascii	"\"\"\npltname = pltname or \"Native\"\nif pltname ~= \"Nativ"
	.ascii	"e\" then\nkey = key .. pltname\nend\nterms.config = (cfgname"
	.ascii	" or \"\"):lower()\nterms.platform = pltname:lower()\nlocal c"
	.ascii	"fg = {}\nmergeobject(cfg, basis[key])\nadjustpaths(obj.locat"
	.ascii	"ion, cfg)\nmergeobject(cfg, obj)\nif (cfg.kind) then\nterms["
	.ascii	"'kind']=cfg.kind:lower()\nend\nfor _, blk in ipairs(obj.bloc"
	.ascii	"ks) do\nif (premake.iskeywordsmatch(blk.keywords, terms))the"
	.ascii	"n\nmergeobject(cfg, blk)\nif (cfg.kind and not cfg.terms.kin"
	.ascii	"d) then\ncfg.terms['kind'] = cfg.kind:lower()\nterms['kind']"
	.ascii	" = cfg.kind:lower()\nend\nend\nend\ncfg.name      = cfgname\n"
	.ascii	"cfg.platform  = pltname\nfor k,v in pairs(terms) do\ncfg.ter"
	.ascii	"ms[k] =v\nend\ndest[key] = cfg\nend\nlocal function collapse"
	.ascii	"(obj, basis)\nlocal result = {}\nbasis = basis or {}\nlocal "
	.ascii	"sln = obj.solution or obj\nlocal terms = premake.getactivete"
	.ascii	"rms(obj)\nmerge(result, obj, basis, terms)--this adjusts ter"
	.ascii	"ms\nfor _,"
	.ascii	" cfgname in ipairs(sln.configurations) do\nlocal terms_local"
	.ascii	" = {}\nfor k,v in pairs(terms)do terms_local[k]=v end\nmerge"
	.ascii	"(result, obj, basis, terms_local, cfgname, \"Native\")--term"
	.ascii	"s cam also be adjusted here\nfor _, pltname in ipairs(sln.pl"
	.ascii	"atforms or {}) do\nif pltname ~= \"Native\" then\nmerge(resu"
	.ascii	"lt, obj, basis,terms_local, cfgname, pltname)--terms also he"
	.ascii	"re\nend\nend\nend\nreturn result\nend\nlocal function buildu"
	.ascii	"niquedirs()\nlocal num_variations = 4\nlocal cfg_dirs = {}\n"
	.ascii	"local hit_counts = {}\nfor sln in premake.solution.each() do"
	.ascii	"\nfor _, prj in ipairs(sln.projects) do\nfor _, cfg in pairs"
	.ascii	"(prj.__configs) do\nlocal dirs = { }\ndirs[1] = path.getabso"
	.ascii	"lute(path.join(cfg.location, cfg.objdir or cfg.project.objdi"
	.ascii	"r or \"obj\"))\ndirs[2] = path.join(dirs[1], iif(cfg.platfor"
	.ascii	"m == \"Native\", \"\", cfg.platform))\ndirs[3] = path.join(d"
	.ascii	"irs[2], cfg.name)\ndirs[4] = path.join(dirs[3], cfg.project."
	.ascii	"name)\ncfg_dirs[cfg] = dirs\nlocal start = iif(cfg.name, 2, "
	.ascii	"1)\nfor v = start, num_variations do\nlocal d = dirs[v]\nhit"
	.ascii	"_counts[d] = (hit_counts[d] or 0) + 1\nend\nend\nend\nend\nf"
	.ascii	"or sln in premake.solution.each() do\nfor _, prj in ipairs(s"
	.ascii	"ln.projects) do\nfor _, cfg in pairs(prj.__configs) do\nloca"
	.ascii	"l dir\nlocal start = iif(cfg.name, 2, 1)\nfor v = start, iif"
	.ascii	"(cfg.flags.SingleOutputDir==true,num_variations-1,num_variat"
	.ascii	"ions) do\ndir = cfg_dirs[cfg][v]\nif hit_counts[dir] == 1 th"
	.ascii	"en break end\nend\ncfg.objectsdir = path.getrelative(cfg.loc"
	.ascii	"ation, dir)\nend\nend\nend\nend\nlocal function buildtargets"
	.ascii	"()\nfor sln in premake.solution.each() do\nfor _, prj in ipa"
	.ascii	"irs(sln.projects) do\nfor _, cfg in pairs(prj.__configs) do\n"
	.ascii	"local pathstyle = premake.getpathstyle(cfg)\nlocal namestyle"
	.ascii	" = premake.getnamestyle(cfg)\ncfg.buildtarget = premake.gett"
	.ascii	"arget(cfg, \"build\", pathstyle, namestyle, cfg.system)\ncfg"
	.ascii	".linktarget  = premake.gettarget(cfg, \"link\",  pathstyle, "
	.ascii	"namestyle, cfg.system)\nif pathstyle == \"windows\" then\ncf"
	.ascii	"g.objectsdir = path.translate(cfg.objectsdir, \"\\\\\")\nend"
	.ascii	"\nend\nend\nend\nend\n  local function getCfgKind(cfg)\n  if"
	.ascii	"(cfg.kind) then\n  return cfg.kind;\n  end\n "
	.ascii	" if(cfg.project.__configs[\"\"] and cfg.project.__configs[\""
	.ascii	"\"].kind) then\n  return cfg.project.__configs[\"\"].kind;\n"
	.ascii	"  end\n  return nil\n  end\n  local function getprojrec(dstA"
	.ascii	"rray, foundList, cfg, cfgname, searchField, bLinkage)\n  if("
	.ascii	"not cfg) then return end\n  local foundUsePrjs = {};\n  for "
	.ascii	"_, useName in ipairs(cfg[searchField]) do\n  local testName "
	.ascii	"= useName:lower();\n  if((not foundList[testName])) then\n  "
	.ascii	"local theProj = nil;\n  local theUseProj = nil;\n  for _, pr"
	.ascii	"j in ipairs(cfg.project.solution.projects) do\n  if (prj.nam"
	.ascii	"e:lower() == testName) then\n  if(prj.usage) then\n  theUseP"
	.ascii	"roj = prj;\n  else\n  theProj = prj;\n  end\n  end\n  end\n "
	.ascii	" --Must connect to a usage project.\n  if(theUseProj) then\n"
	.ascii	"  foundList[testName] = true;\n  local prjEntry = {\n  name "
	.ascii	"= testName,\n  proj = theProj,\n  usageProj = theUseProj,\n "
	.ascii	" bLinkageOnly = bLinkage,\n  };\n  dstArray[testName] = prjE"
	.ascii	"ntry;\n  table.insert(foundUsePrjs, theUseProj);\n  end\n  e"
	.ascii	"nd\n  end\n  for _, usePrj in ipairs(foundUsePrjs) do\n  --L"
	.ascii	"inks can only recurse through static libraries.\n  if((searc"
	.ascii	"hField ~= \"links\") or\n  (getCfgKind(usePrj.__configs[cfgn"
	.ascii	"ame]) == \"StaticLib\")) then\n  getprojrec(dstArray, foundL"
	.ascii	"ist, usePrj.__configs[cfgname],\n  cfgname, searchField, bLi"
	.ascii	"nkage);\n  end\n  end\n  end\n  --\n  -- This function will "
	.ascii	"recursively get all projects that the given configuration ha"
	.ascii	"s in its \"uses\"\n  -- field. The return values are a list "
	.ascii	"of tables. Each table in that list contains the following:\n"
	.ascii	"  --name = The lowercase name of the project.\n  --proj = Th"
	.ascii	"e project. Can be nil if it is usage-only.\n  --usageProj = "
	.ascii	"The usage project. Can't be nil, as using a project that has"
	.ascii	" no\n  -- usage project is not put into the list.\n  --bLink"
	.ascii	"ageOnly = If this is true, then only the linkage information"
	.ascii	" should be copied.\n  -- The recursion will only look at the"
	.ascii	" \"uses\" field on *usage* projects.\n  -- This function wil"
	.ascii	"l also add projects to the list that are mentioned in the \""
	.ascii	"links\"\n  -- field of usage projects. These will only copy "
	.ascii	"linker information, but they wi"
	.ascii	"ll recurse.\n  -- through other \"links\" fields.\n  --\n  l"
	.ascii	"ocal function getprojectsconnections(cfg, cfgname)\n  local "
	.ascii	"dstArray = {};\n  local foundList = {};\n  foundList[cfg.pro"
	.ascii	"ject.name:lower()] = true;\n  --First, follow the uses recur"
	.ascii	"sively.\n  getprojrec(dstArray, foundList, cfg, cfgname, \"u"
	.ascii	"ses\", false);\n  --Next, go through all of the usage projec"
	.ascii	"ts and recursively get their links.\n  --But only if they're"
	.ascii	" not already there. Get the links as linkage-only.\n  local "
	.ascii	"linkArray = {};\n  for prjName, prjEntry in pairs(dstArray) "
	.ascii	"do\n  getprojrec(linkArray, foundList, prjEntry.usageProj.__"
	.ascii	"configs[cfgname], cfgname,\n  \"links\", true);\n  end\n  --"
	.ascii	"Copy from linkArray into dstArray.\n  for prjName, prjEntry "
	.ascii	"in pairs(linkArray) do\n  dstArray[prjName] = prjEntry;\n  e"
	.ascii	"nd\n  return dstArray;\n  end\n  local function isnameofproj"
	.ascii	"(cfg, strName)\n  local sln = cfg.project.solution;\n  local"
	.ascii	" strTest = strName:lower();\n  for prjIx, prj in ipairs(sln."
	.ascii	"projects) do\n  if (prj.name:lower() == strTest) then\n  ret"
	.ascii	"urn true;\n  end\n  end\n  return false;\n  end\n  --\n  -- "
	.ascii	"Copies the field from dstCfg to srcCfg.\n  --\n  local funct"
	.ascii	"ion copydependentfield(srcCfg, dstCfg, strSrcField)\n  local"
	.ascii	" srcField = premake.fields[strSrcField];\n  local strDstFiel"
	.ascii	"d = strSrcField;\n  if type(srcCfg[strSrcField]) == \"table\""
	.ascii	" then\n  --handle paths.\n  if (srcField.kind == \"dirlist\""
	.ascii	" or srcField.kind == \"filelist\") and\n  (not keeprelative["
	.ascii	"strSrcField]) then\n  for i,p in ipairs(srcCfg[strSrcField])"
	.ascii	" do\n  table.insert(dstCfg[strDstField],\n  path.rebase(p, s"
	.ascii	"rcCfg.project.location, dstCfg.project.location))\n  end\n  "
	.ascii	"else\n  if(strSrcField == \"links\") then\n  for i,p in ipai"
	.ascii	"rs(srcCfg[strSrcField]) do\n  if(not isnameofproj(dstCfg, p)"
	.ascii	") then\n  table.insert(dstCfg[strDstField], p)\n  else\n  pr"
	.ascii	"intf(\"Failed to copy '%s' from proj '%s'.\",\n  p, srcCfg.p"
	.ascii	"roject.name);\n  end\n  end\n  else\n  for i,p in ipairs(src"
	.ascii	"Cfg[strSrcField]) do\n  table.insert(dstCfg[strDstField], p)"
	.ascii	"\n  end\n  end\n  end\n  else\n  if(srcField.kind == \"path\""
	.ascii	" and (not keeprelative[strSrcField])) t"
	.ascii	"hen\n  dstCfg[strDstField] = path.rebase(srcCfg[strSrcField]"
	.ascii	",\n  prj.location, dstCfg.project.location);\n  else\n  dstC"
	.ascii	"fg[strDstField] = srcCfg[strSrcField];\n  end\n  end\n  end\n"
	.ascii	"  --\n  -- This function will take the list of project entri"
	.ascii	"es and apply their usage project data\n  -- to the given con"
	.ascii	"figuration. It will copy compiling information for the proje"
	.ascii	"cts that are\n  -- not listed as linkage-only. It will copy "
	.ascii	"the linking information for projects only if\n  -- the sourc"
	.ascii	"e project is not a static library. It won't copy linking inf"
	.ascii	"ormation\n  -- if the project is in this solution; instead i"
	.ascii	"t will add that project to the configuration's\n  -- links f"
	.ascii	"ield, expecting that Premake will handle the rest.\n  --\n  "
	.ascii	"local function copyusagedata(cfg, cfgname, linkToProjs)\n  l"
	.ascii	"ocal myPrj = cfg.project;\n  local bIsStaticLib = (getCfgKin"
	.ascii	"d(cfg) == \"StaticLib\");\n  for prjName, prjEntry in pairs("
	.ascii	"linkToProjs) do\n  local srcPrj = prjEntry.usageProj;\n  loc"
	.ascii	"al srcCfg = srcPrj.__configs[cfgname];\n  for name, field in"
	.ascii	" pairs(premake.fields) do\n  if(srcCfg[name]) then\n  if(fie"
	.ascii	"ld.usagecopy) then\n  if(not prjEntry.bLinkageOnly) then\n  "
	.ascii	"copydependentfield(srcCfg, cfg, name)\n  end\n  elseif(field"
	.ascii	".linkagecopy) then\n  --Copy the linkage data if we're build"
	.ascii	"ing a non-static thing\n  --and this is a pure usage project"
	.ascii	". If it's not pure-usage, then\n  --we will simply put the p"
	.ascii	"roject's name in the links field later.\n  if((not bIsStatic"
	.ascii	"Lib) and (not prjEntry.proj)) then\n  copydependentfield(src"
	.ascii	"Cfg, cfg, name)\n  end\n  end\n  end\n  end\n  if((not bIsSt"
	.ascii	"aticLib) and prjEntry.proj) then\n  table.insert(cfg.links, "
	.ascii	"prjEntry.proj.name);\n  end\n  end\n  end\n    local functio"
	.ascii	"n inverseliteralvpaths()\n        for sln in premake.solutio"
	.ascii	"n.each() do\n            for _,prj in ipairs(sln.projects) d"
	.ascii	"o\n                prj.inversevpaths = {}\n                f"
	.ascii	"or replacement, patterns in pairs(prj.vpaths or {}) do\n    "
	.ascii	"                for _, pattern in ipairs(patterns) do\n     "
	.ascii	"                   if string.find(pattern, \"*\") == nil the"
	.ascii	"n\n          "
	.ascii	"                  prj.inversevpaths[pattern] = replacement\n"
	.ascii	"                        end\n                    end\n      "
	.ascii	"          end\n            end\n        end\n    end\nfuncti"
	.ascii	"on premake.bake.buildconfigs()\nfor sln in premake.solution."
	.ascii	"each() do\nfor _, prj in ipairs(sln.projects) do\nprj.locati"
	.ascii	"on = prj.location or sln.location or prj.basedir\nadjustpath"
	.ascii	"s(prj.location, prj)\nfor _, blk in ipairs(prj.blocks) do\na"
	.ascii	"djustpaths(prj.location, blk)\nend\nend\nsln.location = sln."
	.ascii	"location or sln.basedir\nend\n        -- convert paths for i"
	.ascii	"mported projects to be relative to solution location\nfor sl"
	.ascii	"n in premake.solution.each() do\nfor _, iprj in ipairs(sln.i"
	.ascii	"mportedprojects) do\niprj.location = path.getabsolute(iprj.l"
	.ascii	"ocation)\nend\nend\n        inverseliteralvpaths()\nfor sln "
	.ascii	"in premake.solution.each() do\nlocal basis = collapse(sln)\n"
	.ascii	"for _, prj in ipairs(sln.projects) do\nprj.__configs = colla"
	.ascii	"pse(prj, basis)\nfor _, cfg in pairs(prj.__configs) do\nbake"
	.ascii	".postprocess(prj, cfg)\nend\nend\nend\nfor sln in premake.so"
	.ascii	"lution.each() do\nfor prjIx, prj in ipairs(sln.projects) do\n"
	.ascii	"if(not prj.usage) then\nfor cfgname, cfg in pairs(prj.__conf"
	.ascii	"igs) do\nlocal usesPrjs = getprojectsconnections(cfg, cfgnam"
	.ascii	"e);\ncopyusagedata(cfg, cfgname, usesPrjs)\nend\nend\nend\ne"
	.ascii	"nd\nfor sln in premake.solution.each() do\nfor prjIx, prj in"
	.ascii	" ipairs(sln.projects) do\nfor cfgName, cfg in pairs(prj.__co"
	.ascii	"nfigs) do\ncfg.build = true\nlocal removes = nil\nif cfg.rem"
	.ascii	"oves ~= nil then\nremoves = cfg.removes[\"platforms\"];\nend"
	.ascii	"\nif removes ~= nil  then\nfor _,p in ipairs(removes) do\nif"
	.ascii	" p == cfg.platform then\ncfg.build = false\nend\nend\nend\ne"
	.ascii	"nd\nend\nend\nfor sln in premake.solution.each() do\nlocal r"
	.ascii	"emoveList = {};\nfor index, prj in ipairs(sln.projects) do\n"
	.ascii	"if(prj.usage) then\ntable.insert(removeList, 1, index); --Ad"
	.ascii	"d in reverse order.\nend\nend\nfor _, index in ipairs(remove"
	.ascii	"List) do\ntable.remove(sln.projects, index);\nend\nend\nbuil"
	.ascii	"duniquedirs()\nbuildtargets(cfg)\nend\nfunction premake.bake"
	.ascii	".postprocess(prj, cfg)\ncfg.project   = prj\ncfg.shortname ="
	.ascii	" premake.getconfigname(cfg.name, cfg.pl"
	.ascii	"atform, true)\ncfg.longname  = premake.getconfigname(cfg.nam"
	.ascii	"e, cfg.platform)\ncfg.location = cfg.location or cfg.basedir"
	.ascii	"\nlocal platform = premake.platforms[cfg.platform]\nif platf"
	.ascii	"orm.iscrosscompiler then\ncfg.system = cfg.platform\nelse\nc"
	.ascii	"fg.system = os.get()\nend\nif cfg.kind == \"Bundle\"\nand _A"
	.ascii	"CTION ~= \"gmake\"\nand (_ACTION ~= \"ninja\" and (not prj.o"
	.ascii	"ptions or not prj.options.SkipBundling))\nand not _ACTION:ma"
	.ascii	"tch(\"xcode[0-9]\") then\ncfg.kind = \"SharedLib\"\nend\nif "
	.ascii	"cfg.kind == \"SharedLib\" and platform.nosharedlibs then\ncf"
	.ascii	"g.kind = \"StaticLib\"\nend\nlocal removefiles = cfg.removef"
	.ascii	"iles\nif _ACTION == 'gmake' or _ACTION == 'ninja' then\nremo"
	.ascii	"vefiles = table.join(removefiles, cfg.excludes)\nend\nlocal "
	.ascii	"removefilesDict = {}\nfor _, fname in ipairs(removefiles) do"
	.ascii	"\nremovefilesDict[fname] = true\nend\nlocal files = {}\nfor "
	.ascii	"_, fname in ipairs(cfg.files) do\nif removefilesDict[fname] "
	.ascii	"== nil then\ntable.insert(files, fname)\nend\nend\ncfg.files"
	.ascii	" = files\nlocal allfiles = {}\nlocal allfilesDict = {}\nif c"
	.ascii	"fg.allfiles ~= nil then\nfor _, fname in ipairs(cfg.allfiles"
	.ascii	") do\nif allfilesDict[fname] == nil then\nif removefilesDict"
	.ascii	"[fname] == nil then\nallfilesDict[fname] = true\ntable.inser"
	.ascii	"t(allfiles, fname)\nend\nend\nend\nend\ncfg.allfiles = allfi"
	.ascii	"les\nfor name, field in pairs(premake.fields) do\nif field.i"
	.ascii	"sflags then\nlocal values = cfg[name]\nfor _, flag in ipairs"
	.ascii	"(values) do values[flag] = true end\nend\nend\nlocal cfgfiel"
	.ascii	"ds = {\n{\"__fileconfigs\",    cfg.files},\n{\"__allfileconf"
	.ascii	"igs\", cfg.allfiles},\n}\nfor _, cfgfield in ipairs(cfgfield"
	.ascii	"s) do\nlocal fieldname = cfgfield[1]\nlocal field     = cfgf"
	.ascii	"ield[2]\ncfg[fieldname] = { }\nfor _, fname in ipairs(field)"
	.ascii	" do\nlocal fcfg = {}\nif premake._filelevelconfig then\ncfg."
	.ascii	"terms.r"
	.string	"equired = fname:lower()\nfor _, blk in ipairs(cfg.project.blocks) do\nif (premake.iskeywordsmatch(blk.keywords, cfg.terms)) then\nmergeobject(fcfg, blk)\nend\nend\nend\nfcfg.name = fname\ncfg[fieldname][fname] = fcfg\ntable.insert(cfg[fieldname], fcfg)\nend\nend\nend\n"
	.align 8
.LC13:
	.ascii	"premake.fields = {}\npremake.check_paths = false\nfunction p"
	.ascii	"remake.checkvalue(value, allowed)\nif (allowed) then\nif (ty"
	.ascii	"pe(allowed) == \"function\") then\nreturn allowed(value)\nel"
	.ascii	"se\nfor _,v in ipairs(allowed) do\nif (value:lower() == v:lo"
	.ascii	"wer()) then\nreturn v\nend\nend\nreturn nil, \"invalid value"
	.ascii	" '\" .. value .. \"'\"\nend\nelse\nreturn value\nend\nend\nf"
	.ascii	"unction premake.getobject(t)\nlocal container\nif (t == \"co"
	.ascii	"ntainer\" or t == \"solution\") then\ncontainer = premake.Cu"
	.ascii	"rrentContainer\nelse\ncontainer = premake.CurrentConfigurati"
	.ascii	"on\nend\nif t == \"solution\" then\nif typex(container) == \""
	.ascii	"project\" then\ncontainer = container.solution\nend\nif type"
	.ascii	"x(container) ~= \"solution\" then\ncontainer = nil\nend\nend"
	.ascii	"\nlocal msg\nif (not container) then\nif (t == \"container\""
	.ascii	") then\nmsg = \"no active solution or project\"\nelseif (t ="
	.ascii	"= \"solution\") then\nmsg = \"no active solution\"\nelse\nms"
	.ascii	"g = \"no active solution, project, or configuration\"\nend\n"
	.ascii	"end\nreturn container, msg\nend\nfunction premake.setarray(o"
	.ascii	"bj, fieldname, value, allowed)\nobj[fieldname] = obj[fieldna"
	.ascii	"me] or {}\nlocal function add(value, depth)\nif type(value) "
	.ascii	"== \"table\" then\nfor _,v in ipairs(value) do\nadd(v, depth"
	.ascii	" + 1)\nend\nelse\nvalue, err = premake.checkvalue(value, all"
	.ascii	"owed)\nif not value then\nerror(err, depth)\nend\ntable.inse"
	.ascii	"rt(obj[fieldname], value)\nend\nend\nif value then\nadd(valu"
	.ascii	"e, 5)\nend\nreturn obj[fieldname]\nend\nfunction premake.set"
	.ascii	"table(obj, fieldname, value, allowed)\nobj[fieldname] = obj["
	.ascii	"fieldname] or {}\ntable.insert(obj[fieldname], value)\nretur"
	.ascii	"n obj[fieldname]\nend\nlocal function domatchedarray(fields,"
	.ascii	" value, matchfunc)\nlocal result = { }\nfunction makeabsolut"
	.ascii	"e(value, depth)\nif (type(value) == \"table\") then\nfor _, "
	.ascii	"item in ipairs(value) do\nmakeabsolute(item, depth + 1)\nend"
	.ascii	"\nelseif type(value) == \"string\" then\nif value:find(\"*\""
	.ascii	") then\nlocal arr = matchfunc(value);\nif (premake.check_pat"
	.ascii	"hs) and (#arr == 0) then\nerror(\"Can't find matching files "
	.ascii	"for pattern :\" .. value)\nend\nmakeabsolute(arr, depth + 1)"
	.ascii	"\nelse\ntable.insert(result, path.getabsolute(value))\nend\n"
	.ascii	"else\nerror(\"Invalid va"
	.ascii	"lue in list: expected string, got \" .. type(value), depth)\n"
	.ascii	"end\nend\nmakeabsolute(value, 3)\nlocal retval = {}\nfor ind"
	.ascii	"ex, field in ipairs(fields) do\nlocal ctype = field[1]\nloca"
	.ascii	"l fieldname = field[2]\nlocal array = premake.setarray(ctype"
	.ascii	", fieldname, result)\nif index == 1 then\nretval = array\nen"
	.ascii	"d\nend\nreturn retval\nend\nfunction premake.setdirarray(fie"
	.ascii	"lds, value)\nreturn domatchedarray(fields, value, os.matchdi"
	.ascii	"rs)\nend\nfunction premake.setfilearray(fields, value)\nretu"
	.ascii	"rn domatchedarray(fields, value, os.matchfiles)\nend\nfuncti"
	.ascii	"on premake.setkeyvalue(ctype, fieldname, values)\nlocal cont"
	.ascii	"ainer, err = premake.getobject(ctype)\nif not container then"
	.ascii	"\nerror(err, 4)\nend\nif not container[fieldname] then\ncont"
	.ascii	"ainer[fieldname] = {}\nend\nif type(values) ~= \"table\" the"
	.ascii	"n\nerror(\"invalid value; table expected\", 4)\nend\nlocal f"
	.ascii	"ield = container[fieldname]\nfor key,value in pairs(values) "
	.ascii	"do\nif not field[key] then\nfield[key] = {}\nend\ntable.inse"
	.ascii	"rtflat(field[key], value)\nend\nreturn field\nend\nfunction "
	.ascii	"premake.setstring(ctype, fieldname, value, allowed)\nlocal c"
	.ascii	"ontainer, err = premake.getobject(ctype)\nif (not container)"
	.ascii	" then\nerror(err, 4)\nend\nif (value) then\nvalue, err = pre"
	.ascii	"make.checkvalue(value, allowed)\nif (not value) then\nerror("
	.ascii	"err, 4)\nend\ncontainer[fieldname] = value\nend\nreturn cont"
	.ascii	"ainer[fieldname]\nend\nfunction premake.remove(fieldname, va"
	.ascii	"lue)\nlocal cfg = premake.CurrentConfiguration\ncfg.removes "
	.ascii	"= cfg.removes or {}\ncfg.removes[fieldname] = premake.setarr"
	.ascii	"ay(cfg.removes, fieldname, value)\nend\nlocal function acces"
	.ascii	"sor(name, value)\nlocal kind    = premake.fields[name].kind\n"
	.ascii	"local scope   = premake.fields[name].scope\nlocal allowed = "
	.ascii	"premake.fields[name].allowed\nif (kind == \"string\" or kind"
	.ascii	" == \"path\") and value then\nif type(value) ~= \"string\" t"
	.ascii	"hen\nerror(\"string value expected\", 3)\nend\nend\nlocal co"
	.ascii	"ntainer, err = premake.getobject(scope)\nif (not container) "
	.ascii	"then\nerror(err, 3)\nend\nif kind == \"string\" then\nreturn"
	.ascii	" premake.setstring(scope, name, value, allowed)\nelseif kind"
	.ascii	" == \"path\" then\nif value then value = path.getab"
	.ascii	"solute(value) end\nreturn premake.setstring(scope, name, val"
	.ascii	"ue)\nelseif kind == \"list\" then\nreturn premake.setarray(c"
	.ascii	"ontainer, name, value, allowed)\nelseif kind == \"table\" th"
	.ascii	"en\nreturn premake.settable(container, name, value, allowed)"
	.ascii	"\nelseif kind == \"dirlist\" then\nreturn premake.setdirarra"
	.ascii	"y({{container, name}}, value)\nelseif kind == \"filelist\" o"
	.ascii	"r kind == \"absolutefilelist\" then\nlocal fields = {{contai"
	.ascii	"ner, name}}\nif name == \"files\" then\nlocal prj, err = pre"
	.ascii	"make.getobject(\"container\")\nif (not prj) then\nerror(err,"
	.ascii	" 2)\nend\ntable.insert(fields, {prj.blocks[1], \"allfiles\"}"
	.ascii	")\nend\nreturn premake.setfilearray(fields, value)\nelseif k"
	.ascii	"ind == \"keyvalue\" or kind == \"keypath\" then\nreturn prem"
	.ascii	"ake.setkeyvalue(scope, name, value)\nend\nend\nfunction conf"
	.ascii	"iguration(terms)\nif not terms then\nreturn premake.CurrentC"
	.ascii	"onfiguration\nend\nlocal container, err = premake.getobject("
	.ascii	"\"container\")\nif (not container) then\nerror(err, 2)\nend\n"
	.ascii	"local cfg = { }\ncfg.terms = table.flatten({terms})\ntable.i"
	.ascii	"nsert(container.blocks, cfg)\npremake.CurrentConfiguration ="
	.ascii	" cfg\ncfg.keywords = { }\nfor _, word in ipairs(cfg.terms) d"
	.ascii	"o\ntable.insert(cfg.keywords, path.wildcards(word):lower())\n"
	.ascii	"end\nfor name, field in pairs(premake.fields) do\nif (field."
	.ascii	"kind ~= \"string\" and field.kind ~= \"path\") then\ncfg[nam"
	.ascii	"e] = { }\nend\nend\nreturn cfg\nend\nlocal function creategr"
	.ascii	"oup(name, sln, curpath, parent, inpath)\nlocal group = {}\ns"
	.ascii	"etmetatable(group, {\n__type = \"group\"\n})\ntable.insert(s"
	.ascii	"ln.groups, group)\nsln.groups[inpath] = group\nif parent ~= "
	.ascii	"nil then\ntable.insert(parent.groups, group)\nend\ngroup.sol"
	.ascii	"ution = sln\ngroup.name = name\ngroup.uuid = os.uuid(curpath"
	.ascii	")\ngroup.parent = parent\ngroup.projects = { }\ngroup.groups"
	.ascii	" = { }\nreturn group\nend\nlocal function creategroupsfrompa"
	.ascii	"th(inpath, sln)\nif inpath == nil then return nil end\ninpat"
	.ascii	"h = path.translate(inpath, \"/\")\nlocal groups = string.exp"
	.ascii	"lode(inpath, \"/\")\nlocal curpath = \"\"\nlocal lastgroup ="
	.ascii	" nil\nfor i, v in ipairs(groups) do\ncurpath = curpath .. \""
	.ascii	"/\" .. v:lower()\nlocal group = sln.groups[curpath]\nif grou"
	.ascii	"p == n"
	.ascii	"il then\ngroup = creategroup(v, sln, curpath, lastgroup, cur"
	.ascii	"path)\nend\nlastgroup = group\nend\nreturn lastgroup\nend\nl"
	.ascii	"ocal function createproject(name, sln, isUsage)\nlocal prj ="
	.ascii	" {}\nsetmetatable(prj, {\n__type = \"project\",\n})\ntable.i"
	.ascii	"nsert(sln.projects, prj)\nif(isUsage) then\nif(sln.projects["
	.ascii	"name]) then\nsln.projects[name].usageProj = prj;\nelse\nsln."
	.ascii	"projects[name] = prj\nend\nelse\nif(sln.projects[name]) then"
	.ascii	"\nprj.usageProj = sln.projects[name];\nend\nsln.projects[nam"
	.ascii	"e] = prj\nend\nlocal group = creategroupsfrompath(premake.Cu"
	.ascii	"rrentGroup, sln)\nif group ~= nil then\ntable.insert(group.p"
	.ascii	"rojects, prj)\nend\nprj.solution       = sln\nprj.name      "
	.ascii	"     = name\nprj.basedir        = os.getcwd()\nprj.uuid     "
	.ascii	"      = os.uuid(prj.name)\nprj.blocks         = { }\nprj.usa"
	.ascii	"ge          = isUsage\nprj.group          = group\nreturn pr"
	.ascii	"j;\nend\nfunction usage(name)\nif (not name) then\nif(typex("
	.ascii	"premake.CurrentContainer) ~= \"project\") then return nil en"
	.ascii	"d\nif(not premake.CurrentContainer.usage) then return nil en"
	.ascii	"d\nreturn premake.CurrentContainer\nend\nlocal sln\nif (type"
	.ascii	"x(premake.CurrentContainer) == \"project\") then\nsln = prem"
	.ascii	"ake.CurrentContainer.solution\nelse\nsln = premake.CurrentCo"
	.ascii	"ntainer\nend\nif (typex(sln) ~= \"solution\") then\nerror(\""
	.ascii	"no active solution\", 2)\nend\nif((not sln.projects[name]) o"
	.ascii	"r\n((not sln.projects[name].usage) and (not sln.projects[nam"
	.ascii	"e].usageProj))) then\npremake.CurrentContainer = createproje"
	.ascii	"ct(name, sln, true)\nelse\npremake.CurrentContainer = iff(sl"
	.ascii	"n.projects[name].usage,\nsln.projects[name], sln.projects[na"
	.ascii	"me].usageProj)\nend\nconfiguration { }\nreturn premake.Curre"
	.ascii	"ntContainer\nend\nfunction project(name)\nif (not name) then"
	.ascii	"\nif(typex(premake.CurrentContainer) ~= \"project\") then re"
	.ascii	"turn nil end\nif(premake.CurrentContainer.usage) then return"
	.ascii	" nil end\nreturn premake.CurrentContainer\nend\nlocal sln\ni"
	.ascii	"f (typex(premake.CurrentContainer) == \"project\") then\nsln"
	.ascii	" = premake.CurrentContainer.solution\nelse\nsln = premake.Cu"
	.ascii	"rrentContainer\nend\nif (typex(sln) ~= \"solution\") then\ne"
	.ascii	"rror(\"no active solution\", 2)\nend\nif((not sln.projec"
	.ascii	"ts[name]) or sln.projects[name].usage) then\npremake.Current"
	.ascii	"Container = createproject(name, sln)\nelse\npremake.CurrentC"
	.ascii	"ontainer = sln.projects[name];\nend\nconfiguration { }\nretu"
	.ascii	"rn premake.CurrentContainer\nend\nfunction solution(name)\ni"
	.ascii	"f not name then\nif typex(premake.CurrentContainer) == \"pro"
	.ascii	"ject\" then\nreturn premake.CurrentContainer.solution\nelse\n"
	.ascii	"return premake.CurrentContainer\nend\nend\npremake.CurrentCo"
	.ascii	"ntainer = premake.solution.get(name)\nif (not premake.Curren"
	.ascii	"tContainer) then\npremake.CurrentContainer = premake.solutio"
	.ascii	"n.new(name)\nend\nconfiguration { }\nreturn premake.CurrentC"
	.ascii	"ontainer\nend\nfunction group(name)\nif not name then\nretur"
	.ascii	"n premake.CurrentGroup\nend\npremake.CurrentGroup = name\nre"
	.ascii	"turn premake.CurrentGroup\nend\nfunction importvsproject(loc"
	.ascii	"ation)\nif string.find(_ACTION, \"vs\") ~= 1 then\nerror(\"O"
	.ascii	"nly available for visual studio actions\")\nend\nsln, err = "
	.ascii	"premake.getobject(\"solution\")\nif not sln then\nerror(err)"
	.ascii	"\nend\nlocal group = creategroupsfrompath(premake.CurrentGro"
	.ascii	"up, sln)\nlocal project = {}\nproject.location = location\np"
	.ascii	"roject.group = group\nproject.flags = {}\ntable.insert(sln.i"
	.ascii	"mportedprojects, project)\n    end\nfunction newaction(a)\np"
	.ascii	"remake.action.add(a)\nend\nfunction newoption(opt)\npremake."
	.ascii	"option.add(opt)\nend\nfunction enablefilelevelconfig()\nprem"
	.ascii	"ake._filelevelconfig = true\nend\nfunction newapifield(field"
	.ascii	")\npremake.fields[field.name] = field\n_G[field.name] = func"
	.ascii	"tion(value)\nreturn accessor(field.name, value)\nend\nif fie"
	.ascii	"ld.kind == \"list\"\nor field.kind == \"dirlist\"\nor field."
	.ascii	"kind == \"filelist\"\nor field.kind == \"absolutefilelist\"\n"
	.ascii	"then\nif  field.name ~= \"removefiles\"\nand field.name ~= \""
	.ascii	"files\" then\n_G[\"remove\"..field.name] = function(value)\n"
	.ascii	"premake.remove(field.name, value)\nend\nend\nend\nend\nnewap"
	.ascii	"ifield {\nname  = \"archivesplit_size\",\nkind  = \"string\""
	.ascii	",\nscope = \"config\",\n}\nnewapifield {\nname  = \"basedir\""
	.ascii	",\nkind  = \"path\",\nscope = \"container\",\n}\nnewapifield"
	.ascii	" {\nname  = \"buildaction\",\nkind  = \"string\",\nscope = \""
	.ascii	"config\",\nallowed = {\n\"Compile\",\n\"Copy\",\n\"Embed\",\n"
	.ascii	"\"None\"\n}\n}\nnewapifield {\nname "
	.ascii	" = \"buildoptions\",\nkind  = \"list\",\nscope = \"config\","
	.ascii	"\n}\nnewapifield {\nname  = \"buildoptions_asm\",\nkind  = \""
	.ascii	"list\",\nscope = \"config\",\n}\nnewapifield {\nname  = \"bu"
	.ascii	"ildoptions_c\",\nkind  = \"list\",\nscope = \"config\",\n}\n"
	.ascii	"newapifield {\nname  = \"buildoptions_cpp\",\nkind  = \"list"
	.ascii	"\",\nscope = \"config\",\n}\nnewapifield {\nname  = \"buildo"
	.ascii	"ptions_objc\",\nkind  = \"list\",\nscope = \"config\",\n}\nn"
	.ascii	"ewapifield {\nname  = \"buildoptions_objcpp\",\nkind  = \"li"
	.ascii	"st\",\nscope = \"config\",\n}\nnewapifield {\nname  = \"buil"
	.ascii	"doptions_vala\",\nkind  = \"list\",\nscope = \"config\",\n}\n"
	.ascii	"newapifield {\nname  = \"clrreferences\",\nkind = \"list\",\n"
	.ascii	"scope = \"container\",\n}\nnewapifield {\nname  = \"configur"
	.ascii	"ations\",\nkind  = \"list\",\nscope = \"solution\",\n}\nnewa"
	.ascii	"pifield {\nname  = \"custombuildtask\",\nkind  = \"table\",\n"
	.ascii	"scope = \"config\",\n}\nnewapifield {\nname  = \"debugcmd\","
	.ascii	"\nkind = \"string\",\nscope = \"config\",\n}\nnewapifield {\n"
	.ascii	"name  = \"debugargs\",\nkind = \"list\",\nscope = \"config\""
	.ascii	",\n}\nnewapifield {\nname  = \"debugdir\",\nkind = \"path\","
	.ascii	"\nscope = \"config\",\n}\nnewapifield {\nname  = \"debugenvs"
	.ascii	"\" ,\nkind = \"list\",\nscope = \"config\",\n}\nnewapifield "
	.ascii	"{\nname  = \"defines\",\nkind  = \"list\",\nscope = \"config"
	.ascii	"\",\n}\nnewapifield {\nname  = \"deploymentoptions\",\nkind "
	.ascii	" = \"list\",\nscope = \"config\",\nusagecopy = true,\n}\nnew"
	.ascii	"apifield {\nname  = \"dependency\",\nkind  = \"table\",\nsco"
	.ascii	"pe = \"config\",\n}\nnewapifield {\nname  = \"deploymode\",\n"
	.ascii	"kind = \"string\",\nscope = \"config\",\n}\nnewapifield {\nn"
	.ascii	"ame  = \"excludes\",\nkind  = \"filelist\",\nscope = \"confi"
	.ascii	"g\",\n}\nnewapifield {\nname  = \"forcenative\",\nkind = \"f"
	.ascii	"ilelist\",\nscope = \"config\",\n}\nnewapifield {\nname  = \""
	.ascii	"nopch\",\nkind  = \"filelist\",\nscope = \"config\",\n}\nnew"
	.ascii	"apifield {\nname  = \"files\",\nkind  = \"filelist\",\nscope"
	.ascii	" = \"config\",\n}\nnewapifield {\nname  = \"removefiles\",\n"
	.ascii	"kind  = \"filelist\",\nscope = \"config\",\n}\nnewapifield {"
	.ascii	"\nname  = \"flags\",\nkind  = \"list\",\nscope = \"config\","
	.ascii	"\nisflags = true,\nusagecopy = true,\nallowed = function(val"
	.ascii	"ue)\nlocal allowed_flags = {\nAntBuildDebuggable = 1,\nATL ="
	.ascii	" 1,\nC7DebugInfo = 1,\nCpp11 = 1,\nCpp14 = 1,\nCpp17 = 1,\nC"
	.ascii	"ppLatest = 1,\nDebugEnvsDontMerge = 1,\nDebugEnv"
	.ascii	"sInherit = 1,\nDeploymentContent = 1,\nEnableMinimalRebuild "
	.ascii	"= 1,\nEnableSSE = 1,\nEnableSSE2 = 1,\nEnableAVX = 1,\nEnabl"
	.ascii	"eAVX2 = 1,\nPedanticWarnings = 1,\nExtraWarnings = 1,\nFatal"
	.ascii	"Warnings = 1,\nFloatFast = 1,\nFloatStrict = 1,\nFullSymbols"
	.ascii	" = 1,\nGenerateMapFiles = 1,\nHotpatchable = 1,\nLinkSupport"
	.ascii	"CircularDependencies = 1,\nManaged = 1,\nMinimumWarnings = 1"
	.ascii	",\nMFC = 1,\nNativeWChar = 1,\nNo64BitChecks = 1,\nNoBufferS"
	.ascii	"ecurityCheck = 1,\nNoEditAndContinue = 1,\nNoExceptions = 1,"
	.ascii	"\nNoFramePointer = 1,\nNoImportLib = 1,\nNoIncrementalLink ="
	.ascii	" 1,\nNoJMC = 1,\nNoManifest = 1,\nNoMultiProcessorCompilatio"
	.ascii	"n = 1,\nNoNativeWChar = 1,\nNoOptimizeLink = 1,\nNoPCH = 1,\n"
	.ascii	"NoRTTI = 1,\nNoRuntimeChecks = 1,\nNoWinMD = 1,    -- explic"
	.ascii	"itly disables Windows Metadata\nNoWinRT = 1,    -- explicitl"
	.ascii	"y disables Windows Runtime Extension\nFastCall = 1,\nStdCall"
	.ascii	" = 1,\nSingleOutputDir = 1,\nObjcARC = 1,\nOptimize = 1,\nOp"
	.ascii	"timizeSize = 1,\nOptimizeSpeed = 1,\nDebugRuntime = 1,\nRele"
	.ascii	"aseRuntime = 1,\nSEH = 1,\nStaticATL = 1,\nStaticRuntime = 1"
	.ascii	",\nSymbols = 1,\nUnicode = 1,\nUnitySupport = 1,\nUnsafe = 1"
	.ascii	",\nUnsignedChar = 1,\nUseFullPaths = 1,\nUseLDResponseFile ="
	.ascii	" 1,\nUseObjectResponseFile = 1,\nWinMain = 1\n}\nlocal engli"
	.ascii	"shToAmericanSpelling =\n{\nnooptimiselink = 'nooptimizelink'"
	.ascii	",\noptimise = 'optimize',\noptimisesize = 'optimizesize',\no"
	.ascii	"ptimisespeed = 'optimizespeed',\n}\nlocal lowervalue = value"
	.ascii	":lower()\nlowervalue = englishToAmericanSpelling[lowervalue]"
	.ascii	" or lowervalue\nfor v, _ in pairs(allowed_flags) do\nif v:lo"
	.ascii	"wer() == lowervalue then\nreturn v\nend\nend\nreturn nil, \""
	.ascii	"invalid flag\"\nend,\n}\nnewapifield {\nname  = \"framework\""
	.ascii	",\nkind = \"string\",\nscope = \"container\",\nallowed = {\n"
	.ascii	"\"1.0\",\n\"1.1\",\n\"2.0\",\n\"3.0\",\n\"3.5\",\n\"4.0\",\n"
	.ascii	"\"4.5\",\n\"4.5.1\",\n\"4.5.2\",\n\"4.6\",\n\"4.6.1\",\n\"4."
	.ascii	"6.2\",\n}\n}\nnewapifield {\nname  = \"iostargetplatformvers"
	.ascii	"ion\",\nkind  = \"string\",\nscope = \"project\",\n}\nnewapi"
	.ascii	"field {\nname  = \"macostargetplatformversion\",\nkind  = \""
	.ascii	"string\",\nscope = \"project\",\n}\nnewapifield {\nname  = \""
	.ascii	"tvostargetplatformversion\",\nkind  = \"string\",\nscope = \""
	.ascii	"project\",\n}\nnewapifield {\nname  = \"windowstargetplatf"
	.ascii	"ormversion\",\nkind  = \"string\",\nscope = \"project\",\n}\n"
	.ascii	"newapifield {\nname  = \"windowstargetplatformminversion\",\n"
	.ascii	"kind = \"string\",\nscope = \"project\",\n}\nnewapifield {\n"
	.ascii	"name  = \"forcedincludes\",\nkind  = \"list\",\nscope = \"co"
	.ascii	"nfig\",\n}\nnewapifield {\nname  = \"imagepath\",\nkind = \""
	.ascii	"path\",\nscope = \"config\",\n}\nnewapifield {\nname  = \"im"
	.ascii	"ageoptions\",\nkind  = \"list\",\nscope = \"config\",\n}\nne"
	.ascii	"wapifield {\nname  = \"implibdir\",\nkind  = \"path\",\nscop"
	.ascii	"e = \"config\",\n}\nnewapifield {\nname  = \"implibextension"
	.ascii	"\",\nkind  = \"string\",\nscope = \"config\",\n}\nnewapifiel"
	.ascii	"d {\nname  = \"implibname\",\nkind  = \"string\",\nscope = \""
	.ascii	"config\",\n}\nnewapifield {\nname  = \"implibprefix\",\nkind"
	.ascii	"  = \"string\",\nscope = \"config\",\n}\nnewapifield {\nname"
	.ascii	"  = \"implibsuffix\",\nkind  = \"string\",\nscope = \"config"
	.ascii	"\",\n}\nnewapifield {\nname  = \"includedirs\",\nkind  = \"d"
	.ascii	"irlist\",\nscope = \"config\",\nusagecopy = true,\n}\nnewapi"
	.ascii	"field {\nname  = \"systemincludedirs\",\nkind  = \"dirlist\""
	.ascii	",\nscope = \"config\",\nusagecopy = true,\n}\nnewapifield {\n"
	.ascii	"name  = \"userincludedirs\",\nkind  = \"dirlist\",\nscope = "
	.ascii	"\"config\",\nusagecopy = true,\n}\nnewapifield {\nname  = \""
	.ascii	"usingdirs\",\nkind  = \"dirlist\",\nscope = \"config\",\nusa"
	.ascii	"gecopy = true,\n}\nnewapifield {\nname  = \"kind\",\nkind  ="
	.ascii	" \"string\",\nscope = \"config\",\nallowed = {\n\"ConsoleApp"
	.ascii	"\",\n\"WindowedApp\",\n\"StaticLib\",\n\"SharedLib\",\n\"Bun"
	.ascii	"dle\",\n}\n}\nnewapifield {\nname  = \"language\",\nkind  = "
	.ascii	"\"string\",\nscope = \"container\",\nallowed = {\n\"C\",\n\""
	.ascii	"C++\",\n\"C#\",\n\"Vala\",\n\"Swift\",\n}\n}\nnewapifield {\n"
	.ascii	"name  = \"libdirs\",\nkind  = \"dirlist\",\nscope = \"config"
	.ascii	"\",\nlinkagecopy = true,\n}\nnewapifield {\nname  = \"linkop"
	.ascii	"tions\",\nkind  = \"list\",\nscope = \"config\",\n}\nnewapif"
	.ascii	"ield {\nname  = \"links\",\nkind  = \"list\",\nscope = \"con"
	.ascii	"fig\",\nallowed = function(value)\nif value:find('/', nil, t"
	.ascii	"rue) then\nvalue = path.getabsolute(value)\nend\nreturn valu"
	.ascii	"e\nend,\nlinkagecopy = true,\nmergecopiestotail = true,\n}\n"
	.ascii	"newapifield {\nname  = \"location\",\nkind  = \"path\",\nsco"
	.ascii	"pe = \"container\",\n}\nnewapifield {\nname  = \"makesetting"
	.ascii	"s\",\nkind = \"list\",\nscope = \"config\",\n}\nnewapifield "
	.ascii	"{\nname  = \"messageskip\",\nkind  = \"list\",\nscope = \"s"
	.ascii	"olution\",\nisflags = true,\nusagecopy = true,\nallowed = fu"
	.ascii	"nction(value)\nlocal allowed_messages = {\nSkipCreatingMessa"
	.ascii	"ge = 1,\nSkipBuildingMessage = 1,\nSkipCleaningMessage = 1,\n"
	.ascii	"}\nlocal lowervalue = value:lower()\nfor v, _ in pairs(allow"
	.ascii	"ed_messages) do\nif v:lower() == lowervalue then\nreturn v\n"
	.ascii	"end\nend\nreturn nil, \"invalid message to skip\"\nend,\n}\n"
	.ascii	"newapifield {\nname  = \"msgarchiving\",\nkind  = \"string\""
	.ascii	",\nscope = \"config\",\n}\nnewapifield {\nname  = \"msgcompi"
	.ascii	"le\",\nkind  = \"string\",\nscope = \"config\",\n}\nnewapifi"
	.ascii	"eld {\nname  = \"msgprecompile\",\nkind  = \"string\",\nscop"
	.ascii	"e = \"config\",\n}\nnewapifield {\nname  = \"msgcompile_objc"
	.ascii	"\",\nkind  = \"string\",\nscope = \"config\",\n}\nnewapifiel"
	.ascii	"d {\nname  = \"msgresource\",\nkind  = \"string\",\nscope = "
	.ascii	"\"config\",\n}\nnewapifield {\nname  = \"msglinking\",\nkind"
	.ascii	"  = \"string\",\nscope = \"config\",\n}\nnewapifield {\nname"
	.ascii	"  = \"objdir\",\nkind  = \"path\",\nscope = \"config\",\n}\n"
	.ascii	"newapifield {\nname  = \"options\",\nkind  = \"list\",\nscop"
	.ascii	"e = \"container\",\nisflags = true,\nusagecopy = true,\nallo"
	.ascii	"wed = function(value)\nlocal allowed_options = {\nForceCPP ="
	.ascii	" 1,\nArchiveSplit = 1,\nSkipBundling = 1,\nXcodeLibrarySchem"
	.ascii	"es = 1,\nXcodeSchemeNoConfigs = 1,\n}\nlocal lowervalue = va"
	.ascii	"lue:lower()\nfor v, _ in pairs(allowed_options) do\nif v:low"
	.ascii	"er() == lowervalue then\nreturn v\nend\nend\nreturn nil, \"i"
	.ascii	"nvalid option\"\nend,\n}\nnewapifield {\nname  = \"pchheader"
	.ascii	"\",\nkind  = \"string\",\nscope = \"config\",\n}\nnewapifiel"
	.ascii	"d {\nname  = \"pchsource\",\nkind  = \"path\",\nscope = \"co"
	.ascii	"nfig\",\n}\nnewapifield {\nname  = \"platforms\",\nkind  = \""
	.ascii	"list\",\nscope = \"solution\",\nallowed = table.keys(premake"
	.ascii	".platforms),\n}\nnewapifield {\nname  = \"postbuildcommands\""
	.ascii	",\nkind  = \"list\",\nscope = \"config\",\n}\nnewapifield {\n"
	.ascii	"name  = \"prebuildcommands\",\nkind  = \"list\",\nscope = \""
	.ascii	"config\",\n}\nnewapifield {\nname  = \"postcompiletasks\",\n"
	.ascii	"kind  = \"list\",\nscope = \"config\",\n}\nnewapifield {\nna"
	.ascii	"me  = \"prelinkcommands\",\nkind  = \"list\",\nscope = \"con"
	.ascii	"fig\",\n}\nnewapifield {\nname  = \"propertysheets\",\nkind "
	.ascii	" = \"dirlist\",\nscope = \"config\",\n}\nnewapifield {\nname"
	.ascii	"  = \"pullmappingfile\",\nkind  = \"path\",\nscope = \"confi"
	.ascii	"g\""
	.ascii	",\n}\nnewapifield {\nname  = \"applicationdatadir\",\nkind  "
	.ascii	"= \"path\",\nscope = \"config\",\n}\nnewapifield {\nname  = "
	.ascii	"\"finalizemetasource\",\nkind  = \"path\",\nscope = \"config"
	.ascii	"\",\n}\nnewapifield {\nname  = \"resdefines\",\nkind  = \"li"
	.ascii	"st\",\nscope = \"config\",\n}\nnewapifield {\nname  = \"resi"
	.ascii	"ncludedirs\",\nkind  = \"dirlist\",\nscope = \"config\",\n}\n"
	.ascii	"newapifield {\nname  = \"resoptions\",\nkind  = \"list\",\ns"
	.ascii	"cope = \"config\",\n}\nnewapifield {\nname  = \"sdkreference"
	.ascii	"s\",\nkind  = \"list\",\nscope = \"config\",\n}\nnewapifield"
	.ascii	" {\nname  = \"startproject\",\nkind  = \"string\",\nscope = "
	.ascii	"\"solution\",\n}\nnewapifield {\nname  = \"targetdir\",\nkin"
	.ascii	"d  = \"path\",\nscope = \"config\",\n}\nnewapifield {\nname "
	.ascii	" = \"targetsubdir\",\nkind  = \"string\",\nscope = \"config\""
	.ascii	",\n}\nnewapifield {\nname  = \"targetextension\",\nkind  = \""
	.ascii	"string\",\nscope = \"config\",\n}\nnewapifield {\nname  = \""
	.ascii	"targetname\",\nkind  = \"string\",\nscope = \"config\",\n}\n"
	.ascii	"newapifield {\nname  = \"targetprefix\",\nkind  = \"string\""
	.ascii	",\nscope = \"config\",\n}\nnewapifield {\nname  = \"targetsu"
	.ascii	"ffix\",\nkind  = \"string\",\nscope = \"config\",\n}\nnewapi"
	.ascii	"field {\nname  = \"trimpaths\",\nkind = \"dirlist\",\nscope "
	.ascii	"= \"config\",\n}\nnewapifield {\nname  = \"uuid\",\nkind  = "
	.ascii	"\"string\",\nscope = \"container\",\nallowed = function(valu"
	.ascii	"e)\nlocal ok = true\nif (#value ~= 36) then ok = false end\n"
	.ascii	"for i=1,36 do\nlocal ch = value:sub(i,i)\nif (not ch:find(\""
	.ascii	"[ABCDEFabcdef0123456789-]\")) then ok = false end\nend\nif ("
	.ascii	"value:sub(9,9) ~= \"-\")   then ok = false end\nif (value:su"
	.ascii	"b(14,14) ~= \"-\") then ok = false end\nif (value:sub(19,19)"
	.ascii	" ~= \"-\") then ok = false end\nif (value:sub(24,24) ~= \"-\""
	.ascii	") then ok = false end\nif (not ok) then\nreturn nil, \"inval"
	.ascii	"id UUID\"\nend\nreturn value:upper()\nend\n}\nnewapifield {\n"
	.ascii	"name  = \"uses\",\nkind  = \"list\",\nscope = \"config\",\n}"
	.ascii	"\nnewapifield {\nname  = \"vapidirs\",\nkind  = \"dirlist\","
	.ascii	"\nscope = \"config\",\n}\nnewapifield {\nname  = \"vpaths\","
	.ascii	"\nkind = \"keypath\",\nscope = \"container\",\n}\nnewapifiel"
	.ascii	"d {\nname  = \"vsimportreferences\",\nkind = \"filelist\",\n"
	.ascii	"scope = \"container\",\n}\nnewapifield {\nname  = \"dpiaware"
	.ascii	"ness\",\nkind = \"string\",\nscope = \"config\",\nallowed = "
	.ascii	"{\n\"None\",\n\"High\",\n\"HighP"
	.ascii	"erMonitor\",\n}\n}\nnewapifield {\nname  = \"xcodeprojectopt"
	.ascii	"s\",\nkind = \"table\",\nscope = \"config\",\n}\nnewapifield"
	.ascii	" {\nname  = \"xcodetargetopts\",\nkind = \"table\",\nscope ="
	.ascii	" \"config\",\n}\nnewapifield {\nname  = \"xcodescriptphases\""
	.ascii	",\nkind  = \"table\",\nscope = \"config\",\n}\nnewapifield {"
	.ascii	"\nname  = \"xcodecopyresources\",\nkind  = \"table\",\nscope"
	.ascii	" = \"project\",\n}\nnewapifield {\nname  = \"xcodecopyframew"
	.ascii	"orks\",\nkind  = \"filelist\",\nscope = \"project\",\n}\nnew"
	.ascii	"apifield {\nname  = \"wholearchive\",\nkind  = \"list\",\nsc"
	.ascii	"ope = \"config\",\n}\nnewapifield {\nname  = \"swiftmodulema"
	.ascii	"ps\",\nkind  = \"filelist\",\nscope = \"config\",\n}\nnewapi"
	.ascii	"field {\nname  = \"buildoptions_swift\",\nkind  = \"list\",\n"
	.ascii	"scope = \"config\",\n}\nnewapifield {\nname  = \"linkoptions"
	.ascii	"_swift\",\nkind  = \"list\",\nscope = \"config\",\n}\nnewapi"
	.ascii	"field {\nname  = \"androidtargetapi\",\nkind = \"string\",\n"
	.ascii	"scope = \"config\",\n}\nnewapifield {\nname  = \"androidmina"
	.ascii	"pi\",\nkind = \"string\",\nscope = \"config\",\n}\nnewapifie"
	.ascii	"ld {\nname  = \"androidarch\",\nkind = \"string\",\nscope = "
	.ascii	"\"config\",\nallowed = {\n\"armv7-a\",\n\"armv7-a-hard\",\n\""
	.ascii	"arm64-v8a\",\n\"x86\",\n\"x86_64\",\n}\n}\nnewapifield {\nna"
	.ascii	"me  = \"androidndktoolchainversion\",\nkind = \"string\",\ns"
	.ascii	"cope = \"config\",\n}\nnewapifield {\nname  = \"androidstlty"
	.ascii	"pe\",\nkind = \"string\",\nscope = \"config\",\n}\nnewapifie"
	.ascii	"ld {\nname  = \"androidcppstandard\",\nkind = \"string\",\ns"
	.ascii	"cope = \"config\",\nallowed = {\n\"c++98\",\n\"c++11\",\n\"c"
	.ascii	"++1y\",\n\"gnu++98\",\n\"gnu++11\",\n\"gnu++1y\",\n}\n}\nnew"
	.ascii	"apifield {\nname  = \"androidlinker\",\nkind = \"string\",\n"
	.ascii	"scope = \"config\",\nallowed = {\n\"bfd\",\n\"gold\",\n}\n}\n"
	.ascii	"newapifield {\nname  = \"androiddebugintentparams\",\nkind ="
	.ascii	" \"list\",\nscope = \"config\",\n}\nnewapifield {\nname  = \""
	.ascii	"antbuildjavasourcedirs\",\nkind = \"dirlist\",\nscope = \"co"
	.ascii	"nfig\",\n}\nnewapifield {\nname  = \"antbuildjardirs\",\nkin"
	.ascii	"d = \"dirlist\",\nscope = \"config\",\n}\nnewapifield {\nnam"
	.ascii	"e  = \"antbuildjardependencies\",\nkind = \"list\",\nscope ="
	.ascii	" \"config\",\n}\nnewapifield {\nname  = \"antbuildnativelibd"
	.ascii	"irs\",\nkind = \"dirlist\",\nscope = \"config\",\n}\nnewapif"
	.ascii	"ield {\nname  = \"antbuildnativelibdependencies\",\nkind = \""
	.ascii	"list\",\nscope = \"config\",\n}\nnewapifield {\nname  = \"an"
	.ascii	"tbuilda"
	.string	"ssetsdirs\",\nkind = \"dirlist\",\nscope = \"config\",\n}\nnewapifield {\nname  = \"postsolutioncallbacks\",\nkind  = \"list\",\nscope = \"solution\",\n}\nnewapifield {\nname  = \"postprojectcallbacks\",\nkind  = \"list\",\nscope = \"project\",\n}\n"
	.align 8
.LC14:
	.ascii	"newoption\n{\ntrigger     = \"cc\",\nvalue       = \"VALUE\""
	.ascii	",\ndescription = \"Choose a C/C++ compiler set\",\nallowed ="
	.ascii	" {\n{ \"gcc\", \"GNU GCC (gcc/g++)\" },\n{ \"ow\",  \"OpenWa"
	.ascii	"tcom\"        },\n{ \"ghs\", \"Green Hills Software\" },\n}\n"
	.ascii	"}\nnewoption\n{\ntrigger     = \"dotnet\",\nvalue       = \""
	.ascii	"VALUE\",\ndescription = \"Choose a .NET compiler set\",\nall"
	.ascii	"owed = {\n{ \"msnet\",   \"Microsoft .NET (csc)\" },\n{ \"mo"
	.ascii	"no\",    \"Novell Mono (mcs)\"    },\n{ \"pnet\",    \"Porta"
	.ascii	"ble.NET (cscc)\"  },\n}\n}\nnewoption\n{\ntrigger     = \"fi"
	.ascii	"le\",\nvalue       = \"FILE\",\ndescription = \"Read FILE as"
	.ascii	" a Premake script; default is 'premake4.lua'\"\n}\nnewoption"
	.ascii	"\n{\ntrigger     = \"help\",\ndescription = \"Display this i"
	.ascii	"nformation\"\n}\nnewoption\n{\ntrigger     = \"os\",\nvalue "
	.ascii	"      = \"VALUE\",\ndescription = \"Generate files for a dif"
	.ascii	"ferent operating system\",\nallowed = {\n{ \"bsd\",      \"O"
	.ascii	"penBSD, NetBSD, or FreeBSD\" },\n{ \"linux\",    \"Linux\" }"
	.ascii	",\n{ \"macosx\",   \"Apple Mac OS X\" },\n{ \"solaris\",  \""
	.ascii	"Solaris\" },\n{ \"windows\",  \"Microsoft Windows\" },\n}\n}"
	.ascii	"\nnewoption\n{\ntrigger     = \"platform\",\nvalue       = \""
	.ascii	"VALUE\",\ndescription = \"Add target architecture (if suppor"
	.ascii	"ted by action)\",\nallowed = {\n{ \"x32\",         \"32-bit\""
	.ascii	" },\n{ \"x64\",         \"64-bit\" },\n{ \"universal\",   \""
	.ascii	"Mac OS X Universal, 32- and 64-bit\" },\n{ \"universal32\", "
	.ascii	"\"Mac OS X Universal, 32-bit only\" },\n{ \"universal64\", \""
	.ascii	"Mac OS X Universal, 64-bit only\" },\n{ \"ps3\",         \"P"
	.ascii	"laystation 3\" },\n{ \"orbis\",       \"Playstation 4\" },\n"
	.ascii	"{ \"xbox360\",     \"Xbox 360\" },\n{ \"durango\",     \"Xbo"
	.ascii	"x One\" },\n{ \"ARM\",         \"ARM\" },\n{ \"PowerPC\",   "
	.ascii	"  \"PowerPC\" },\n}\n}\nnewoption\n{\ntrigger     = \"script"
	.ascii	"s\",\nvalue      "
	.string	" = \"path\",\ndescription = \"Search for additional scripts on the given path\"\n}\nnewoption\n{\ntrigger     = \"debug-profiler\",\ndescription = \"GENie script generation profiler.\"\n}\nnewoption\n{\ntrigger     = \"version\",\ndescription = \"Display version information\"\n}\n"
	.align 8
.LC15:
	.ascii	"-- Copyright (c) 2013 Enrique Garc\303\255a Cota\nlocal func"
	.ascii	"tion smartQuote(str)\n  if str:match('\"') and not str:match"
	.ascii	"(\"'\") then\n    return \"'\" .. str .. \"'\"\n  end\n  ret"
	.ascii	"urn '\"' .. str:gsub('\"', '\\\\\"') .. '\"'\nend\nlocal con"
	.ascii	"trolCharsTranslation = {\n  [\"\\a\"] = \"\\\\a\",  [\"\\b\""
	.ascii	"] = \"\\\\b\", [\"\\f\"] = \"\\\\f\",  [\"\\n\"] = \"\\\\n\""
	.ascii	",\n  [\"\\r\"] = \"\\\\r\",  [\"\\t\"] = \"\\\\t\", [\"\\v\""
	.ascii	"] = \"\\\\v\"\n}\nlocal function escapeChar(c) return contro"
	.ascii	"lCharsTranslation[c] end\nlocal function escape(str)\n  loca"
	.ascii	"l result = str:gsub(\"\\\\\", \"\\\\\\\\\"):gsub(\"(%c)\", e"
	.ascii	"scapeChar)\n  return result\nend\nlocal function isIdentifie"
	.ascii	"r(str)\n  return type(str) == 'string' and str:match( \"^[_%"
	.ascii	"a][_%a%d]*$\" )\nend\nlocal function isArrayKey(k, length)\n"
	.ascii	"  return type(k) == 'number' and 1 <= k and k <= length\nend"
	.ascii	"\nlocal function isDictionaryKey(k, length)\n  return not is"
	.ascii	"ArrayKey(k, length)\nend\nlocal defaultTypeOrders = {\n  ['n"
	.ascii	"umber']   = 1, ['boolean']  = 2, ['string'] = 3, ['table'] ="
	.ascii	" 4,\n  ['function'] = 5, ['userdata'] = 6, ['thread'] = 7\n}"
	.ascii	"\nlocal function sortKeys(a, b)\n  local ta, tb = type(a), t"
	.ascii	"ype(b)\n  -- strings and numbers are sorted numerically/alph"
	.ascii	"abetically\n  if ta == tb and (ta == 'string' or ta == 'numb"
	.ascii	"er') then return a < b end\n  local dta, dtb = defaultTypeOr"
	.ascii	"ders[ta], defaultTypeOrders[tb]\n  -- Two default types are "
	.ascii	"compared according to the defaultTypeOrders table\n  if dta "
	.ascii	"and dtb then return defaultTypeOrders[ta] < defaultTypeOrder"
	.ascii	"s[tb]\n  elseif dta     then return true  -- default types b"
	.ascii	"efore custom ones\n  elseif dtb     then return false -- cus"
	.ascii	"tom types after default ones\n  end\n  -- custom types are s"
	.ascii	"orted out alphabetically\n  return ta < tb\nend\nlocal funct"
	.ascii	"ion getDictionaryKeys(t)\n  local keys, length = {}, #t\n  f"
	.ascii	"or k,_ in pairs(t) do\n    if isDictionaryKey(k, length) the"
	.ascii	"n table.insert(keys, k) end\n  end\n  table.sort(keys, sortK"
	.ascii	"eys)\n  return keys\nend\nlocal function getToStringResultSa"
	.ascii	"fely(t, mt)\n  local __tostring = type(mt) == 'table' and ra"
	.ascii	"wget(mt, '__tostring')\n  local str, ok\n  if type(__tostrin"
	.ascii	"g) == 'function' then\n    ok, str ="
	.ascii	" pcall(__tostring, t)\n    str = ok and str or 'error: ' .. "
	.ascii	"tostring(str)\n  end\n  if type(str) == 'string' and #str > "
	.ascii	"0 then return str end\nend\nlocal maxIdsMetaTable = {\n  __i"
	.ascii	"ndex = function(self, typeName)\n    rawset(self, typeName, "
	.ascii	"0)\n    return 0\n  end\n}\nlocal idsMetaTable = {\n  __inde"
	.ascii	"x = function (self, typeName)\n    local col = setmetatable("
	.ascii	"{}, {__mode = \"kv\"})\n    rawset(self, typeName, col)\n   "
	.ascii	" return col\n  end\n}\nlocal function countTableAppearances("
	.ascii	"t, tableAppearances)\n  tableAppearances = tableAppearances "
	.ascii	"or setmetatable({}, {__mode = \"k\"})\n  if type(t) == 'tabl"
	.ascii	"e' then\n    if not tableAppearances[t] then\n      tableApp"
	.ascii	"earances[t] = 1\n      for k,v in pairs(t) do\n        count"
	.ascii	"TableAppearances(k, tableAppearances)\n        countTableApp"
	.ascii	"earances(v, tableAppearances)\n      end\n      countTableAp"
	.ascii	"pearances(getmetatable(t), tableAppearances)\n    else\n    "
	.ascii	"  tableAppearances[t] = tableAppearances[t] + 1\n    end\n  "
	.ascii	"end\n  return tableAppearances\nend\nlocal function parse_fi"
	.ascii	"lter(filter)\n  if type(filter) == 'function' then return fi"
	.ascii	"lter end\n  -- not a function, so it must be a table or tabl"
	.ascii	"e-like\n  filter = type(filter) == 'table' and filter or {fi"
	.ascii	"lter}\n  local dictionary = {}\n  for _,v in pairs(filter) d"
	.ascii	"o dictionary[v] = true end\n  return function(x) return dict"
	.ascii	"ionary[x] end\nend\nlocal function makePath(path, key)\n  lo"
	.ascii	"cal newPath, len = {}, #path\n  for i=1, len do newPath[i] ="
	.ascii	" path[i] end\n  newPath[len+1] = key\n  return newPath\nend\n"
	.ascii	"function inspect(rootObject, options)\n  options       = opt"
	.ascii	"ions or {}\n  local depth   = options.depth or math.huge\n  "
	.ascii	"local filter  = parse_filter(options.filter or {})\n  local "
	.ascii	"tableAppearances = countTableAppearances(rootObject)\n  loca"
	.ascii	"l buffer = {}\n  local maxIds = setmetatable({}, maxIdsMetaT"
	.ascii	"able)\n  local ids    = setmetatable({}, idsMetaTable)\n  lo"
	.ascii	"cal level  = 0\n  local blen   = 0 -- buffer length\n  local"
	.ascii	" function puts(...)\n    local args = {...}\n    for i=1, #a"
	.ascii	"rgs do\n      blen = blen + 1\n      buffer[blen] = tostring"
	.ascii	"(args[i])\n    end\n  end\n "
	.ascii	" local function down(f)\n    level = level + 1\n    f()\n   "
	.ascii	" level = level - 1\n  end\n  local function tabify()\n    pu"
	.ascii	"ts(\"\\n\", string.rep(\"  \", level))\n  end\n  local funct"
	.ascii	"ion commaControl(needsComma)\n    if needsComma then puts(',"
	.ascii	"') end\n    return true\n  end\n  local function alreadyVisi"
	.ascii	"ted(v)\n    return ids[type(v)][v] ~= nil\n  end\n  local fu"
	.ascii	"nction getId(v)\n    local tv = type(v)\n    local id = ids["
	.ascii	"tv][v]\n    if not id then\n      id         = maxIds[tv] + "
	.ascii	"1\n      maxIds[tv] = id\n      ids[tv][v] = id\n    end\n  "
	.ascii	"  return id\n  end\n  local putValue -- forward declaration "
	.ascii	"that needs to go before putTable & putKey\n  local function "
	.ascii	"putKey(k)\n    if isIdentifier(k) then return puts(k) end\n "
	.ascii	"   puts( \"[\" )\n    putValue(k, {})\n    puts(\"]\")\n  en"
	.ascii	"d\n  local function putTable(t, path)\n    if alreadyVisited"
	.ascii	"(t) then\n      puts('<table ', getId(t), '>')\n    elseif l"
	.ascii	"evel >= depth then\n      puts('{...}')\n    else\n      if "
	.ascii	"tableAppearances[t] > 1 then puts('<', getId(t), '>') end\n "
	.ascii	"     local dictKeys          = getDictionaryKeys(t)\n      l"
	.ascii	"ocal length            = #t\n      local mt                ="
	.ascii	" getmetatable(t)\n      local to_string_result  = getToStrin"
	.ascii	"gResultSafely(t, mt)\n      puts('{')\n      down(function()"
	.ascii	"\n        if to_string_result then\n          puts(' -- ', e"
	.ascii	"scape(to_string_result))\n          if length >= 1 then tabi"
	.ascii	"fy() end -- tabify the array values\n        end\n        lo"
	.ascii	"cal needsComma = false\n        for i=1, length do\n        "
	.ascii	"  needsComma = commaControl(needsComma)\n          puts(' ')"
	.ascii	"\n          putValue(t[i], makePath(path, i))\n        end\n"
	.ascii	"        for _,k in ipairs(dictKeys) do\n          needsComma"
	.ascii	" = commaControl(needsComma)\n          tabify()\n          p"
	.ascii	"utKey(k)\n          puts(' = ')\n          putValue(t[k], ma"
	.ascii	"kePath(path, k))\n        end\n        if mt then\n         "
	.ascii	" needsComma = commaControl(needsComma)\n          tabify()\n"
	.ascii	"          puts('<metatable> = ')\n          putValue(mt, mak"
	.ascii	"ePath(path, '<metatable>'))\n        end\n      end)\n      "
	.ascii	"if #dictKeys > 0 or mt then -- diction"
	.ascii	"ary table. Justify closing }\n        tabify()\n      elseif"
	.ascii	" length > 0 then -- array tables have one extra space before"
	.ascii	" closing }\n        puts(' ')\n      end\n      puts('}')\n "
	.ascii	"   end\n  end\n  -- putvalue is forward-declared before putT"
	.ascii	"able & putKey\n  putValue = function(v, path)\n    if filter"
	.ascii	"(v, path) then\n      puts('<filtered>')\n    else\n      lo"
	.ascii	"cal tv = type(v)\n      if tv == 'string' then\n        puts"
	.ascii	"(smartQuote(escape(v)))\n      elseif tv == 'number' or tv ="
	.ascii	"= 'boolean' or tv == 'nil' then\n        puts(tostring(v))\n"
	.ascii	"      elseif tv == 'table' then\n        putTable(v, path)\n"
	.ascii	"      else\n      "
	.string	"  puts('<',tv,' ',getId(v),'>')\n      end\n    end\n  end\n  putValue(rootObject, {})\n  return table.concat(buffer)\nend\nfunction printtable(name, table)\nprint(\"table: \", name, inspect(table), \"\\n\")\nend\nfunction printstack()\nprint(debug.traceback(), \"\\n\")\nend\n"
	.align 8
.LC16:
	.ascii	"_profiler = {}\nfunction newProfiler(variant, sampledelay)\n"
	.ascii	"if _profiler.running then\nprint(\"Profiler already running."
	.ascii	"\")\nreturn\nend\nvariant = variant or \"time\"\nif variant "
	.ascii	"~= \"time\" and variant ~= \"call\" then\nprint(\"Profiler m"
	.ascii	"ethod must be 'time' or 'call'.\")\nreturn\nend\nlocal newpr"
	.ascii	"of = {}\nfor k,v in pairs(_profiler) do\nnewprof[k] = v\nend"
	.ascii	"\nnewprof.variant = variant\nnewprof.sampledelay = sampledel"
	.ascii	"ay or 100000\nreturn newprof\nend\nfunction _profiler.start("
	.ascii	"self)\nif _profiler.running then\nreturn\nend\n_profiler.run"
	.ascii	"ning = self\nself.rawstats = {}\nself.callstack = {}\nif sel"
	.ascii	"f.variant == \"time\" then\nself.lastclock = os.clock()\ndeb"
	.ascii	"ug.sethook( _profiler_hook_wrapper_by_time, \"\", self.sampl"
	.ascii	"edelay )\nelseif self.variant == \"call\" then\ndebug.sethoo"
	.ascii	"k( _profiler_hook_wrapper_by_call, \"cr\" )\nelse\nprint(\"P"
	.ascii	"rofiler method must be 'time' or 'call'.\")\nsys.exit(1)\nen"
	.ascii	"d\nend\nfunction _profiler.stop(self)\nif _profiler.running "
	.ascii	"~= self then\nreturn\nend\ndebug.sethook( nil )\n_profiler.r"
	.ascii	"unning = nil\nend\nfunction _profiler_hook_wrapper_by_call(a"
	.ascii	"ction)\nif _profiler.running == nil then\ndebug.sethook( nil"
	.ascii	" )\nend\n_profiler.running:_internal_profile_by_call(action)"
	.ascii	"\nend\nfunction _profiler_hook_wrapper_by_time(action)\nif _"
	.ascii	"profiler.running == nil then\ndebug.sethook( nil )\nend\n_pr"
	.ascii	"ofiler.running:_internal_profile_by_time(action)\nend\nfunct"
	.ascii	"ion _profiler._internal_profile_by_call(self,action)\nlocal "
	.ascii	"caller_info = debug.getinfo( 3 )\nif caller_info == nil then"
	.ascii	"\nprint \"No caller_info\"\nreturn\nend\nlocal latest_ar = n"
	.ascii	"il\nif table.getn(self.callstack) > 0 then\nlatest_ar = self"
	.ascii	".callstack[table.getn(self.callstack)]\nend\nlocal should_no"
	.ascii	"t_profile = 0\nfor k,v in pairs(self.prevented_functions) do"
	.ascii	"\nif k == caller_info.func then\nshould_not_profile = v\nend"
	.ascii	"\nend\nif latest_ar then\nif latest_ar.should_not_profile =="
	.ascii	" 2 then\nshould_not_profile = 2\nend\nend\nif action == \"ca"
	.ascii	"ll\" then\nlocal this_ar = {}\nthis_ar.should_not_profile = "
	.ascii	"should_not_profile\nthis_ar.parent_ar = latest_ar\nthis_ar.a"
	.ascii	"non_child = 0\nthis_ar.name_child = 0\nthis_ar.children = {}"
	.ascii	"\nthis_"
	.ascii	"ar.children_time = {}\nthis_ar.clock_start = os.clock()\ntab"
	.ascii	"le.insert( self.callstack, this_ar )\nelse\nlocal this_ar = "
	.ascii	"latest_ar\nif this_ar == nil then\nreturn -- No point in doi"
	.ascii	"ng anything if no upper activation record\nend\nthis_ar.cloc"
	.ascii	"k_end = os.clock()\nthis_ar.this_time = this_ar.clock_end - "
	.ascii	"this_ar.clock_start\nif this_ar.parent_ar then\nthis_ar.pare"
	.ascii	"nt_ar.children[caller_info.func] =\n(this_ar.parent_ar.child"
	.ascii	"ren[caller_info.func] or 0) + 1\nthis_ar.parent_ar.children_"
	.ascii	"time[caller_info.func] =\n(this_ar.parent_ar.children_time[c"
	.ascii	"aller_info.func] or 0 ) +\nthis_ar.this_time\nif caller_info"
	.ascii	".name == nil then\nthis_ar.parent_ar.anon_child =\nthis_ar.p"
	.ascii	"arent_ar.anon_child + this_ar.this_time\nelse\nthis_ar.paren"
	.ascii	"t_ar.name_child =\nthis_ar.parent_ar.name_child + this_ar.th"
	.ascii	"is_time\nend\nend\nif this_ar.should_not_profile == 0 then\n"
	.ascii	"local inforec = self:_get_func_rec(caller_info.func,1)\ninfo"
	.ascii	"rec.count = inforec.count + 1\ninforec.time = inforec.time +"
	.ascii	" this_ar.this_time\ninforec.anon_child_time = inforec.anon_c"
	.ascii	"hild_time + this_ar.anon_child\ninforec.name_child_time = in"
	.ascii	"forec.name_child_time + this_ar.name_child\ninforec.func_inf"
	.ascii	"o = caller_info\nfor k,v in pairs(this_ar.children) do\ninfo"
	.ascii	"rec.children[k] = (inforec.children[k] or 0) + v\ninforec.ch"
	.ascii	"ildren_time[k] =\n(inforec.children_time[k] or 0) + this_ar."
	.ascii	"children_time[k]\nend\nend\ntable.remove( self.callstack, ta"
	.ascii	"ble.getn( self.callstack ) )\nend\nend\nfunction _profiler._"
	.ascii	"internal_profile_by_time(self,action)\nlocal timetaken = os."
	.ascii	"clock() - self.lastclock\nlocal depth = 3\nlocal at_top = tr"
	.ascii	"ue\nlocal last_caller\nlocal caller = debug.getinfo(depth)\n"
	.ascii	"while caller do\nif not caller.func then caller.func = \"(ta"
	.ascii	"il call)\" end\nif self.prevented_functions[caller.func] == "
	.ascii	"nil then\nlocal info = self:_get_func_rec(caller.func, 1, ca"
	.ascii	"ller)\ninfo.count = info.count + 1\ninfo.time = info.time + "
	.ascii	"timetaken\nif last_caller then\nif last_caller.name then\nin"
	.ascii	"fo.name_child_time = info.name_child_time + timetaken\nelse\n"
	.ascii	"info.anon_child_time = info.anon_child_time + timetaken\nend"
	.ascii	"\ninfo.children[las"
	.ascii	"t_caller.func] =\n(info.children[last_caller.func] or 0) + 1"
	.ascii	"\ninfo.children_time[last_caller.func] =\n(info.children_tim"
	.ascii	"e[last_caller.func] or 0) + timetaken\nend\nend\ndepth = dep"
	.ascii	"th + 1\nlast_caller = caller\ncaller = debug.getinfo(depth)\n"
	.ascii	"end\nself.lastclock = os.clock()\nend\nfunction _profiler._g"
	.ascii	"et_func_rec(self,func,force,info)\nlocal ret = self.rawstats"
	.ascii	"[func]\nif ret == nil and force ~= 1 then\nreturn nil\nend\n"
	.ascii	"if ret == nil then\nret = {}\nret.func = func\nret.count = 0"
	.ascii	"\nret.time = 0\nret.anon_child_time = 0\nret.name_child_time"
	.ascii	" = 0\nret.children = {}\nret.children_time = {}\nret.func_in"
	.ascii	"fo = info\nself.rawstats[func] = ret\nend\nreturn ret\nend\n"
	.ascii	"function _profiler.report( self, outfile, sort_by_total_time"
	.ascii	" )\noutfile:write\n[[Lua Profile output created by profiler."
	.ascii	"lua. Copyright Pepperfish 2002+\n]]\nlocal terms = {}\nif se"
	.ascii	"lf.variant == \"time\" then\nterms.capitalized = \"Sample\"\n"
	.ascii	"terms.single = \"sample\"\nterms.pastverb = \"sampled\"\nels"
	.ascii	"eif self.variant == \"call\" then\nterms.capitalized = \"Cal"
	.ascii	"l\"\nterms.single = \"call\"\nterms.pastverb = \"called\"\ne"
	.ascii	"lse\nassert(false)\nend\nlocal total_time = 0\nlocal orderin"
	.ascii	"g = {}\nfor func,record in pairs(self.rawstats) do\ntable.in"
	.ascii	"sert(ordering, func)\nend\nif sort_by_total_time then\ntable"
	.ascii	".sort( ordering,\nfunction(a,b) return self.rawstats[a].time"
	.ascii	" > self.rawstats[b].time end\n)\nelse\ntable.sort( ordering,"
	.ascii	"\nfunction(a,b)\nlocal arec = self.rawstats[a]\nlocal brec ="
	.ascii	" self.rawstats[b]\nlocal atime = arec.time - (arec.anon_chil"
	.ascii	"d_time + arec.name_child_time)\nlocal btime = brec.time - (b"
	.ascii	"rec.anon_child_time + brec.name_child_time)\nreturn atime > "
	.ascii	"btime\nend\n)\nend\nfor i=1,#ordering do\nlocal func = order"
	.ascii	"ing[i]\nlocal record = self.rawstats[func]\nlocal thisfuncna"
	.ascii	"me = \" \" .. self:_pretty_name(func) .. \" \"\nif string.le"
	.ascii	"n( thisfuncname ) < 42 then\nthisfuncname = string.rep( \"-\""
	.ascii	", math.floor((42 - string.len(thisfuncname))/2) ) .. thisfun"
	.ascii	"cname\nthisfuncname = thisfuncname .. string.rep( \"-\", 42 "
	.ascii	"- string.len(thisfuncname) )\nend\ntotal_time = total_time +"
	.ascii	" ( record.time - ( record.anon_child_time +\nrecord.name_"
	.ascii	"child_time ) )\noutfile:write( string.rep( \"-\", 19 ) .. th"
	.ascii	"isfuncname ..\nstring.rep( \"-\", 19 ) .. \"\\n\" )\noutfile"
	.ascii	":write( terms.capitalized..\" count:         \" ..\nstring.f"
	.ascii	"ormat( \"%4d\", record.count ) .. \"\\n\" )\noutfile:write( "
	.ascii	"\"Time spend total:       \" ..\nstring.format( \"%4.3f\", r"
	.ascii	"ecord.time ) .. \"s\\n\" )\noutfile:write( \"Time spent in c"
	.ascii	"hildren: \" ..\nstring.format(\"%4.3f\",record.anon_child_ti"
	.ascii	"me+record.name_child_time) ..\n\"s\\n\" )\nlocal timeinself "
	.ascii	"=\nrecord.time - (record.anon_child_time + record.name_child"
	.ascii	"_time)\noutfile:write( \"Time spent in self:     \" ..\nstri"
	.ascii	"ng.format(\"%4.3f\", timeinself) .. \"s\\n\" )\noutfile:writ"
	.ascii	"e( \"Time spent per \" .. terms.single .. \":  \" ..\nstring"
	.ascii	".format(\"%4.5f\", record.time/record.count) ..\n\"s/\" .. t"
	.ascii	"erms.single .. \"\\n\" )\noutfile:write( \"Time spent in sel"
	.ascii	"f per \"..terms.single..\": \" ..\nstring.format( \"%4.5f\","
	.ascii	" timeinself/record.count ) .. \"s/\" ..\nterms.single..\"\\n"
	.ascii	"\" )\nlocal added_blank = 0\nfor k,v in pairs(record.childre"
	.ascii	"n) do\nif self.prevented_functions[k] == nil or\nself.preven"
	.ascii	"ted_functions[k] == 0\nthen\nif added_blank == 0 then\noutfi"
	.ascii	"le:write( \"\\n\" ) -- extra separation line\nadded_blank = "
	.ascii	"1\nend\noutfile:write( \"Child \" .. self:_pretty_name(k) .."
	.ascii	"\nstring.rep( \" \", 41-string.len(self:_pretty_name(k)) ) ."
	.ascii	". \" \" ..\nterms.pastverb..\" \" .. string.format(\"%6d\", "
	.ascii	"v) )\noutfile:write( \" times. Took \" ..\nstring.format(\"%"
	.ascii	"4.2f\", record.children_time[k] ) .. \"s\\n\" )\nend\nend\no"
	.ascii	"utfile:write( \"\\n\" ) -- extra separation line\noutfile:fl"
	.ascii	"ush()\nend\noutfile:write( \"\\n\\n\" )\noutfile:write( \"To"
	.ascii	"tal time spent in profiled functions: \" ..\nstring.format(\""
	.ascii	"%5.3g\",total_time) .. \"s\\n\" )\noutfile:write( [[\nEND\n]"
	.ascii	"] )\noutfile:flush()\nend\nfunction _profiler.lua_report(sel"
	.ascii	"f,outfile)\nlocal ordering = {}\nlocal functonum = {}\nfor f"
	.ascii	"unc,record in pairs(self.rawstats) do\ntable.insert(ordering"
	.ascii	", func)\nfunctonum[func] = table.getn(ordering)\nend\noutfil"
	.ascii	"e:write(\n\"-- Profile generated by profiler.lua Copyright P"
	.ascii	"epperfish 2002+\\n\\n\" )\noutfile:write( \"-- Function name"
	.ascii	"s\\nfuncnames = {}\\n\" )\nfor i=1,table.getn(ordering)"
	.ascii	" do\nlocal thisfunc = ordering[i]\noutfile:write( \"funcname"
	.ascii	"s[\" .. i .. \"] = \" ..\nstring.format(\"%q\", self:_pretty"
	.ascii	"_name(thisfunc)) .. \"\\n\" )\nend\noutfile:write( \"\\n\" )"
	.ascii	"\noutfile:write( \"-- Function times\\nfunctimes = {}\\n\" )"
	.ascii	"\nfor i=1,table.getn(ordering) do\nlocal thisfunc = ordering"
	.ascii	"[i]\nlocal record = self.rawstats[thisfunc]\noutfile:write( "
	.ascii	"\"functimes[\" .. i .. \"] = { \" )\noutfile:write( \"tot=\""
	.ascii	" .. record.time .. \", \" )\noutfile:write( \"achild=\" .. r"
	.ascii	"ecord.anon_child_time .. \", \" )\noutfile:write( \"nchild=\""
	.ascii	" .. record.name_child_time .. \", \" )\noutfile:write( \"cou"
	.ascii	"nt=\" .. record.count .. \" }\\n\" )\nend\noutfile:write( \""
	.ascii	"\\n\" )\noutfile:write( \"-- Child links\\nchildren = {}\\n\""
	.ascii	" )\nfor i=1,table.getn(ordering) do\nlocal thisfunc = orderi"
	.ascii	"ng[i]\nlocal record = self.rawstats[thisfunc]\noutfile:write"
	.ascii	"( \"children[\" .. i .. \"] = { \" )\nfor k,v in pairs(recor"
	.ascii	"d.children) do\nif functonum[k] then -- non-recorded functio"
	.ascii	"ns will be ignored now\noutfile:write( functonum[k] .. \", \""
	.ascii	" )\nend\nend\noutfile:write( \"}\\n\" )\nend\noutfile:write("
	.ascii	" \"\\n\" )\noutfile:write( \"-- Child call counts\\nchildcou"
	.ascii	"nts = {}\\n\" )\nfor i=1,table.getn(ordering) do\nlocal this"
	.ascii	"func = ordering[i]\nlocal record = self.rawstats[thisfunc]\n"
	.ascii	"outfile:write( \"children[\" .. i .. \"] = { \" )\nfor k,v i"
	.ascii	"n record.children do\nif functonum[k] then -- non-recorded f"
	.ascii	"unctions will be ignored now\noutfile:write( v .. \", \" )\n"
	.ascii	"end\nend\noutfile:write( \"}\\n\" )\nend\noutfile:write( \"\\"
	.ascii	"n\" )\noutfile:write( \"-- Child call time\\nchildtimes = {}"
	.ascii	"\\n\" )\nfor i=1,table.getn(ordering) do\nlocal thisfunc = o"
	.ascii	"rdering[i]\nlocal record = self.rawstats[thisfunc];\noutfile"
	.ascii	":write( \"children[\" .. i .. \"] = { \" )\nfor k,v in pairs"
	.ascii	"(record.children) do\nif functonum[k] then -- non-recorded f"
	.ascii	"unctions will be ignored now\noutfile:write( record.children"
	.ascii	"_time[k] .. \", \" )\nend\nend\noutfile:write( \"}\\n\" )\ne"
	.ascii	"nd\noutfile:write( \"\\n\\n-- That is all.\\n\\n\" )\noutfil"
	.ascii	"e:flush()\nend\nfunction _profiler._pretty_name(self,func)\n"
	.ascii	"local info = self.rawstats[ func ].func_info\nlocal name = \""
	.ascii	"\"\nif info.what == \"Lua\" then\nname = \"L:\"\nend\nif"
	.ascii	" info.what == \"C\" then\nname = \"C:\"\nend\nif info.what ="
	.ascii	"= \"main\" then\nname = \" :\"\nend\nif info.name == nil the"
	.ascii	"n\nname = name .. \"<\"..tostring(func) .. \">\"\nelse\nname"
	.ascii	" = name .. info.name\nend\nif info.source then\nname = name\n"
	.ascii	"else\nif info.what == \"C\" then\nname = name .. \"@?\"\nels"
	.ascii	"e\nname = name .. \"@<string>\"\nend\nend\nname = name .. \""
	.ascii	":\"\nif info.what == \"C\" then\nname = name .. \"?\"\nelse\n"
	.ascii	"name = name .. info.linedefined\nend\nreturn name\nend\nfunc"
	.ascii	"tion _profiler.prevent(self, func, level)\nself.prevented_fu"
	.ascii	"nctions[func] = (level or 1)\nend\n_profiler.prevented_funct"
	.ascii	"ions = {\n[_profiler.start] = 2,\n[_profiler.stop] = 2,\n[_p"
	.ascii	"rofiler._internal_profile_by_time] = 2,\n[_"
	.string	"profiler._internal_profile_by_call] = 2,\n[_profiler_hook_wrapper_by_time] = 2,\n[_profiler_hook_wrapper_by_call] = 2,\n[_profiler.prevent] = 2,\n[_profiler._get_func_rec] = 2,\n[_profiler.report] = 2,\n[_profiler.lua_report] = 2,\n[_profiler._pretty_name] = 2\n}\n"
	.align 8
.LC17:
	.ascii	"premake.dotnet = { }\npremake.dotnet.namestyle = \"windows\""
	.ascii	"\nlocal flags =\n{\nFatalWarning   = \"/warnaserror\",\nOpti"
	.ascii	"mize       = \"/optimize\",\nOptimizeSize   = \"/optimize\","
	.ascii	"\nOptimizeSpeed  = \"/optimize\",\nSymbols        = \"/debug"
	.ascii	"\",\nUnsafe         = \"/unsafe\"\n}\nfunction premake.dotne"
	.ascii	"t.getbuildaction(fcfg)\nlocal ext = path.getextension(fcfg.n"
	.ascii	"ame):lower()\nif fcfg.buildaction == \"Compile\" or ext == \""
	.ascii	".cs\" then\nreturn \"Compile\"\nelseif fcfg.buildaction == \""
	.ascii	"Embed\" or ext == \".resx\" then\nreturn \"EmbeddedResource\""
	.ascii	"\nelseif fcfg.buildaction == \"Copy\" or ext == \".asax\" or"
	.ascii	" ext == \".aspx\" then\nreturn \"Content\"\nelse\nreturn \"N"
	.ascii	"one\"\nend\nend\nfunction premake.dotnet.getcompilervar(cfg)"
	.ascii	"\nif (_OPTIONS.dotnet == \"msnet\") then\nreturn \"csc\"\nel"
	.ascii	"seif (_OPTIONS.dotnet == \"mono\") then\nreturn \"mcs\"\nels"
	.ascii	"e\nreturn \"cscc\"\nend\nend\nfunction premake.dotnet.getfla"
	.ascii	"gs(cfg)\nlocal result = "
	.string	"table.translate(cfg.flags, flags)\nreturn result\nend\nfunction premake.dotnet.getkind(cfg)\nif (cfg.kind == \"ConsoleApp\") then\nreturn \"Exe\"\nelseif (cfg.kind == \"WindowedApp\") then\nreturn \"WinExe\"\nelseif (cfg.kind == \"SharedLib\") then\nreturn \"Library\"\nend\nend\n"
	.align 8
.LC18:
	.ascii	"premake.gcc = { }\npremake.gcc.cc     = \"gcc\"\npremake.gcc"
	.ascii	".cxx    = \"g++\"\npremake.gcc.ar     = \"ar\"\npremake.gcc."
	.ascii	"rc     = \"windres\"\npremake.gcc.llvm   = false\nlocal cfla"
	.ascii	"gs =\n{\nEnableSSE        = \"-msse\",\nEnableSSE2       = \""
	.ascii	"-msse2\",\nEnableAVX        = \"-mavx\",\nEnableAVX2       ="
	.ascii	" \"-mavx2\",\nPedanticWarnings = \"-Wall -Wextra -pedantic\""
	.ascii	",\nExtraWarnings    = \"-Wall -Wextra\",\nFatalWarnings    ="
	.ascii	" \"-Werror\",\nFloatFast        = \"-ffast-math\",\nFloatStr"
	.ascii	"ict      = \"-ffloat-store\",\nNoFramePointer   = \"-fomit-f"
	.ascii	"rame-pointer\",\nOptimize         = \"-O2\",\nOptimizeSize  "
	.ascii	"   = \"-Os\",\nOptimizeSpeed    = \"-O3\",\nSymbols         "
	.ascii	" = \"-g\",\n}\nlocal cxxflags =\n{\nCpp11        = \"-std=c+"
	.ascii	"+11\",\nCpp14        = \"-std=c++14\",\nCpp17        = \"-st"
	.ascii	"d=c++17\",\nCppLatest    = \"-std=c++2a\",\nNoExceptions = \""
	.ascii	"-fno-exceptions\",\nNoRTTI       = \"-fno-rtti\",\nUnsignedC"
	.ascii	"har = \"-funsigned-char\",\n}\nlocal objcflags =\n{\nObjcARC"
	.ascii	" = \"-fobjc-arc\",\n}\npremake.gcc.platforms =\n{\nNative = "
	.ascii	"{\ncppflags = \"-MMD -MP\",\n},\nx32 = {\ncppflags = \"-MMD "
	.ascii	"-MP\",\nflags    = \"-m32\",\n},\nx64 = {\ncppflags = \"-MMD"
	.ascii	" -MP\",\nflags    = \"-m64\",\n},\nUniversal = {\nar       ="
	.ascii	" \"libtool\",\ncppflags = \"-MMD -MP\",\nflags    = \"-arch "
	.ascii	"i386 -arch x86_64 -arch ppc -arch ppc64\",\n},\nUniversal32 "
	.ascii	"= {\nar       = \"libtool\",\ncppflags = \"-MMD -MP\",\nflag"
	.ascii	"s    = \"-arch i386 -arch ppc\",\n},\nUniversal64 = {\nar   "
	.ascii	"    = \"libtool\",\ncppflags = \"-MMD -MP\",\nflags    = \"-"
	.ascii	"arch x86_64 -arch ppc64\",\n},\nPS3 = {\ncc         = \"ppu-"
	.ascii	"lv2-g++\",\ncxx        = \"ppu-lv2-g++\",\nar         = \"pp"
	.ascii	"u-lv2-ar\",\ncppflags   = \"-MMD -MP\",\n},\nWiiDev = {\ncpp"
	.ascii	"flags    = \"-MMD -MP -I$(LIBOGC_INC) $(MACHDEP)\",\nldflags"
	.ascii	"= \"-L$(LIBOGC_LIB) $(MACHDEP)\",\ncfgsettings = [[\n  ifeq "
	.ascii	"($(strip $(DEVKITPPC)),)\n    $(error \"DEVKITPPC environmen"
	.ascii	"t variable is not set\")'\n  endif\n  include $(DEVKITPPC)/w"
	.ascii	"ii_rules']],\n},\nOrbis = {\ncc         = \"orbis-clang\",\n"
	.ascii	"cxx        = \"orbis-clang++\",\nar         = \"orbis-ar\",\n"
	.ascii	"cppflags   = \"-MMD -MP\",\n},\nEmscripten = {\ncc         ="
	.ascii	" \"$(EMSCRIPTEN)/emcc\",\ncxx        = \"$(EMSCRIPTEN)/em++\""
	.ascii	",\nar         = \"$(EMSCRIPTEN)/"
	.ascii	"emar\",\ncppflags   = \"-MMD -MP\",\n}\n}\nlocal platforms ="
	.ascii	" premake.gcc.platforms\nfunction premake.gcc.getcppflags(cfg"
	.ascii	")\nlocal flags = { }\ntable.insert(flags, platforms[cfg.plat"
	.ascii	"form].cppflags)\nif flags[1]:startswith(\"-MMD\") then\ntabl"
	.ascii	"e.insert(flags, \"-MP\")\nend\nreturn flags\nend\nfunction p"
	.ascii	"remake.gcc.getcflags(cfg)\nlocal result = table.translate(cf"
	.ascii	"g.flags, cflags)\ntable.insert(result, platforms[cfg.platfor"
	.ascii	"m].flags)\nif cfg.system ~= \"windows\" and cfg.kind == \"Sh"
	.ascii	"aredLib\" then\ntable.insert(result, \"-fPIC\")\nend\nreturn"
	.ascii	" result\nend\nfunction premake.gcc.getcxxflags(cfg)\nlocal r"
	.ascii	"esult = table.translate(cfg.flags, cxxflags)\nreturn result\n"
	.ascii	"end\nfunction premake.gcc.getobjcflags(cfg)\nreturn table.tr"
	.ascii	"anslate(cfg.flags, objcflags)\nend\nfunction premake.gcc.get"
	.ascii	"ldflags(cfg)\nlocal result = { }\nif not cfg.flags.Symbols t"
	.ascii	"hen\nif cfg.system == \"macosx\" then\nelse\ntable.insert(re"
	.ascii	"sult, \"-s\")\nend\nend\nif cfg.kind == \"Bundle\" then\ntab"
	.ascii	"le.insert(result, \"-bundle\")\nend\nif cfg.kind == \"Shared"
	.ascii	"Lib\" then\nif cfg.system == \"macosx\" then\ntable.insert(r"
	.ascii	"esult, \"-dynamiclib\")\nelse\ntable.insert(result, \"-share"
	.ascii	"d\")\nend\nif cfg.system == \"windows\" and not cfg.flags.No"
	.ascii	"ImportLib then\ntable.insert(result, '-Wl,--out-implib=\"' ."
	.ascii	". cfg.linktarget.fullpath .. '\"')\nend\nend\nif cfg.kind =="
	.ascii	" \"WindowedApp\" and cfg.system == \"windows\" then\ntable.i"
	.ascii	"nsert(result, \"-mwindows\")\nend\nlocal platform = platform"
	.ascii	"s[cfg.platform]\ntable.insert(result, platform.flags)\ntable"
	.ascii	".insert(result, platform.ldflags)\nreturn result\nend\nfunct"
	.ascii	"ion premake.gcc.getlibdirflags(cfg)\nlocal result = { }\nfor"
	.ascii	" _, value in ipairs(premake.getlinks(cfg, \"all\", \"directo"
	.ascii	"ry\")) do\ntable.insert(result, '-L\\\"' .. value .. '\\\"')"
	.ascii	"\nend\nreturn result\nend\nfunction premake.gcc.islibfile(p)"
	.ascii	"\nif path.getextension(p) == \".a\" then\nreturn true\nend\n"
	.ascii	"return false\nend\nfunction premake.gcc.getlibfiles(cfg)\nlo"
	.ascii	"cal result = {}\nfor _, value in ipairs(premake.getlinks(cfg"
	.ascii	", \"system\", \"fullpath\")) do\nif premake.gcc.islibfile(va"
	.ascii	"lue) then\ntable.insert(result, _MAKE.esc(value))\nend\nend\n"
	.ascii	"return result\nend\nfunction p"
	.ascii	"remake.gcc.getlinkflags(cfg)\nlocal result = {}\nfor _, valu"
	.ascii	"e in ipairs(premake.getlinks(cfg, \"system\", \"fullpath\"))"
	.ascii	" do\nif premake.gcc.islibfile(value) then\nvalue = path.reba"
	.ascii	"se(value, cfg.project.location, cfg.location)\ntable.insert("
	.ascii	"result, _MAKE.esc(value))\nelseif path.getextension(value) ="
	.ascii	"= \".framework\" then\ntable.insert(result, '-framework ' .."
	.ascii	" _MAKE.esc(path.getbasename(value)))\nelse\ntable.insert(res"
	.ascii	"ult, '-l' .. _MAKE.esc(path.getname(value)))\nend\nend\nretu"
	.ascii	"rn result\nend\nfunction premake.gcc.wholearchive(lib)\nif p"
	.ascii	"remake.gcc.llvm then\nreturn {\"-force_load\", lib}\nelseif "
	.ascii	"os.get() == \"macosx\" then\nreturn {\"-Wl,-force_load\", li"
	.ascii	"b}\nelse\nreturn {\"-Wl,--whole-archive\", lib, \"-Wl,--no-w"
	.ascii	"hole-archive\"}\nend\nend\nfunction premake.gcc.getarchivefl"
	.ascii	"ags(prj, cfg, ndx)\nlocal result = {}\nif cfg.platform:start"
	.ascii	"swith(\"Universal\") then\nif prj.options.ArchiveSplit then\n"
	.ascii	"error(\"gcc tool 'Universal*' platforms do not support split"
	.ascii	" archives\")\nend\ntable.insert(result, '-o')\nelse\nif (not"
	.ascii	" prj.options.ArchiveSplit) then\nif premake.gcc.llvm then\nt"
	.ascii	"able.insert(result, 'rcs')\nelse\ntable.insert(result, '-rcs"
	.ascii	"')\nend\nelse\nif premake.gcc.llvm then\nif (not ndx) then\n"
	.ascii	"table.insert(result, 'qc')\nelse\ntable.insert(result, 'cs')"
	.ascii	"\nend\nelse\nif (not ndx) then\ntable.insert(result, '-qc')\n"
	.ascii	"else\ntable.insert(result, '-cs')\nend\nend\nend\nend\nretur"
	.ascii	"n result\nend\nfunction premake.gcc.getdefines(defines)\nloc"
	.ascii	"al result = { }\nfor _,def in ipairs(defines) do\ntable.inse"
	.ascii	"rt(result, \"-D\" .. def)\nend\nreturn result\nend\nfunction"
	.ascii	" premake.gcc.getincludedirs(includedirs)\nlocal result = { }"
	.ascii	"\nfor _,dir in ipairs(includedirs) do\ntable.insert(result, "
	.ascii	"\"-I\\\"\" .. dir .. \"\\\"\")\nend\nreturn result\nend\nfun"
	.ascii	"ction premake.gcc.getquoteincludedirs(includedirs)\nlocal re"
	.ascii	"sult = { }\nfor _,dir in ipairs(includedirs) do\ntable.inser"
	.ascii	"t(result, \"-iquote \\\"\" .. dir .. \"\\\"\")\nend\nreturn "
	.ascii	"result\nend\nfunction premake.gcc.getsystemincludedirs(inclu"
	.ascii	"dedirs)\nlocal result = { }\nfor _,dir in ipairs(includedirs"
	.ascii	") do\ntable.insert(result, \"-isystem \\\"\" .. dir .. \"\\\""
	.ascii	"\")\nend\nreturn result\n"
	.string	"end\nfunction premake.gcc.getcfgsettings(cfg)\nreturn platforms[cfg.platform].cfgsettings\nend\n"
	.align 8
.LC19:
	.ascii	"premake.ghs = { }\npremake.ghs.namestyle = \"PS3\"\npremake."
	.ascii	"ghs.cc     = \"ccppc\"\npremake.ghs.cxx    = \"cxppc\"\nprem"
	.ascii	"ake.ghs.ar     = \"cxppc\"\nlocal cflags =\n{\nFatalWarnings"
	.ascii	"  = \"--quit_after_warnings\",\nOptimize       = \"-Ogeneral"
	.ascii	"\",\nOptimizeSize   = \"-Osize\",\nOptimizeSpeed  = \"-Ospee"
	.ascii	"d\",\nSymbols        = \"-g\",\n}\nlocal cxxflags =\n{\nNoEx"
	.ascii	"ceptions   = \"--no_exceptions\",\nNoRTTI         = \"--no_r"
	.ascii	"tti\",\nUnsignedChar   = \"--unsigned_chars\",\n}\npremake.g"
	.ascii	"hs.platforms =\n{\nNative = {\ncppflags = \"-MMD\",\n},\nPow"
	.ascii	"erPC = {\ncc         = \"ccppc\",\ncxx       = \"cxppc\",\na"
	.ascii	"r       = \"cxppc\",\ncppflags   = \"-MMD\",\narflags    = \""
	.ascii	"-archive -o\",\n},\nARM = {\ncc         = \"ccarm\",\ncxx   "
	.ascii	"     = \"cxarm\",\nar         = \"cxarm\",\ncppflags   = \"-"
	.ascii	"MMD\",\narflags    = \"-archive -o\",\n}\n}\nlocal platforms"
	.ascii	" = premake.ghs.platforms\nfunction premake.ghs.getcppflags(c"
	.ascii	"fg)\nlocal flags = { }\ntable.insert(flags, platforms[cfg.pl"
	.ascii	"atform].cppflags)\nreturn flags\nend\nfunction premake.ghs.g"
	.ascii	"etcflags(cfg)\nlocal result = table.translate(cfg.flags, cfl"
	.ascii	"ags)\ntable.insert(result, platforms[cfg.platform].flags)\nr"
	.ascii	"eturn result\nend\nfunction premake.ghs.getcxxflags(cfg)\nlo"
	.ascii	"cal result = table.translate(cfg.flags, cxxflags)\nreturn re"
	.ascii	"sult\nend\nfunction premake.ghs.getldflags(cfg)\nlocal resul"
	.ascii	"t = { }\nlocal platform = platforms[cfg.platform]\ntable.ins"
	.ascii	"ert(result, platform.flags)\ntable.insert(result, platform.l"
	.ascii	"dflags)\nreturn result\nend\nfunction premake.ghs.getlibdirf"
	.ascii	"lags(cfg)\nlocal result = { }\nfor _, value in ipairs(premak"
	.ascii	"e.getlinks(cfg, \"all\", \"directory\")) do\ntable.insert(re"
	.ascii	"sult, '-L' .. _MAKE.esc(value))\nend\nreturn result\nend\nfu"
	.ascii	"nction premake.ghs.getlibfiles(cfg)\nlocal result = {}\nretu"
	.ascii	"rn result\nend\nfunction premake.ghs.getlinkflags(cfg)\nloca"
	.ascii	"l result = {}\nfor _, value in ipairs(premake.getlinks(cfg, "
	.ascii	"\"system\", \"name\")) do\ntable.insert(result, '-lnk=' .. _"
	.ascii	"MAKE.esc(value))\nend\nreturn result\nend\nfunction premake."
	.ascii	"ghs.getarchiveflags(prj, cfg, ndx)\nif prj.options.ArchiveSp"
	.ascii	"lit then\nerror(\"ghs tool does not support split archives\""
	.ascii	")\nend\nlocal result = {}\nlocal platfo"
	.ascii	"rm = platforms[cfg.platform]\ntable.insert(result, platform."
	.ascii	"arflags)\nreturn result\nend\nfunction premake.ghs.getdefine"
	.ascii	"s(defines)\nlocal result = { }\nfor _,def in ipairs(defines)"
	.ascii	" do\ntable.insert(result, '-D' .. def)\nend\nreturn result\n"
	.ascii	"end\nfun"
	.string	"ction premake.ghs.getincludedirs(includedirs)\nlocal result = { }\nfor _,dir in ipairs(includedirs) do\ntable.insert(result, \"-I\" .. _MAKE.esc(dir))\nend\nreturn result\nend\nfunction premake.ghs.getcfgsettings(cfg)\nreturn platforms[cfg.platform].cfgsettings\nend\n"
	.align 8
.LC20:
	.string	"premake.msc = { }\npremake.msc.namestyle = \"windows\"\n"
	.align 8
.LC21:
	.ascii	"premake.ow = { }\npremake.ow.namestyle = \"windows\"\npremak"
	.ascii	"e.ow.cc     = \"WCL386\"\npremake.ow.cxx    = \"WCL386\"\npr"
	.ascii	"emake.ow.ar     = \"ar\"\nlocal cflags =\n{\nPedanticWarning"
	.ascii	"s = \"-wx\",\nExtraWarnings    = \"-wx\",\nFatalWarning     "
	.ascii	"= \"-we\",\nFloatFast        = \"-omn\",\nFloatStrict      ="
	.ascii	" \"-op\",\nOptimize         = \"-ox\",\nOptimizeSize     = \""
	.ascii	"-os\",\nOptimizeSpeed    = \"-ot\",\nSymbols          = \"-d"
	.ascii	"2\",\n}\nlocal cxxflags =\n{\nNoExceptions   = \"-xd\",\nNoR"
	.ascii	"TTI         = \"-xr\",\n}\npremake.ow.platforms =\n{\nNative"
	.ascii	" = {\nflags = \"\"\n},\n}\nfunction premake.ow.getcppflags(c"
	.ascii	"fg)\nreturn {}\nend\nfunction premake.ow.getcflags(cfg)\nloc"
	.ascii	"al result = table.translate(cfg.flags, cflags)\nif (cfg.flag"
	.ascii	"s.Symbols) then\ntable.insert(result, \"-hw\")   -- Watcom d"
	.ascii	"ebug format for Watcom debugger\nend\nreturn result\nend\nfu"
	.ascii	"nction premake.ow.getcxxflags(cfg)\nlocal result = table.tra"
	.ascii	"nslate(cfg.flags, cxxflags)\nreturn result\nend\nfunction pr"
	.ascii	"emake.ow.getldflags(cfg)\nlocal result = { }\nif (cfg.flags."
	.ascii	"Symbols) then\ntable.insert(result, \"op symf\")\nend\nretur"
	.ascii	"n result\nend\nfunction premake.ow.getlibfiles(cfg)\nlocal r"
	.ascii	"esult = {}\nreturn result\nend\nfunction premake.ow.getlinkf"
	.ascii	"lags(cfg)\nlocal result = { }\nreturn result\nend\nfunction "
	.ascii	"premake.ow.getdefines(defines)\nlocal result = { }\n"
	.string	"for _,def in ipairs(defines) do\ntable.insert(result, '-D' .. def)\nend\nreturn result\nend\nfunction premake.ow.getincludedirs(includedirs)\nlocal result = { }\nfor _,dir in ipairs(includedirs) do\ntable.insert(result, '-I \"' .. dir .. '\"')\nend\nreturn result\nend\n"
	.align 8
.LC22:
	.ascii	"premake.snc = { }\npremake.snc.cc     = \"snc\"\npremake.snc"
	.ascii	".cxx    = \"g++\"\npremake.snc.ar     = \"ar\"\nlocal cflags"
	.ascii	" =\n{\nPedanticWarnings = \"-Xdiag=2\",\nExtraWarnings    = "
	.ascii	"\"-Xdiag=2\",\nFatalWarnings    = \"-Xquit=2\",\n}\nlocal cx"
	.ascii	"xflags =\n{\nNoExceptions   = \"\", -- No exceptions is the "
	.ascii	"default in the SNC compiler.\nNoRTTI         = \"-Xc-=rtti\""
	.ascii	",\n}\npremake.snc.platforms =\n{\nPS3 = {\ncc         = \"pp"
	.ascii	"u-lv2-g++\",\ncxx        = \"ppu-lv2-g++\",\nar         = \""
	.ascii	"ppu-lv2-ar\",\ncppflags   = \"-MMD -MP\",\n}\n}\nlocal platf"
	.ascii	"orms = premake.snc.platforms\nfunction premake.snc.getcppfla"
	.ascii	"gs(cfg)\nlocal result = { }\ntable.insert(result, platforms["
	.ascii	"cfg.platform].cppflags)\nreturn result\nend\nfunction premak"
	.ascii	"e.snc.getcflags(cfg)\nlocal result = table.translate(cfg.fla"
	.ascii	"gs, cflags)\ntable.insert(result, platforms[cfg.platform].fl"
	.ascii	"ags)\nif cfg.kind == \"SharedLib\" then\ntable.insert(result"
	.ascii	", \"-fPIC\")\nend\nreturn result\nend\nfunction premake.snc."
	.ascii	"getcxxflags(cfg)\nlocal result = table.translate(cfg.flags, "
	.ascii	"cxxflags)\nreturn result\nend\nfunction premake.snc.getldfla"
	.ascii	"gs(cfg)\nlocal result = { }\nif not cfg.flags.Symbols then\n"
	.ascii	"table.insert(result, \"-s\")\nend\nif cfg.kind == \"SharedLi"
	.ascii	"b\" then\ntable.insert(result, \"-shared\")\nif not cfg.flag"
	.ascii	"s.NoImportLib then\ntable.insert(result, '-Wl,--out-implib=\""
	.ascii	"' .. cfg.linktarget.fullpath .. '\"')\nend\nend\nlocal platf"
	.ascii	"orm = platforms[cfg.platform]\ntable.insert(result, platform"
	.ascii	".flags)\ntable.insert(result, platform.ldflags)\nreturn resu"
	.ascii	"lt\nend\nfunction premake.snc.getlibdirflags(cfg)\nlocal res"
	.ascii	"ult = { }\nfor _, value in ipairs(premake.getlinks(cfg, \"al"
	.ascii	"l\", \"directory\")) do\ntable.insert(result, '-L' .. _MAKE."
	.ascii	"esc(value))\nend\nreturn result\nend\nfunction premake.snc.g"
	.ascii	"etlibfiles(cfg)\nlocal result = {}\nreturn result\nend\nfunc"
	.ascii	"tion premake.snc.getlinkflags(cfg)\nlocal result = {}\nfor _"
	.ascii	", value in ipairs(premake.getlinks(cfg, \"system\", \"name\""
	.ascii	")) do\ntable.insert(result, '-l' .. _MAKE.esc(value))\nend\n"
	.ascii	"return result\nend\nfunction premake.snc.getdefines(defines)"
	.ascii	"\nlocal result = { }\nfor _,def in ipairs(defines) do\ntable"
	.ascii	".insert(result, '-D' ."
	.string	". def)\nend\nreturn result\nend\nfunction premake.snc.getincludedirs(includedirs)\nlocal result = { }\nfor _,dir in ipairs(includedirs) do\ntable.insert(result, \"-I\" .. _MAKE.esc(dir))\nend\nreturn result\nend\n"
	.align 8
.LC23:
	.ascii	"premake.valac = { }\npremake.valac.valac  = \"valac\"\nprema"
	.ascii	"ke.valac.cc     = \"gcc\"\nlocal valaflags =\n{\nDisableAsse"
	.ascii	"rt             = \"--disable-assert\",               -- Disa"
	.ascii	"ble assertions\nDisableSinceCheck         = \"--disable-sinc"
	.ascii	"e-check\",          -- Do not check whether used symbols exi"
	.ascii	"st in local packages\nDisableWarnings           = \"--disabl"
	.ascii	"e-warnings\",             -- Disable warnings\nEnableCheckin"
	.ascii	"g            = \"--enable-checking\",              -- Enable"
	.ascii	" additional run-time checks\nEnableDeprecated          = \"-"
	.ascii	"-enable-deprecated\",            -- Enable deprecated featur"
	.ascii	"es\nEnableExperimental        = \"--enable-experimental\",  "
	.ascii	"        -- Enable experimental features\nEnableExperimentalN"
	.ascii	"onNull = \"--enable-experimental-non-null\", -- Enable exper"
	.ascii	"imental enhancements for non-null types\nEnableGObjectTracin"
	.ascii	"g      = \"--enable-gobject-tracing\",       -- Enable GObje"
	.ascii	"ct creation tracing\nEnableMemProfiler         = \"--enable-"
	.ascii	"mem-profiler\",          -- Enable GLib memory profiler\nEna"
	.ascii	"bleThreading           = \"--thread\",                      "
	.ascii	" -- Enable multithreading support\nFatalWarnings            "
	.ascii	" = \"--fatal-warnings\",               -- Treat warnings as "
	.ascii	"fatal\nHideInternal              = \"--hide-internal\",     "
	.ascii	"           -- Hide symbols marked as internal\nNoStdPkg     "
	.ascii	"             = \"--nostdpkg\",                     -- Do not"
	.ascii	" include standard packages\nOptimize                  = \"-X"
	.ascii	" -O2\",\nOptimizeSize              = \"-X -Os\",\nOptimizeSp"
	.ascii	"eed             = \"-X -O3\",\nSymbols                   = \""
	.ascii	"-g\",                             -- Produce debug informati"
	.ascii	"on\n}\npremake.valac.platforms = {}\nfunction premake.valac."
	.ascii	"getvalaflags(cfg)\nreturn table.translate(cfg.flags, valafla"
	.ascii	"gs)\nend\nfunction premake.valac.getlinks(links)\nlocal resu"
	.ascii	"lt = { }\nfor _, pkg in ipairs(links) do\ntable.insert(resul"
	.ascii	"t, '--pkg ' .. pkg)\nend\nreturn result\nend\nfunction prema"
	.ascii	"ke.valac.getdefines(defines)\nlocal result = { }\nfor _, def"
	.ascii	" in ipairs(defines) do\ntable.insert(result, '-D ' .. def)\n"
	.ascii	"end\nreturn result\nend\nfunction prem"
	.ascii	"ake.valac.getbuildoptions(buildoptions)\nlocal result = { }\n"
	.ascii	"f"
	.string	"or _, def in ipairs(buildoptions) do\ntable.insert(result, '-X ' .. def)\nend\nreturn result\nend\nfunction premake.valac.getvapidirs(vapidirs)\nlocal result = { }\nfor _, def in ipairs(vapidirs) do\ntable.insert(result, '--vapidir=' .. def)\nend\nreturn result\nend\n"
	.align 8
.LC24:
	.ascii	"premake.swift = { }\npremake.swift.swiftc   = \"swiftc\"\npr"
	.ascii	"emake.swift.swift    = \"swift\"\npremake.swift.cc       = \""
	.ascii	"gcc\"\npremake.swift.ar       = \"ar\"\npremake.swift.ld    "
	.ascii	"   = \"ld\"\npremake.swift.dsymutil = \"dsymutil\"\nlocal sw"
	.ascii	"iftcflags =\n{\nSymbols                   = \"-g\",         "
	.ascii	"                    -- Produce debug information\nDisableWar"
	.ascii	"nings           = \"--suppress-warnings\",            -- Dis"
	.ascii	"able warnings\nFatalWarnings             = \"--warnings-as-e"
	.ascii	"rrors\",           -- Treat warnings as fatal\nOptimize     "
	.ascii	"             = \"-O -whole-module-optimization\",\nOptimizeS"
	.ascii	"ize              = \"-O -whole-module-optimization\",\nOptim"
	.ascii	"izeSpeed             = \"-Ounchecked -whole-module-optimizat"
	.ascii	"ion\",\nMinimumWarnings           = \"-minimum-warnings\",\n"
	.ascii	"}\nlocal swiftlinkflags = {\nStaticRuntime             = \"-"
	.ascii	"static-stdlib\",\n}\npremake.swift.platforms = {\nNative = {"
	.ascii	"\nswiftcflags    = \"\",\nswiftlinkflags = \"\",\n},\nx64 = "
	.ascii	"{\nswiftcflags    = \"\",\nswiftlinkflags = \"\",\n}\n}\nloc"
	.ascii	"al platforms = premake.swift.platforms\nfunction premake.swi"
	.ascii	"ft.get_sdk_path(cfg)\nreturn string.trim(os.outputof(\"xcrun"
	.ascii	" --show-sdk-path\"))\nend\nfunction premake.swift.get_sdk_pl"
	.ascii	"atform_path(cfg)\nreturn string.trim(os.outputof(\"xcrun --s"
	.ascii	"how-sdk-platform-path\"))\nend\nfunction premake.swift.get_t"
	.ascii	"oolchain_path(cfg)\nreturn string.trim(os.outputof(\"xcode-s"
	.ascii	"elect -p\")) .. \"/Toolchains/XcodeDefault.xctoolchain\"\nen"
	.ascii	"d\nfunction premake.swift.gettarget(cfg)\nreturn \"-target x"
	.ascii	"86_64-apple-macosx10.11\"\nend\nfunction premake.swift.getsw"
	.ascii	"iftcflags(cfg)\nlocal result = table.translate(cfg.flags, sw"
	.ascii	"iftcflags)\ntable.insert(result, platforms[cfg.platform].swi"
	.ascii	"ftcflags)\nresult = table.join(result, cfg.buildoptions_swif"
	.ascii	"t)\nif cfg.kind == \"SharedLib\" or cfg.kind == \"StaticLib\""
	.ascii	" then\ntable.insert(result, \"-parse-as-library\")\nend\ntab"
	.ascii	"le.insert(result, premake.swift.gettarget(cfg))\nreturn resu"
	.ascii	"lt\nend\nfunction premake.swift.getswiftlinkflags(cfg)\nloca"
	.ascii	"l result = table.translate(cfg.flags, swiftlinkflags)\ntable"
	.ascii	".insert(result, platforms[cfg.platform].swiftlinkflags)\nres"
	.ascii	"ult = "
	.ascii	"table.join(result, cfg.linkoptions_swift)\nif cfg.kind == \""
	.ascii	"SharedLib\" or cfg.kind == \"StaticLib\" then\ntable.insert("
	.ascii	"result, \"-emit-library\")\nelse\ntable.insert(result, \"-em"
	.ascii	"it-executable\")\nend\ntable.insert(result, premake.swift.ge"
	.ascii	"ttarget(cfg))\nreturn result\nend\nfunction premake.swift.ge"
	.ascii	"tmodulemaps(cfg)\nlocal maps = {}\nif next(cfg.swiftmodulema"
	.ascii	"ps) then\nfor _, mod in ipairs(cfg.swiftmodulemaps) do\ntabl"
	.ascii	"e.insert(maps, string.format(\"-Xcc -fmodule-map-file=%s\", "
	.ascii	"mod))\nend\nend\nreturn maps\nend\nfunction premake.swift.ge"
	.ascii	"tlibdirflags(cfg)\nreturn premake.gcc.getlibdirflags(cfg)\ne"
	.ascii	"nd\nfunction premake.swift.getldflags(cfg)\nlocal result = {"
	.ascii	" platforms[cfg.platform].ldflags }\nlocal links = premake.ge"
	.ascii	"tlinks(cfg, \"siblings\", \"basename\")\nfor _,v in ipairs(l"
	.ascii	"inks) do\nif path.getextension(v) == \"."
	.string	"framework\" then\ntable.insert(result, \"-framework \"..v)\nelse\ntable.insert(result, \"-l\"..v)\nend\nend\nreturn result\nend\nfunction premake.swift.getlinkflags(cfg)\nreturn premake.gcc.getlinkflags(cfg)\nend\nfunction premake.swift.getarchiveflags(cfg)\nreturn \"\"\nend\n"
	.align 8
.LC25:
	.ascii	"function premake.checkprojects()\nlocal action = premake.act"
	.ascii	"ion.current()\nfor sln in premake.solution.each() do\nif (#s"
	.ascii	"ln.projects == 0) then\nreturn nil, \"solution '\" .. sln.na"
	.ascii	"me .. \"' needs at least one project\"\nend\nif (#sln.config"
	.ascii	"urations == 0) then\nreturn nil, \"solution '\" .. sln.name "
	.ascii	".. \"' needs configurations\"\nend\nfor prj in premake.solut"
	.ascii	"ion.eachproject(sln) do\nif (not prj.language) then\nreturn "
	.ascii	"nil, \"project '\" ..prj.name .. \"' needs a language\"\nend"
	.ascii	"\nif (action.valid_languages) then\nif (not table.contains(a"
	.ascii	"ction.valid_languages, prj.language)) then\nreturn nil, \"th"
	.ascii	"e \" .. action.shortname .. \" action does not support \" .."
	.ascii	" prj.language .. \" projects\"\nend\nend\nfor cfg in premake"
	.ascii	".eachconfig(prj) do\nif (not cfg.kind) then\nreturn nil, \"p"
	.ascii	"roject '\" ..prj.name .. \"' needs a kind in configuration '"
	.ascii	"\" .. cfg.name .. \"'\"\nend\nif (action.valid_kinds) then\n"
	.ascii	"if (not table.contains(action.valid_kinds, cfg.kind)) then\n"
	.ascii	"return nil, \"the \" .. action.shortname .. \" action does n"
	.ascii	"ot support \" .. cfg.kind .. \" projects\"\nend\nend\nend\ni"
	.ascii	"f action.oncheckproject then\naction.oncheckproject(prj)\nen"
	.ascii	"d\nend\nend\nreturn true\nend\nfunction premake.checktools()"
	.ascii	"\nlocal action = premake.action.current()\nif (not action.va"
	.ascii	"lid_tools) then \nreturn true \nend\nfor tool, values in pai"
	.ascii	"rs(action.valid_tools) d"
	.string	"o\nif (_OPTIONS[tool]) then\nif (not table.contains(values, _OPTIONS[tool])) then\nreturn nil, \"the \" .. action.shortname .. \" action does not support /\" .. tool .. \"=\" .. _OPTIONS[tool] .. \" (yet)\"\nend\nelse\n_OPTIONS[tool] = values[1]\nend\nend\nreturn true\nend\n"
	.align 8
.LC26:
	.ascii	"function premake.showhelp()\nprintf(\"\")\nprintf(\"Usage: g"
	.ascii	"enie [options] action [arguments]\")\nprintf(\"\")\nprintf(\""
	.ascii	"OPTIONS\")\nprintf(\"\")\nfor option in premake.option.each("
	.ascii	") do\nlocal trigger = option.trigger\nlocal description = op"
	.ascii	"tion.description\nif (option.value) then trigger = trigger ."
	.ascii	". \"=\" .. option.value end\nif (option.allowed) then descri"
	.ascii	"ption = description .. \"; one of:\" end\nprintf(\" --%-15s "
	.ascii	"%s\", trigger, description)\nif (option.allowed) then\nfor _"
	.ascii	", value in ipairs(option.allowed) do\nprintf(\"     %-14s %s"
	.ascii	"\", value[1"
	.string	"], value[2])\nend\nend\nprintf(\"\")\nend\nprintf(\"ACTIONS\")\nprintf(\"\")\nfor action in premake.action.each() do\nprintf(\" %-17s %s\", action.trigger, action.description)\nend\nprintf(\"\")\nprintf(\"For additional information, see https://github.com/bkaradzic/genie\")\nend\n"
	.align 8
.LC27:
	.ascii	"premake._filelevelconfig = false\npremake._checkgenerate = t"
	.ascii	"rue\nfunction premake.generate(obj, filename, callback)\nloc"
	.ascii	"al prev  = io.capture()\nlocal abort = (callback(obj) == fal"
	.ascii	"se)\nlocal new   = io.endcapture(prev)\nif abort then\nprema"
	.ascii	"ke.stats.num_skipped = premake.stats.num_skipped + 1\nreturn"
	.ascii	"\nend\nfilename = premake.project.getfilename(obj, filename)"
	.ascii	"\nif (premake._checkgenerate) then\nlocal delta = false\nloc"
	.ascii	"al f, err = io.open(filename, \"rb\")\nif (not f) then\nif s"
	.ascii	"tring.find(err, \"No such file or directory\") then\ndelta ="
	.ascii	" true\nelse\nerror(err, 0)\nend\nelse\nlocal existing = f:re"
	.ascii	"ad(\"*all\")\nif existing ~= new then\ndelta = true\nend\nf:"
	.ascii	"close()\nend\nif delta then\nprintf(\"Generating %q\", filen"
	.ascii	"ame)\nlocal f, err = io.open(filename, \"wb\")\nif (not f) t"
	.ascii	"hen\nerror(err, 0)\nend\nf:write(new)\nf:close()\npremake.st"
	.ascii	"ats.num_generated = premake.stats.num_generated + 1\nelse\np"
	.ascii	"remake.stats.num_skipped = premake.stats.num_skipped + 1\nen"
	.ascii	"d\nelse\nprintf(\"Generating %q\", filename)\nlocal f, err ="
	.ascii	" io.open(filename, \"wb\")\nif (not f) then\nerror(err, 0)\n"
	.ascii	"end\nf:write(new)\nf:close()\npremake.stats.num_generated = "
	.ascii	"premake.stats.num_generated + 1\nend\nend\nfunction premake."
	.ascii	"findDefaultScript(dir, search_upwards)\nsearch_upwards = sea"
	.ascii	"rch_upwards or true\nlocal last = \"\"\nwhile dir ~= last do"
	.ascii	"\nfor _, name in ipairs({ \"genie.lua\", \"solution.lua\", \""
	.ascii	"premake4.lua\" }) do\nlocal script0 = dir .. \"/\" .. name\n"
	.ascii	"if (os.isfile(script0)) then\nr"
	.string	"eturn dir, name\nend\nlocal script1 = dir .. \"/scripts/\" .. name\nif (os.isfile(script1)) then\nreturn dir .. \"/scripts/\", name\nend\nend\nlast = dir\ndir  = path.getabsolute(dir .. \"/..\")\nif dir == \".\" or not search_upwards then break end\nend\nreturn nil, nil\nend\n"
	.align 8
.LC28:
	.string	"iter = {}\nfunction iter.sortByKeys(arr, f)\nlocal a = table.keys(arr)\ntable.sort(a, f)\nlocal i = 0\nreturn function()\ni = i + 1\nif a[i] ~= nil then \nreturn a[i], arr[a[i]]\nend\nend\nend\n"
	.align 8
.LC29:
	.ascii	"Set_mt = {}\nfunction Set(t)\nlocal set = {}\nfor k, l in ip"
	.ascii	"airs(t) do \nset[l] = true \nend\nsetmetatable(set, Set_mt)\n"
	.ascii	"return set\nend\nfunction Set_mt.union(a, b)\nlocal res = Se"
	.ascii	"t{}\nfor k in pairs(a) do res[k] = true end\nfor k in pairs("
	.ascii	"b) do res[k] = true end\nreturn res\nend\nfunction Set_mt.in"
	.ascii	"tersection(a, b)\nlocal res = Set{}\nfor k in pairs(a) do\nr"
	.ascii	"es[k] = b[k]\nend\nreturn res\nend\nlocal function get_cache"
	.ascii	"(a)\nif not rawget(a, \"__cache\") then\nrawset(a, \"__cache"
	.ascii	"\", Set_mt.totable(a))\nend\nreturn rawget(a, \"__cache\")\n"
	.ascii	"end\nfunction Set_mt.len(a)\nreturn #get_cache(a)\nend\nfunc"
	.ascii	"tion Set_mt.implode(a, sep)\nreturn table.concat(get_cache(a"
	.ascii	"), sep)\nend\nfunction Set_mt.totable(a)\nlocal res = {}\nfo"
	.ascii	"r k in pairs(a) do\ntable.insert(res, k)\nend\nreturn res\ne"
	.ascii	"nd\nfunction Set_mt.difference(a, b)\nif getmetatable(b) ~= "
	.ascii	"Set_mt then\nif type(b) ~= \"table\" then\nerror(type(b)..\""
	.ascii	" is not a Set or table\")\nend\nb=Set(b)\nend\nlocal res = S"
	.ascii	"et{}\nfor k in pairs(a) do\nres[k] = not b[k] or nil\nend\nr"
	.ascii	"awset(res, \"__cache\", nil)\nreturn res\nend\nfunction Set_"
	.ascii	"mt.__in"
	.string	"dex(a, i)\nif type(i) == \"number\" then\nreturn get_cache(a)[i]\nend\nreturn Set_mt[i] or rawget(a, i)\nend\nSet_mt.__add = Set_mt.union\nSet_mt.__mul = Set_mt.intersection\nSet_mt.__sub = Set_mt.difference\nSet_mt.__len = Set_mt.len\nSet_mt.__concat = Set_mt.implode"
	.align 8
.LC30:
	.ascii	"premake.cmake = { }\nnewaction {\ntrigger         = \"cmake\""
	.ascii	",\nshortname       = \"CMake\",\ndescription     = \"Generat"
	.ascii	"e CMake project files\",\nvalid_kinds     = { \"ConsoleApp\""
	.ascii	", \"WindowedApp\", \"StaticLib\", \"SharedLib\", \"Bundle\" "
	.ascii	"},\nvalid_languages = { \"C\", \"C++\" },\nvalid_tools     ="
	.ascii	" {\ncc   = { \"gcc\" },\n},\nonsolution = function(sln)\npre"
	.ascii	"make.generate(sln, \"CMakeLists.txt\", premake.cmake.workspa"
	.ascii	"ce)\nend,\no"
	.string	"nproject = function(prj)\npremake.generate(prj, \"%%/CMakeLists.txt\", premake.cmake.project)\nend,\noncleansolution = function(sln)\npremake.clean.file(sln, \"CMakeLists.txt\")\nend,\noncleanproject = function(prj)\npremake.clean.file(prj, \"%%/CMakeLists.txt\")\nend\n}"
	.align 8
.LC31:
	.ascii	"function premake.cmake.workspace(sln)\nif (sln.location ~= _"
	.ascii	"WORKING_DIR) then\nlocal name = string.format(\"%s/CMakeList"
	.ascii	"s.txt\", _WORKING_DIR)\nlocal f, err = io.open(name, \"wb\")"
	.ascii	"\nif (not f) then\nerror(err, 0)\nend\nf:write('# CMakeLists"
	.ascii	" autogenerated by GENie\\n')\nf:write('cmake_minimum_require"
	.ascii	"d(VERSION 2.8.4)\\n')\nf:write('\\n')\nf:write('add_subdirec"
	.ascii	"tory('.. path.getrelative(_"
	.string	"WORKING_DIR, sln.location) ..')\\n')\nf:close()\nend\n_p('# CMakeLists autogenerated by GENie')\n_p('cmake_minimum_required(VERSION 2.8.4)')\n_p('')\nfor i,prj in ipairs(sln.projects) do\nlocal name = premake.esc(prj.name)\n_p('add_subdirectory(%s)', name)\nend\nend\n"
	.align 8
.LC32:
	.ascii	"local cmake = premake.cmake\nlocal tree = premake.tree\nloca"
	.ascii	"l includestr = 'include_directories(../%s)'\nlocal definestr"
	.ascii	" = 'add_definitions(-D%s)'\nlocal function is_excluded(prj, "
	.ascii	"cfg, file)\n    if table.icontains(prj.excludes, file) then\n"
	.ascii	"        return true\n    end\n    if table.icontains(cfg.exc"
	.ascii	"ludes, file) then\n        return true\n    end\n    return "
	.ascii	"false\nend\nfunction cmake.excludedFiles(prj, cfg, src)\n   "
	.ascii	" for _, v in ipairs(src) do\n        if (is_excluded(prj, cf"
	.ascii	"g, v)) then\n            _p(1, 'list(REMOVE_ITEM source_list"
	.ascii	" ../%s)', v)\n        end\n    end\nend\nfunction cmake.list"
	.ascii	"(value)\n    if #value > 0 then\n        return \" \" .. tab"
	.ascii	"le.concat(value, \" \")\n    else\n        return \"\"\n    "
	.ascii	"end\nend\nfunction cmake.files(prj)\n    local ret = {}\n   "
	.ascii	" local tr = premake.project.buildsourcetree(prj)\n    tree.t"
	.ascii	"raverse(tr, {\n        onbranchenter = function(node, depth)"
	.ascii	"\n        end,\n        onbranchexit = function(node, depth)"
	.ascii	"\n        end,\n        onleaf = function(node, depth)\n    "
	.ascii	"        assert(node, \"unexpected empty node\")\n           "
	.ascii	" if node.cfg then\n                table.insert(ret, node.cf"
	.ascii	"g.name)\n                _p(1, '../%s', node.cfg.name)\n    "
	.ascii	"        end\n        end,\n    }, true, 1)\n    return ret\n"
	.ascii	"end\nfunction cmake.header(prj)\n    _p('# %s project autoge"
	.ascii	"nerated by GENie', premake.action.current().shortname)\n    "
	.ascii	"_p('cmake_minimum_required(VERSION 2.8.4)')\n    _p('')\n   "
	.ascii	" _p('project(%s)', premake.esc(prj.name))\nend\nfunction cma"
	.ascii	"ke.customtasks(prj)\n    local dirs = {}\n    local tasks = "
	.ascii	"{}\n    for _, custombuildtask in ipairs(prj.custombuildtask"
	.ascii	" or {}) do\n        for _, buildtask in ipairs(custombuildta"
	.ascii	"sk or {}) do\n            table.insert(tasks, buildtask)\n  "
	.ascii	"          local d = string.format(\"${CMAKE_CURRENT_SOURCE_D"
	.ascii	"IR}/../%s\", path.getdirectory(path.getrelative(prj.location"
	.ascii	", buildtask[2])))\n            if not table.contains(dirs, d"
	.ascii	") then\n                table.insert(dirs, d)\n             "
	.ascii	"   _p('file(MAKE_DIRECTORY \\\"%s\\\")', d)\n            end"
	.ascii	"\n        end\n    end\n    _p('')\n  "
	.ascii	"  for _, buildtask in ipairs(tasks) do\n        local deps ="
	.ascii	" string.format(\"${CMAKE_CURRENT_SOURCE_DIR}/../%s \", path."
	.ascii	"getrelative(prj.location, buildtask[1]))\n        local outp"
	.ascii	"uts = string.format(\"${CMAKE_CURRENT_SOURCE_DIR}/../%s \", "
	.ascii	"path.getrelative(prj.location, buildtask[2]))\n        local"
	.ascii	" msg = \"\"\n        for _, depdata in ipairs(buildtask[3] o"
	.ascii	"r {}) do\n            deps = deps .. string.format(\"${CMAKE"
	.ascii	"_CURRENT_SOURCE_DIR}/../%s \", path.getrelative(prj.location"
	.ascii	", depdata))\n        end\n        _p('add_custom_command(')\n"
	.ascii	"        _p(1, 'OUTPUT %s', outputs)\n        _p(1, 'DEPENDS "
	.ascii	"%s', deps)\n        for _, cmdline in ipairs(buildtask[4] or"
	.ascii	" {}) do\n            if (cmdline:sub(1, 1) ~= \"@\") then\n "
	.ascii	"               local cmd = cmdline\n                local nu"
	.ascii	"m = 1\n                for _, depdata in ipairs(buildtask[3]"
	.ascii	" or {}) do\n                    cmd = string.gsub(cmd, \"%$%"
	.ascii	"(\" .. num .. \"%)\", string.format(\"${CMAKE_CURRENT_SOURCE"
	.ascii	"_DIR}/../%s \", path.getrelative(prj.location, depdata)))\n "
	.ascii	"                   num = num + 1\n                end\n     "
	.ascii	"           cmd = string.gsub(cmd, \"%$%(<%)\", string.format"
	.ascii	"(\"${CMAKE_CURRENT_SOURCE_DIR}/../%s \", path.getrelative(pr"
	.ascii	"j.location, buildtask[1])))\n                cmd = string.gs"
	.ascii	"ub(cmd, \"%$%(@%)\", outputs)\n                _p(1, 'COMMAN"
	.ascii	"D %s', cmd)\n            else\n                msg = cmdline"
	.ascii	"\n            end\n        end\n        _p(1, 'COMMENT \\\"%"
	.ascii	"s\\\"', msg)\n        _p(')')\n        _p('')\n    end\nend\n"
	.ascii	"function cmake.depRules(prj)\n    local maintable = {}\n    "
	.ascii	"for _, dependency in ipairs(prj.dependency) do\n        for "
	.ascii	"_, dep in ipairs(dependency) do\n            if path.issourc"
	.ascii	"efile(dep[1]) then\n                local dep1 = premake.esc"
	.ascii	"(path.getrelative(prj.location, dep[1]))\n                lo"
	.ascii	"cal dep2 = premake.esc(path.getrelative(prj.location, dep[2]"
	.ascii	"))\n                if not maintable[dep1] then maintable[de"
	.ascii	"p1] = {} end\n                table.insert(maintable[dep1], "
	.ascii	"dep2)\n            end\n        end\n    end\n    for key, _"
	.ascii	" in pairs(maintable) do\n  "
	.ascii	"      local deplist = {}\n        local depsname = string.fo"
	.ascii	"rmat('%s_deps', path.getname(key))\n        for _, d2 in pai"
	.ascii	"rs(maintable[key]) do\n            table.insert(deplist, d2)"
	.ascii	"\n        end\n        _p('set(')\n        _p(1, depsname)\n"
	.ascii	"        for _, v in pairs(deplist) do\n            _p(1, '${"
	.ascii	"CMAKE_CURRENT_SOURCE_DIR}/../%s', v)\n        end\n        _"
	.ascii	"p(')')\n        _p('')\n        _p('set_source_files_propert"
	.ascii	"ies(')\n        _p(1, '\\\"${CMAKE_CURRENT_SOURCE_DIR}/../%s"
	.ascii	"\\\"', key)\n        _p(1, 'PROPERTIES OBJECT_DEPENDS \\\"${"
	.ascii	"%s}\\\"', depsname)\n        _p(')')\n        _p('')\n    en"
	.ascii	"d\nend\nfunction cmake.commonRules(conf, str)\n    local Dup"
	.ascii	"es = {}\n    local t2 = {}\n    for _, cfg in ipairs(conf) d"
	.ascii	"o\n        local cfgd = iif(str == includestr, cfg.includedi"
	.ascii	"rs, cfg.defines)\n        for _, v in ipairs(cfgd) do\n     "
	.ascii	"       if(t2[v] == #conf - 1) then\n                _p(str, "
	.ascii	"v)\n                table.insert(Dupes, v)\n            end\n"
	.ascii	"            if not t2[v] then\n                t2[v] = 1\n  "
	.ascii	"          else\n                t2[v] = t2[v] + 1\n         "
	.ascii	"   end\n        end\n    end\n    return Dupes\nend\nfunctio"
	.ascii	"n cmake.cfgRules(cfg, dupes, str)\n    for _, v in ipairs(cf"
	.ascii	"g) do\n        if (not table.icontains(dupes, v)) then\n    "
	.ascii	"        _p(1, str, v)\n        end\n    end\nend\nfunction c"
	.ascii	"make.removeCrosscompiler(platforms)\n    for i = #platforms,"
	.ascii	" 1, -1 do\n        if premake.platforms[platforms[i]].iscros"
	.ascii	"scompiler then\n            table.remove(platforms, i)\n    "
	.ascii	"    end\n    end\nend\nfunction cmake.project(prj)\n    io.i"
	.ascii	"ndent = \"  \"\n    cmake.header(prj)\n    _p('set(')\n    _"
	.ascii	"p('source_list')\n    local source_files = cmake.files(prj)\n"
	.ascii	"    _p(')')\n    _p('')\n    local nativeplatform = iif(os.i"
	.ascii	"s64bit(), \"x64\", \"x32\")\n    local cc = premake.gettool("
	.ascii	"prj)\n    local platforms = premake.filterplatforms(prj.solu"
	.ascii	"tion, cc.platforms, \"Native\")\n    cmake.removeCrosscompil"
	.ascii	"er(platforms)\n    local configurations = {}\n    for _, pla"
	.ascii	"tform in ipairs(platforms) do\n        for cfg in premake.ea"
	.ascii	"chconfig(prj, platform) do\n            -"
	.ascii	"- TODO: Extend support for 32-bit targets on 64-bit hosts\n "
	.ascii	"           if cfg.platform == nativeplatform then\n         "
	.ascii	"       table.insert(configurations, cfg)\n            end\n "
	.ascii	"       end\n    end\n    local commonIncludes = cmake.common"
	.ascii	"Rules(configurations, includestr)\n    local commonDefines ="
	.ascii	" cmake.commonRules(configurations, definestr)\n    _p('')\n "
	.ascii	"   for _, cfg in ipairs(configurations) do\n        _p('if(C"
	.ascii	"MAKE_BUILD_TYPE MATCHES \\\"%s\\\")', cfg.name)\n        -- "
	.ascii	"list excluded files\n        cmake.excludedFiles(prj, cfg, s"
	.ascii	"ource_files)\n        -- add includes directories\n        c"
	.ascii	"make.cfgRules(cfg.includedirs, commonIncludes, includestr)\n"
	.ascii	"        -- add build defines\n        cmake.cfgRules(cfg.def"
	.ascii	"ines, commonDefines, definestr)\n        -- set CXX flags\n "
	.ascii	"       _p(1, 'set(CMAKE_CXX_FLAGS \\\"${CMAKE_CXX_FLAGS} %s\\"
	.ascii	"\")', cmake.list(table.join(cc.getcppflags(cfg), cc.getcflag"
	.ascii	"s(cfg), cc.getcxxflags(cfg), cfg.buildoptions, cfg.buildopti"
	.ascii	"ons_cpp)))\n        -- set C flags\n        _p(1, 'set(CMAKE"
	.ascii	"_C_FLAGS \\\"${CMAKE_C_FLAGS} %s\\\")', cmake.list(table.joi"
	.ascii	"n(cc.getcppflags(cfg), cc.getcflags(cfg), cfg.buildoptions, "
	.ascii	"cfg.buildoptions_c)))\n        _p('endif()')\n        _p('')"
	.ascii	"\n    end\n    -- force CPP if needed\n    if (prj.options.F"
	.ascii	"orceCPP) then\n        _p('set_source_files_properties(${sou"
	.ascii	"rce_list} PROPERTIES LANGUAGE CXX)')\n    end\n    -- add cu"
	.ascii	"stom tasks\n    cmake.customtasks(prj)\n    -- per-dependenc"
	.ascii	"y build rules\n    cmake.depRules(prj)\n    for _, cfg in ip"
	.ascii	"airs(configurations) do\n        _p('if(CMAKE_BUILD_TYPE MAT"
	.ascii	"CHES \\\"%s\\\")', cfg.name)\n        if (prj.kind == 'Stati"
	.ascii	"cLib') then\n            _p(1, 'add_library(%s STATIC ${sour"
	.ascii	"ce_list})', premake.esc(cfg.buildtarget.basename))\n        "
	.ascii	"end\n        if (prj.kind == 'SharedLib') then\n            "
	.ascii	"_p(1, 'add_library(%s SHARED ${source_list})', premake.esc(c"
	.ascii	"fg.buildtarget.basename))\n        end\n        if (prj.kind"
	.ascii	" == 'ConsoleApp' or prj.kind == 'WindowedApp') then\n       "
	.ascii	"     _p(1, 'add_executable(%s ${source_list})', premake.esc("
	.ascii	"cfg.buildtarget."
	.ascii	"basename))\n"
	.string	"            _p(1, 'target_link_libraries(%s%s%s)', premake.esc(cfg.buildtarget.basename), cmake.list(premake.esc(premake.getlinks(cfg, \"siblings\", \"basename\"))), cmake.list(cc.getlinkflags(cfg)))\n        end\n        _p('endif()')\n        _p('')\n    end\nend"
	.align 8
.LC33:
	.ascii	"_MAKE = { }\npremake.make = { }\nlocal make = premake.make\n"
	.ascii	"function _MAKE.esc(value)\nlocal result\nif (type(value) == "
	.ascii	"\"table\") then\nresult = { }\nfor _,v in ipairs(value) do\n"
	.ascii	"table.insert(result, _MAKE.esc(v))\nend\nreturn result\nelse"
	.ascii	"\nresult = value:gsub(\"\\\\\", \"\\\\\\\\\")\nresult = resu"
	.ascii	"lt:gsub(\" \", \"\\\\ \")\nresult = result:gsub(\"%%(\", \"\\"
	.ascii	"\\%(\")\nresult = result:gsub(\"%%)\", \"\\\\%)\")\nresult ="
	.ascii	" result:gsub(\"$\\\\%((.-)\\\\%)\", \"$%(%1%)\")\nreturn res"
	.ascii	"ult\nend\nend\nfunction _MAKE.escquote(value)\nlocal result\n"
	.ascii	"if (type(value) == \"table\") then\nresult = { }\nfor _,v in"
	.ascii	" ipairs(value) do\ntable.insert(result, _MAKE.escquote(v))\n"
	.ascii	"end\nreturn result\nelse\nresult = value:gsub(\" \", \"\\\\ "
	.ascii	"\")\nresult = result:gsub(\"\\\"\", \"\\\\\\\"\")\nreturn re"
	.ascii	"sult\nend\nend\nfunction premake.make_copyrule(source, targe"
	.ascii	"t)\n_p('%s: %s', target, source)\n_p('\\t@echo Copying $(not"
	.ascii	"dir %s)', target)\n_p('\\t-$(call COPY,%s,%s)', source, targ"
	.ascii	"et)\nend\nfunction premake.make_mkdirrule(var)\n_p('\\t@echo"
	.ascii	" Creating %s', var)\n_p('\\t-$(call MKDIR,%s)', var)\n_p('')"
	.ascii	"\nend\nfunction make.list(value)\nif #value > 0 then\nreturn"
	.ascii	" \" \" .. table.concat(value, \" \")\nelse\nreturn \"\"\nend"
	.ascii	"\nend\nfunction _MAKE.getmakefilename(this, searchprjs)\nloc"
	.ascii	"al count = 0\nfor sln in premake.solution.each() do\nif (sln"
	.ascii	".location == this.location) then count = count + 1 end\nif ("
	.ascii	"searchprjs) then\nfor _,prj in ipairs(sln.projects) do\nif ("
	.ascii	"prj.location == this.location) then count = count + 1 end\ne"
	.ascii	"nd\nend\nend\nif (count == 1) then\nreturn \"Makefile\"\nels"
	.ascii	"e\nreturn this.name .. \".make\"\nend\nend\nfunction _MAKE.g"
	.ascii	"etnames(tbl)\nlocal result = table.extract(tbl, \"name\")\nf"
	.ascii	"or k,v in pairs(result) do\nresult[k] = _MAKE.esc(v)\nend\nr"
	.ascii	"eturn result\nend\nfunction make.settings(cfg, cc)\nif #cfg."
	.ascii	"makesettings > 0 then\nfor _, value in ipairs(cfg.makesettin"
	.ascii	"gs) do\n_p(value)\nend\nend\nlocal toolsettings = cc.platfor"
	.ascii	"ms[cfg.platform].cfgsettings\nif toolsettings then\n_p(tools"
	.ascii	"ettings)\nend\nend\nnewaction {\ntrigger         = \"gmake\""
	.ascii	",\nshortname       = \"GNU Make\",\ndescription     = \"Gene"
	.ascii	"rate GNU makefiles for POSIX, MinGW, and Cygwin\",\nvalid_ki"
	.ascii	"nds  "
	.ascii	"   = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\", \"Sha"
	.ascii	"redLib\", \"Bundle\" },\nvalid_languages = { \"C\", \"C++\","
	.ascii	" \"C#\", \"Vala\", \"Swift\" },\nvalid_tools     = {\ncc    "
	.ascii	" = { \"gcc\", \"ghs\" },\ndotnet = { \"mono\", \"msnet\", \""
	.ascii	"pnet\" },\nvalac  = { \"valac\" },\nswift  = { \"swift\" },\n"
	.ascii	"},\nonsolution = function(sln)\npremake.generate(sln, _MAKE."
	.ascii	"getmakefilename(sln, false), premake.make_solution)\nend,\no"
	.ascii	"nproject = function(prj)\nlocal makefile = _MAKE.getmakefile"
	.ascii	"name(prj, true)\nif premake.isdotnetproject(prj) then\nprema"
	.ascii	"ke.generate(prj, makefile, premake.make_csharp)\nelseif prem"
	.ascii	"ake.iscppproject(prj) then\npremake.generate(prj, makefile, "
	.ascii	"premake.make_cpp)\nelseif premake.isswiftproject(prj) then\n"
	.ascii	"premake.generate(prj, makefile, premake.make_swift)\nelse\np"
	.ascii	"remake"
	.string	".generate(prj, makefile, premake.make_vala)\nend\nend,\noncleansolution = function(sln)\npremake.clean.file(sln, _MAKE.getmakefilename(sln, false))\nend,\noncleanproject = function(prj)\npremake.clean.file(prj, _MAKE.getmakefilename(prj, true))\nend,\ngmake = {}\n}\n"
	.align 8
.LC34:
	.ascii	"function premake.make_solution(sln)\nlocal cc = premake[_OPT"
	.ascii	"IONS.cc]\nlocal platforms = premake.filterplatforms(sln, cc."
	.ascii	"platforms, \"Native\")\n_p('# %s solution makefile autogener"
	.ascii	"ated by GENie', premake.action.current().shortname)\n_p('# T"
	.ascii	"ype \"make help\" for usage help')\n_p('')\n_p('ifndef confi"
	.ascii	"g')\n_p('  config=%s', _MAKE.esc(premake.getconfigname(sln.c"
	.ascii	"onfigurations[1], platforms[1], true)))\n_p('endif')\n_p('ex"
	.ascii	"port config')\n_p('')\nlocal projects = table.extract(sln.pr"
	.ascii	"ojects, \"name\")\ntable.sort(projects)\n_p('PROJECTS := %s'"
	.ascii	", table.concat(_MAKE.esc(projects), \" \"))\n_p('')\n_p('.PH"
	.ascii	"ONY: all clean help $(PROJECTS)')\n_p('')\n_p('all: $(PROJEC"
	.ascii	"TS)')\n_p('')\nfor _, prj in ipairs(sln.projects) do\n_p('%s"
	.ascii	": %s', _MAKE.esc(prj.name), table.concat(_MAKE.esc(table.ext"
	.ascii	"ract(premake.getdependencies(prj), \"name\")), \" \"))\nif ("
	.ascii	"not sln.messageskip) or (not table.contains(sln.messageskip,"
	.ascii	" \"SkipBuildingMessage\")) then\n_p('\\t@echo \"==== Buildin"
	.ascii	"g %s ($(config)) ====\"', prj.name)\nend\n_p('\\t@${MAKE} --"
	.ascii	"no-print-directory -C %s -f %s', _MAKE.esc(path.getrelative("
	.ascii	"sln.location, prj.location)), _MAKE.esc(_MAKE.getmakefilenam"
	.ascii	"e(prj, true)))\n_p('')\nend\n_p('clean:')\nfor _ ,prj in ipa"
	.ascii	"irs(sln.projects) do\n_p('\\t@${MAKE} --no-print-directory -"
	.ascii	"C %s -f %s clean', _MAKE.esc(path.getrelative(sln.location, "
	.ascii	"prj.location)), _MAKE.esc(_MAKE.getmakefilename(prj, true)))"
	.ascii	"\nend\n_p('')\n_p('help:')\n_p(1,'@echo \"Usage: make [confi"
	.ascii	"g=name] [target]\"')\n_p(1,'@echo \"\"')\n_p(1,'@echo \"CONF"
	.ascii	"IGURATIONS:\"')\nlocal cfgpairs = { }\nfor _, platform in ip"
	.ascii	"airs(platforms) do\nfor _, cfgname in ipairs(sln.configurati"
	.ascii	"ons) do\n_p(1,'@echo \"   %s\"', premake.getconfigname(cfgna"
	.ascii	"me, platform, true))\nend\nend\n_p(1,'@echo \"\"')"
	.string	"\n_p(1,'@echo \"TARGETS:\"')\n_p(1,'@echo \"   all (default)\"')\n_p(1,'@echo \"   clean\"')\nfor _, prj in ipairs(sln.projects) do\n_p(1,'@echo \"   %s\"', prj.name)\nend\n_p(1,'@echo \"\"')\n_p(1,'@echo \"For more information, see https://github.com/bkaradzic/genie\"')\nend\n"
	.align 8
.LC35:
	.ascii	"-- --\npremake.make.cpp = { }\npremake.make.override = { }\n"
	.ascii	"premake.make.makefile_ignore = false\nlocal cpp = premake.ma"
	.ascii	"ke.cpp\nlocal make = premake.make\nfunction premake.make_cpp"
	.ascii	"(prj)\nlocal cc = premake.gettool(prj)\nlocal platforms = pr"
	.ascii	"emake.filterplatforms(prj.solution, cc.platforms, \"Native\""
	.ascii	")\nlocal action = premake.action.current()\npremake.gmake_cp"
	.ascii	"p_header(prj, cc, platforms)\npremake.gmake_cpp_configs(prj,"
	.ascii	" cc, platforms)\ntable.sort(prj.allfiles)\nlocal objdirs = {"
	.ascii	"}\nlocal additionalobjdirs = {}\nfor _, file in ipairs(prj.a"
	.ascii	"llfiles) do\nif path.issourcefile(file) then\nobjdirs[_MAKE."
	.ascii	"esc(path.getdirectory(path.trimdots(file)))] = 1\nend\nend\n"
	.ascii	"for _, custombuildtask in ipairs(prj.custombuildtask or {}) "
	.ascii	"do\nfor _, buildtask in ipairs(custombuildtask or {}) do\nad"
	.ascii	"ditionalobjdirs[_MAKE.esc(path.getdirectory(path.getrelative"
	.ascii	"(prj.location,buildtask[2])))] = 1\nend\nend\n_p('OBJDIRS :="
	.ascii	" \\\\')\n_p('\\t$(OBJDIR) \\\\')\nfor dir, _ in iter.sortByK"
	.ascii	"eys(objdirs) do\n_p('\\t$(OBJDIR)/%s \\\\', dir)\nend\nfor d"
	.ascii	"ir, _ in iter.sortByKeys(additionalobjdirs) do\n_p('\\t%s \\"
	.ascii	"\\', dir)\nend\n_p('')\n_p('RESOURCES := \\\\')\nfor _, file"
	.ascii	" in ipairs(prj.allfiles) do\nif path.isresourcefile(file) th"
	.ascii	"en\n_p('\\t$(OBJDIR)/%s.res \\\\', _MAKE.esc(path.getbasenam"
	.ascii	"e(file)))\nend\nend\n_p('')\n_p('.PHONY: clean prebuild prel"
	.ascii	"ink')\n_p('')\nif os.is(\"MacOSX\") and prj.kind == \"Window"
	.ascii	"edApp\" and not prj.options.SkipBundling then\n_p('all: $(OB"
	.ascii	"JDIRS) $(TARGETDIR) prebuild prelink $(TARGET) $(dir $(TARGE"
	.ascii	"TDIR))PkgInfo $(dir $(TARGETDIR))Info.plist')\nelse\n_p('all"
	.ascii	": $(OBJDIRS) $(TARGETDIR) prebuild prelink $(TARGET)')\nend\n"
	.ascii	"_p('\\t@:')\n_p('')\nif (prj.kind == \"StaticLib\" and prj.o"
	.ascii	"ptions.ArchiveSplit) then\n_p('define max_args')\n_p('\\t$(e"
	.ascii	"val _args:=)')\n_p('\\t$(foreach obj,$3,$(eval _args+=$(obj)"
	.ascii	")$(if $(word $2,$(_args)),$1 $(_args)$(EOL)$(eval _args:=)))"
	.ascii	"')\n_p('\\t$(if $(_args),$1 $(_args))')\n_p('endef')\n_p('')"
	.ascii	"\n_p('define EOL')\n_p('')\n_p('')\n_p('endef')\n_p('')\nend"
	.ascii	"\n_p('$(TARGET): $(GCH) $(OBJECTS) $(LIBDEPS) $(EXTERNAL_LIB"
	.ascii	"S) $(RESOURCES) $(OBJRESP) $(LDRESP) | $(TARGETDIR"
	.ascii	") $(OBJDIRS)')\nif prj.kind == \"StaticLib\" then\nif prj.ms"
	.ascii	"garchiving then\n_p('\\t@echo ' .. prj.msgarchiving)\nelse\n"
	.ascii	"_p('\\t@echo Archiving %s', prj.name)\nend\nif (not prj.arch"
	.ascii	"ivesplit_size) then\nprj.archivesplit_size=200\nend\nif (not"
	.ascii	" prj.options.ArchiveSplit) then\n_p('ifeq (posix,$(SHELLTYPE"
	.ascii	"))')\n_p('\\t$(SILENT) rm -f  $(TARGET)')\n_p('else')\n_p('\\"
	.ascii	"t$(SILENT) if exist $(subst /,\\\\\\\\,$(TARGET)) del $(subs"
	.ascii	"t /,\\\\\\\\,$(TARGET))')\n_p('endif')\n_p('\\t$(SILENT) $(L"
	.ascii	"INKCMD) $(LINKOBJS)' .. (os.is(\"MacOSX\") and \" 2>&1 > /de"
	.ascii	"v/null | sed -e '/.o) has no symbols$$/d'\" or \"\"))\nelse\n"
	.ascii	"_p('\\t$(call RM,$(TARGET))')\n_p('\\t@$(call max_args,$(LIN"
	.ascii	"KCMD),'.. prj.archivesplit_size ..',$(LINKOBJS))' .. (os.is("
	.ascii	"\"MacOSX\") and \" 2>&1 > /dev/null | sed -e '/.o) has no sy"
	.ascii	"mbols$$/d'\" or \"\"))\n_p('\\t$(SILENT) $(LINKCMD_NDX)')\ne"
	.ascii	"nd\nelse\nif prj.msglinking then\n_p('\\t@echo ' .. prj.msgl"
	.ascii	"inking)\nelse\n_p('\\t@echo Linking %s', prj.name)\nend\n_p("
	.ascii	"'\\t$(SILENT) $(LINKCMD)')\nend\n_p('\\t$(POSTBUILDCMDS)')\n"
	.ascii	"_p('')\n_p('$(TARGETDIR):')\npremake.make_mkdirrule(\"$(TARG"
	.ascii	"ETDIR)\")\n_p('$(OBJDIRS):')\nif (not prj.solution.messagesk"
	.ascii	"ip) or (not table.contains(prj.solution.messageskip, \"SkipC"
	.ascii	"reatingMessage\")) then\n_p('\\t@echo Creating $(@)')\nend\n"
	.ascii	"_p('\\t-$(call MKDIR,$@)')\n_p('')\nif os.is(\"MacOSX\") and"
	.ascii	" prj.kind == \"WindowedApp\" and not prj.options.SkipBundlin"
	.ascii	"g then\n_p('$(dir $(TARGETDIR))PkgInfo:')\n_p('$(dir $(TARGE"
	.ascii	"TDIR))Info.plist:')\n_p('')\nend\n_p('clean:')\nif (not prj."
	.ascii	"solution.messageskip) or (not table.contains(prj.solution.me"
	.ascii	"ssageskip, \"SkipCleaningMessage\")) then\n_p('\\t@echo Clea"
	.ascii	"ning %s', prj.name)\nend\n_p('ifeq (posix,$(SHELLTYPE))')\n_"
	.ascii	"p('\\t$(SILENT) rm -f  $(TARGET)')\n_p('\\t$(SILENT) rm -rf "
	.ascii	"$(OBJDIR)')\n_p('else')\n_p('\\t$(SILENT) if exist $(subst /"
	.ascii	",\\\\\\\\,$(TARGET)) del $(subst /,\\\\\\\\,$(TARGET))')\n_p"
	.ascii	"('\\t$(SILENT) if exist $(subst /,\\\\\\\\,$(OBJDIR)) rmdir "
	.ascii	"/s /q $(subst /,\\\\\\\\,$(OBJDIR))')\n_p('endif')\n_p('')\n"
	.ascii	"_p('prebuild:')\n_p('\\t$(PREBUILDCMDS)')\n_p('')\n_p('preli"
	.ascii	"nk:')\n_p('\\t$(PRELINKCMDS)')\n_p('')\ncpp.pchrules(prj)\nc"
	.ascii	"pp.fileRules(prj, cc)\ncpp.depen"
	.ascii	"dencyRules(prj)\nfor _, custombuildtask in ipairs(prj.custom"
	.ascii	"buildtask or {}) do\nfor _, buildtask in ipairs(custombuildt"
	.ascii	"ask or {}) do\nlocal deps =  string.format(\"%s \",path.getr"
	.ascii	"elative(prj.location,buildtask[1]))\nfor _, depdata in ipair"
	.ascii	"s(buildtask[3] or {}) do\ndeps = deps .. string.format(\"%s "
	.ascii	"\",path.getrelative(prj.location,depdata))\nend\n_p('%s: %s "
	.ascii	"| $(TARGETDIR) $(OBJDIRS)'\n,path.getrelative(prj.location,b"
	.ascii	"uildtask[2])\n, deps\n)\nfor _, cmdline in ipairs(buildtask["
	.ascii	"4] or {}) do\nlocal cmd = cmdline\nlocal num = 1\nfor _, dep"
	.ascii	"data in ipairs(buildtask[3] or {}) do\ncmd = string.gsub(cmd"
	.ascii	",\"%$%(\" .. num ..\"%)\", string.format(\"%s \",path.getrel"
	.ascii	"ative(prj.location,depdata)))\nnum = num + 1\nend\ncmd = str"
	.ascii	"ing.gsub(cmd, \"%$%(<%)\", \"$<\")\ncmd = string.gsub(cmd, \""
	.ascii	"%$%(@%)\", \"$@\")\n_p('\\t$(SILENT) %s',cmd)\nend\n_p('')\n"
	.ascii	"end\nend\n_p('-include $(OBJECTS:%%.o=%%.d)')\n_p('ifneq (,$"
	.ascii	"(PCH))')\n_p('  -include $(OBJDIR)/$(notdir $(PCH)).d')\n_p("
	.ascii	"'  -include $(OBJDIR)/$(notdir $(PCH))_objc.d')\n_p('endif')"
	.ascii	"\nend\nfunction premake.gmake_cpp_header(prj, cc, platforms)"
	.ascii	"\n_p('# %s project makefile autogenerated by GENie', premake"
	.ascii	".action.current().shortname)\n_p('ifndef config')\n_p('  con"
	.ascii	"fig=%s', _MAKE.esc(premake.getconfigname(prj.solution.config"
	.ascii	"urations[1], platforms[1], true)))\n_p('endif')\n_p('')\n_p("
	.ascii	"'ifndef verbose')\n_p('  SILENT = @')\n_p('endif')\n_p('')\n"
	.ascii	"_p('SHELLTYPE := msdos')\n_p('ifeq (,$(ComSpec)$(COMSPEC))')"
	.ascii	"\n_p('  SHELLTYPE := posix')\n_p('endif')\n_p('ifeq (/bin,$("
	.ascii	"findstring /bin,$(SHELL)))')\n_p('  SHELLTYPE := posix')\n_p"
	.ascii	"('endif')\n_p('ifeq (/bin,$(findstring /bin,$(MAKESHELL)))')"
	.ascii	"\n_p('  SHELLTYPE := posix')\n_p('endif')\n_p('')\n_p('ifeq "
	.ascii	"(posix,$(SHELLTYPE))')\n_p('  MKDIR = $(SILENT) mkdir -p \"$"
	.ascii	"(1)\"')\n_p('  COPY  = $(SILENT) cp -fR \"$(1)\" \"$(2)\"')\n"
	.ascii	"_p('  RM    = $(SILENT) rm -f \"$(1)\"')\n_p('else')\n_p('  "
	.ascii	"MKDIR = $(SILENT) mkdir \"$(subst /,\\\\\\\\,$(1))\" 2> nul "
	.ascii	"|| exit 0')\n_p('  COPY  = $(SILENT) copy /Y \"$(subst /,\\\\"
	.ascii	"\\\\,$(1))\" \"$(subst /,\\\\\\\\,$(2))\"')\n_p('  RM    = $"
	.ascii	"(SILENT) del /F \"$(subst /,\\\\\\\\,$(1))\" 2> nul || exit "
	.ascii	"0')\n_p("
	.ascii	"'endif')\n_p('')\n_p('CC  = %s', cc.cc)\n_p('CXX = %s', cc.c"
	.ascii	"xx)\n_p('AR  = %s', cc.ar)\n_p('')\n_p('ifndef RESCOMP')\n_p"
	.ascii	"('  ifdef WINDRES')\n_p('    RESCOMP = $(WINDRES)')\n_p('  e"
	.ascii	"lse')\n_p('    RESCOMP = %s', cc.rc or 'windres')\n_p('  end"
	.ascii	"if')\n_p('endif')\n_p('')\nif (not premake.make.makefile_ign"
	.ascii	"ore) then\n_p('MAKEFILE = %s', _MAKE.getmakefilename(prj, tr"
	.ascii	"ue))\n_p('')\nend\nend\nlocal function is_excluded(prj, cfg,"
	.ascii	" file)\nif table.icontains(prj.excludes, file) then\nreturn "
	.ascii	"true\nend\nif table.icontains(cfg.excludes, file) then\nretu"
	.ascii	"rn true\nend\nreturn false\nend\nfunction premake.gmake_cpp_"
	.ascii	"configs(prj, cc, platforms)\nfor _, platform in ipairs(platf"
	.ascii	"orms) do\nfor cfg in premake.eachconfig(prj, platform) do\np"
	.ascii	"remake.gmake_cpp_config(prj, cfg, cc)\nend\nend\nend\nfuncti"
	.ascii	"on premake.gmake_cpp_config(prj, cfg, cc)\n_p('ifeq ($(confi"
	.ascii	"g),%s)', _MAKE.esc(cfg.shortname))\ncpp.platformtools(cfg, c"
	.ascii	"c)\nlocal targetDir = _MAKE.esc(cfg.buildtarget.directory)\n"
	.ascii	"_p('  ' .. (table.contains(premake.make.override,\"OBJDIR\")"
	.ascii	" and \"override \" or \"\") ..    'OBJDIR              = %s'"
	.ascii	", _MAKE.esc(cfg.objectsdir))\n_p('  ' .. (table.contains(pre"
	.ascii	"make.make.override,\"TARGETDIR\") and \"override \" or \"\")"
	.ascii	" .. 'TARGETDIR           = %s', iif(targetDir == \"\", \".\""
	.ascii	", targetDir))\n_p('  ' .. (table.contains(premake.make.overr"
	.ascii	"ide,\"TARGET\") and \"override \" or \"\") ..    'TARGET    "
	.ascii	"          = $(TARGETDIR)/%s', _MAKE.esc(cfg.buildtarget.name"
	.ascii	"))\n_p('  DEFINES            +=%s', make.list(_MAKE.escquote"
	.ascii	"(cc.getdefines(cfg.defines))))\nlocal id  = make.list(cc.get"
	.ascii	"includedirs(cfg.includedirs));\nlocal uid = make.list(cc.get"
	.ascii	"quoteincludedirs(cfg.userincludedirs))\nlocal sid = make.lis"
	.ascii	"t(cc.getsystemincludedirs(cfg.systemincludedirs))\nif id ~= "
	.ascii	"\"\" then\n_p('  INCLUDES           +=%s', id)\nend\nif uid "
	.ascii	"~= \"\" then\n_p('  INCLUDES           +=%s', uid)\nend\nif "
	.ascii	"sid ~= \"\" then\n_p('  INCLUDES           +=%s', sid)\nend\n"
	.ascii	"cpp.pchconfig(cfg)\ncpp.flags(cfg, cc)\ncpp.linker(prj, cfg,"
	.ascii	" cc)\ntable.sort(cfg.files)\nif cfg.flags.UseObjectResponseF"
	.ascii	"ile then\n_p('  OBJRESP             = $(OBJDIR)"
	.ascii	"/%s_objects', prj.name)\nelse\n_p('  OBJRESP             =')"
	.ascii	"\nend\n_p('  OBJECTS := \\\\')\nfor _, file in ipairs(cfg.fi"
	.ascii	"les) do\nif path.issourcefile(file) then\nif not is_excluded"
	.ascii	"(prj, cfg, file) then\n_p('\\t$(OBJDIR)/%s.o \\\\'\n, _MAKE."
	.ascii	"esc(path.trimdots(path.removeext(file)))\n)\nend\nend\nend\n"
	.ascii	"_p('')\n_p('  define PREBUILDCMDS')\nif #cfg.prebuildcommand"
	.ascii	"s > 0 then\n_p('\\t@echo Running pre-build commands')\n_p('\\"
	.ascii	"t%s', table.implode(cfg.prebuildcommands, \"\", \"\", \"\\n\\"
	.ascii	"t\"))\nend\n_p('  endef')\n_p('  define PRELINKCMDS')\nif #c"
	.ascii	"fg.prelinkcommands > 0 then\n_p('\\t@echo Running pre-link c"
	.ascii	"ommands')\n_p('\\t%s', table.implode(cfg.prelinkcommands, \""
	.ascii	"\", \"\", \"\\n\\t\"))\nend\n_p('  endef')\n_p('  define POS"
	.ascii	"TBUILDCMDS')\nif #cfg.postbuildcommands > 0 then\n_p('\\t@ec"
	.ascii	"ho Running post-build commands')\n_p('\\t%s', table.implode("
	.ascii	"cfg.postbuildcommands, \"\", \"\", \"\\n\\t\"))\nend\n_p('  "
	.ascii	"endef')\nmake.settings(cfg, cc)\n_p('endif')\n_p('')\nend\nf"
	.ascii	"unction cpp.platformtools(cfg, cc)\nlocal platform = cc.plat"
	.ascii	"forms[cfg.platform]\nif platform.cc then\n_p('  CC         ="
	.ascii	" %s', platform.cc)\nend\nif platform.cxx then\n_p('  CXX    "
	.ascii	"    = %s', platform.cxx)\nend\nif platform.ar then\n_p('  AR"
	.ascii	"         = %s', platform.ar)\nend\nend\nfunction cpp.flags(c"
	.ascii	"fg, cc)\nif cfg.pchheader and not cfg.flags.NoPCH then\n_p('"
	.ascii	"  FORCE_INCLUDE      += -include $(OBJDIR)/$(notdir $(PCH))'"
	.ascii	")\n_p('  FORCE_INCLUDE_OBJC += -include $(OBJDIR)/$(notdir $"
	.ascii	"(PCH))_objc')\nend\nif #cfg.forcedincludes > 0 then\n_p('  F"
	.ascii	"ORCE_INCLUDE      += -include %s'\n,_MAKE.esc(table.concat(c"
	.ascii	"fg.forcedincludes, \";\")))\nend\n_p('  ALL_CPPFLAGS       +"
	.ascii	"= $(CPPFLAGS) %s $(DEFINES) $(INCLUDES)', table.concat(cc.ge"
	.ascii	"tcppflags(cfg), \" \"))\n_p('  ALL_ASMFLAGS       += $(ASMFL"
	.ascii	"AGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.j"
	.ascii	"oin(cc.getcflags(cfg), cfg.buildoptions, cfg.buildoptions_as"
	.ascii	"m)))\n_p('  ALL_CFLAGS         += $(CFLAGS) $(ALL_CPPFLAGS) "
	.ascii	"$(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cfg.buil"
	.ascii	"doptions, cfg.buildoptions_c)))\n_p('  ALL_CXXFLAGS       +="
	.ascii	" $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.li"
	.ascii	"st(table.join(cc.getcflags(cfg), cc.getcxxflags(cfg), cfg.bu"
	.ascii	"ildoptions, cfg.buildoptions_cpp)))\n_p('  ALL_OBJCFLAGS    "
	.ascii	"  += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.j"
	.ascii	"oin(cc.getcflags(cfg), cc.getobjcflags(cfg), cfg.buildoption"
	.ascii	"s, cfg.buildoptions_objc)))\n_p('  ALL_OBJCPPFLAGS    += $(C"
	.ascii	"XXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(tab"
	.ascii	"le.join(cc.getcflags(cfg), cc.getcxxflags(cfg), cc.getobjcfl"
	.ascii	"ags(cfg), cfg.buildoptions, cfg.buildoptions_objcpp)))\n_p('"
	.ascii	"  ALL_RESFLAGS       += $(RESFLAGS) $(DEFINES) $(INCLUDES)%s"
	.ascii	"',\n        make.list(table.join(cc.getdefines(cfg.resdefine"
	.ascii	"s),\n                                cc.getincludedirs(cfg.r"
	.ascii	"esincludedirs), cfg.resoptions)))\nend\nfunction cpp.linker("
	.ascii	"prj, cfg, cc)\nlocal libdeps\nlocal lddeps\nif #cfg.wholearc"
	.ascii	"hive > 0 then\nlibdeps = {}\nlddeps  = {}\nfor _, linkcfg in"
	.ascii	" ipairs(premake.getlinks(cfg, \"siblings\", \"object\")) do\n"
	.ascii	"local linkpath = path.rebase(linkcfg.linktarget.fullpath, li"
	.ascii	"nkcfg.location, cfg.location)\nif table.icontains(cfg.wholea"
	.ascii	"rchive, linkcfg.project.name) then\nlddeps = table.join(ldde"
	.ascii	"ps, cc.wholearchive(linkpath))\nelse\ntable.insert(lddeps, l"
	.ascii	"inkpath)\nend\ntable.insert(libdeps, linkpath)\nend\nlibdeps"
	.ascii	" = make.list(_MAKE.esc(libdeps))\nlddeps  = make.list(_MAKE."
	.ascii	"esc(lddeps))\nelse\nlibdeps = make.list(_MAKE.esc(premake.ge"
	.ascii	"tlinks(cfg, \"siblings\", \"fullpath\")))\nlddeps  = libdeps"
	.ascii	"\nend\n_p('  ALL_LDFLAGS        += $(LDFLAGS)%s', make.list("
	.ascii	"table.join(cc.getlibdirflags(cfg), cc.getldflags(cfg), cfg.l"
	.ascii	"inkoptions)))\n_p('  LIBDEPS            +=%s', libdeps)\n_p("
	.ascii	"'  LDDEPS             +=%s', lddeps)\nif cfg.flags.UseLDResp"
	.ascii	"onseFile then\n_p('  LDRESP              = $(OBJDIR)/%s_libs"
	.ascii	"', prj.name)\n_p('  LIBS               += @$(LDRESP)%s', mak"
	.ascii	"e.list(cc.getlinkflags(cfg)))\nelse\n_p('  LDRESP           "
	.ascii	"   =')\n_p('  LIBS               += $(LDDEPS)%s', make.list("
	.ascii	"cc.getlinkflags(cfg)))\nend\n_p('  EXTERNAL_LIBS      +=%s',"
	.ascii	" make.list(cc.getlibfiles(cfg)))\n_p('  LINKOBJS            "
	.ascii	"= %s', (cfg.flags.UseObjectResponseFile and \"@$(OBJRESP)\" "
	.ascii	"or \"$(OB"
	.ascii	"JECTS)\"))\nif cfg.kind == \"StaticLib\" then\nif (not prj.o"
	.ascii	"ptions.ArchiveSplit) then\n_p('  LINKCMD             = $(AR)"
	.ascii	" %s $(TARGET)', make.list(cc.getarchiveflags(prj, cfg, false"
	.ascii	")))\nelse\n_p('  LINKCMD             = $(AR) %s $(TARGET)', "
	.ascii	"make.list(cc.getarchiveflags(prj, cfg, false)))\n_p('  LINKC"
	.ascii	"MD_NDX         = $(AR) %s $(TARGET)', make.list(cc.getarchiv"
	.ascii	"eflags(prj, cfg, true)))\nend\nelse\nlocal tool = iif(cfg.la"
	.ascii	"nguage == \"C\", \"CC\", \"CXX\")\nlocal startgroup = ''\nlo"
	.ascii	"cal endgroup = ''\nif (cfg.flags.LinkSupportCircularDependen"
	.ascii	"cies) then\nstartgroup = '-Wl,--start-group '\nendgroup   = "
	.ascii	"' -Wl,--end-group'\nend\n_p('  LINKCMD             = $(%s) -"
	.ascii	"o $(TARGET) $(LINKOBJS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) "
	.ascii	"%s$(LIBS)%s', tool, startgroup, endgroup)\nend\nend\nfunctio"
	.ascii	"n cpp.pchconfig(cfg)\nif not cfg.pchheader or cfg.flags.NoPC"
	.ascii	"H then\nreturn\nend\nlocal pch = cfg.pchheader\nfor _, incdi"
	.ascii	"r in ipairs(cfg.includedirs) do\nlocal abspath = path.getabs"
	.ascii	"olute(path.join(cfg.project.location, incdir))\nlocal testna"
	.ascii	"me = path.join(abspath, pch)\nif os.isfile(testname) then\np"
	.ascii	"ch = path.getrelative(cfg.location, testname)\nbreak\nend\ne"
	.ascii	"nd\n_p('  PCH                 = %s', _MAKE.esc(pch))\n_p('  "
	.ascii	"GCH                 = $(OBJDIR)/$(notdir $(PCH)).gch')\n_p('"
	.ascii	"  GCH_OBJC            = $(OBJDIR)/$(notdir $(PCH))_objc.gch'"
	.ascii	")\nend\nfunction cpp.pchrules(prj)\n_p('ifneq (,$(PCH))')\n_"
	.ascii	"p('$(GCH): $(PCH) $(MAKEFILE) | $(OBJDIR)')\nif prj.msgpreco"
	.ascii	"mpile then\n_p('\\t@echo ' .. prj.msgprecompile)\nelse\n_p('"
	.ascii	"\\t@echo $(notdir $<)')\nend\nlocal cmd = iif(prj.language ="
	.ascii	"= \"C\", \"$(CC) $(ALL_CFLAGS) -x c-header\", \"$(CXX) $(ALL"
	.ascii	"_CXXFLAGS) -x c++-header\")\n_p('\\t$(SILENT) %s $(DEFINES) "
	.ascii	"$(INCLUDES) -o \"$@\" -c \"$<\"', cmd)\n_p('')\n_p('$(GCH_OB"
	.ascii	"JC): $(PCH) $(MAKEFILE) | $(OBJDIR)')\nif prj.msgprecompile "
	.ascii	"then\n_p('\\t@echo ' .. prj.msgprecompile)\nelse\n_p('\\t@ec"
	.ascii	"ho $(notdir $<)')\nend\nlocal cmd = iif(prj.language == \"C\""
	.ascii	", \"$(CC) $(ALL_OBJCFLAGS) -x objective-c-header\", \"$(CXX)"
	.ascii	" $(ALL_OBJCPPFLAGS) -x objective-c++-header\")\n_p('\\t$(SIL"
	.ascii	"ENT) %s $(DEFINES) $(INCLUDES) -o \"$@\" -c \"$"
	.ascii	"<\"', cmd)\n_p('endif')\n_p('')\nend\nfunction cpp.fileRules"
	.ascii	"(prj, cc)\nlocal platforms = premake.filterplatforms(prj.sol"
	.ascii	"ution, cc.platforms, \"Native\")\n_p('ifneq (,$(OBJRESP))')\n"
	.ascii	"_p('$(OBJRESP): $(OBJECTS) | $(TARGETDIR) $(OBJDIRS)')\n_p('"
	.ascii	"\\t$(SILENT) echo $^')\n_p('\\t$(SILENT) echo $^ > $@')\n_p("
	.ascii	"'endif')\n_p('')\n_p('ifneq (,$(LDRESP))')\n_p('$(LDRESP): $"
	.ascii	"(LDDEPS) | $(TARGETDIR) $(OBJDIRS)')\n_p('\\t$(SILENT) echo "
	.ascii	"$^')\n_p('\\t$(SILENT) echo $^ > $@')\n_p('endif')\n_p('')\n"
	.ascii	"table.sort(prj.allfiles)\nfor _, file in ipairs(prj.allfiles"
	.ascii	" or {}) do\nif path.issourcefile(file) then\nif (path.isobjc"
	.ascii	"file(file)) then\n_p('$(OBJDIR)/%s.o: %s $(GCH_OBJC) $(MAKEF"
	.ascii	"ILE) | $(OBJDIR)/%s'\n, _MAKE.esc(path.trimdots(path.removee"
	.ascii	"xt(file)))\n, _MAKE.esc(file)\n, _MAKE.esc(path.getdirectory"
	.ascii	"(path.trimdots(file)))\n)\nelse\n_p('$(OBJDIR)/%s.o: %s $(GC"
	.ascii	"H) $(MAKEFILE) | $(OBJDIR)/%s'\n, _MAKE.esc(path.trimdots(pa"
	.ascii	"th.removeext(file)))\n, _MAKE.esc(file)\n, _MAKE.esc(path.ge"
	.ascii	"tdirectory(path.trimdots(file)))\n)\nend\nif (path.isobjcfil"
	.ascii	"e(file) and prj.msgcompile_objc) then\n_p('\\t@echo ' .. prj"
	.ascii	".msgcompile_objc)\nelseif prj.msgcompile then\n_p('\\t@echo "
	.ascii	"' .. prj.msgcompile)\nelse\n_p('\\t@echo $(notdir $<)')\nend"
	.ascii	"\nif (path.isobjcfile(file)) then\nif (path.iscfile(file)) t"
	.ascii	"hen\n_p('\\t$(SILENT) $(CXX) $(ALL_OBJCFLAGS) $(FORCE_INCLUD"
	.ascii	"E_OBJC) -o \"$@\" -c \"$<\"')\nelse\n_p('\\t$(SILENT) $(CXX)"
	.ascii	" $(ALL_OBJCPPFLAGS) $(FORCE_INCLUDE_OBJC) -o \"$@\" -c \"$<\""
	.ascii	"')\nend\nelseif (path.isasmfile(file)) then\n_p('\\t$(SILENT"
	.ascii	") $(CC) $(ALL_ASMFLAGS) -o \"$@\" -c \"$<\"')\nelse\ncpp.bui"
	.ascii	"ldcommand(path.iscfile(file) and not prj.options.ForceCPP, \""
	.ascii	"o\")\nend\nfor _, task in ipairs(prj.postcompiletasks or {})"
	.ascii	" do\n_p('\\t$(SILENT) %s', task)\n_p('')\nend\n_p('')\nelsei"
	.ascii	"f (path.getextension(file) == \".rc\") then\n_p('$(OBJDIR)/%"
	.ascii	"s.res: %s', _MAKE.esc(path.getbasename(file)), _MAKE.esc(fil"
	.ascii	"e))\nif prj.msgresource then\n_p('\\t@echo ' .. prj.msgresou"
	.ascii	"rce)\nelse\n_p('\\t@echo $(notdir $<)')\nend\n_p('\\t$(SILEN"
	.ascii	"T) $(RESCOMP) $< -O coff -o \"$@\" $(ALL_RESFLAGS)')\n_p('')"
	.ascii	"\nend\nend\nend\nfunction cpp.dependencyRules(prj)\nfor _, d"
	.ascii	"ep"
	.ascii	"endency in ipairs(prj.dependency or {}) do\nfor _, dep in ip"
	.ascii	"airs(dependency or {}) do\nif (dep[3]==nil or dep[3]==false)"
	.ascii	" then\n_p('$(OBJDIR)/%s.o: %s'\n, _MAKE.esc(path.trimdots(pa"
	.ascii	"th.removeext(path.getrelative(prj.location, dep[1]))))\n, _M"
	.ascii	"AKE.esc(path.getrelative(prj.location, dep[2]))\n)\nelse\n_p"
	.ascii	"('%s: %s'\n, _MAKE.esc(dep[1])\n, _MAKE.esc(p"
	.string	"ath.getrelative(prj.location, dep[2]))\n)\nend\n_p('')\nend\nend\nend\nfunction cpp.buildcommand(iscfile, objext)\nlocal flags = iif(iscfile, '$(CC) $(ALL_CFLAGS)', '$(CXX) $(ALL_CXXFLAGS)')\n_p('\\t$(SILENT) %s $(FORCE_INCLUDE) -o \"$@\" -c \"$<\"', flags, objext)\nend\n"
	.align 8
.LC36:
	.ascii	"local function getresourcefilename(cfg, fname)\nif path.gete"
	.ascii	"xtension(fname) == \".resx\" then\nlocal name = cfg.buildtar"
	.ascii	"get.basename .. \".\"\nlocal dir = path.getdirectory(fname)\n"
	.ascii	"if dir ~= \".\" then\nname = name .. path.translate(dir, \"."
	.ascii	"\") .. \".\"\nend\nreturn \"$(OBJDIR)/\" .. _MAKE.esc(name ."
	.ascii	". path.getbasename(fname)) .. \".resources\"\nelse\nreturn f"
	.ascii	"name\nend\nend\nfunction premake.make_csharp(prj)\nlocal csc"
	.ascii	" = premake.dotnet\nlocal cfglibs = { }\nlocal cfgpairs = { }"
	.ascii	"\nlocal anycfg\nfor cfg in premake.eachconfig(prj) do\nanycf"
	.ascii	"g = cfg\ncfglibs[cfg] = premake.getlinks(cfg, \"siblings\", "
	.ascii	"\"fullpath\")\ncfgpairs[cfg] = { }\nfor _, fname in ipairs(c"
	.ascii	"fglibs[cfg]) do\nif path.getdirectory(fname) ~= cfg.buildtar"
	.ascii	"get.directory then\ncfgpairs[cfg][\"$(TARGETDIR)/\" .. _MAKE"
	.ascii	".esc(path.getname(fname))] = _MAKE.esc(fname)\nend\nend\nend"
	.ascii	"\nlocal sources = {}\nlocal embedded = { }\nlocal copypairs "
	.ascii	"= { }\nfor fcfg in premake.project.eachfile(prj) do\nlocal a"
	.ascii	"ction = csc.getbuildaction(fcfg)\nif action == \"Compile\" t"
	.ascii	"hen\ntable.insert(sources, fcfg.name)\nelseif action == \"Em"
	.ascii	"beddedResource\" then\ntable.insert(embedded, fcfg.name)\nel"
	.ascii	"seif action == \"Content\" then\ncopypairs[\"$(TARGETDIR)/\""
	.ascii	" .. _MAKE.esc(path.getname(fcfg.name))] = _MAKE.esc(fcfg.nam"
	.ascii	"e)\nelseif path.getname(fcfg.name):lower() == \"app.config\""
	.ascii	" then\ncopypairs[\"$(TARGET).config\"] = _MAKE.esc(fcfg.name"
	.ascii	")\nend\nend\nlocal paths = table.translate(prj.libdirs, func"
	.ascii	"tion(v) return path.join(prj.basedir, v) end)\npaths = table"
	.ascii	".join({prj.basedir}, paths)\nfor _, libname in ipairs(premak"
	.ascii	"e.getlinks(prj, \"system\", \"fullpath\")) do\nlocal libdir "
	.ascii	"= os.pathsearch(libname..\".dll\", unpack(paths))\nif (libdi"
	.ascii	"r) then\nlocal target = \"$(TARGETDIR)/\" .. _MAKE.esc(path."
	.ascii	"getname(libname))\nlocal source = path.getrelative(prj.based"
	.ascii	"ir, path.join(libdir, libname))..\".dll\"\ncopypairs[target]"
	.ascii	" = _MAKE.esc(source)\nend\nend\n_p('# %s project makefile au"
	.ascii	"togenerated by GENie', premake.action.current().shortname)\n"
	.ascii	"_p('')\n_p('ifndef config')\n_p('  config=%s', _MAKE.esc(prj"
	.ascii	".configurations[1]:lower()))\n_p('endif')\n_p('')\n_p('ifnd"
	.ascii	"ef verbose')\n_p('  SILENT = @')\n_p('endif')\n_p('')\n_p('S"
	.ascii	"HELLTYPE := msdos')\n_p('ifeq (,$(ComSpec)$(COMSPEC))')\n_p("
	.ascii	"'  SHELLTYPE := posix')\n_p('endif')\n_p('ifeq (/bin,$(finds"
	.ascii	"tring /bin,$(SHELL)))')\n_p('  SHELLTYPE := posix')\n_p('end"
	.ascii	"if')\n_p('ifeq (/bin,$(findstring /bin,$(MAKESHELL)))')\n_p("
	.ascii	"'  SHELLTYPE := posix')\n_p('endif')\n_p('')\n_p('ifeq (posi"
	.ascii	"x,$(SHELLTYPE))')\n_p('  MKDIR = $(SILENT) mkdir -p \"$(1)\""
	.ascii	"')\n_p('  COPY  = $(SILENT) cp -fR \"$(1)\" \"$(2)\"')\n_p('"
	.ascii	"else')\n_p('  MKDIR = $(SILENT) mkdir \"$(subst /,\\\\\\\\,$"
	.ascii	"(1))\" 2> nul')\n_p('  COPY  = $(SILENT) copy /Y \"$(subst /"
	.ascii	",\\\\\\\\,$(1))\" \"$(subst /,\\\\\\\\,$(2))\"')\n_p('endif'"
	.ascii	")\n_p('')\n_p('ifndef CSC')\n_p('  CSC=%s', csc.getcompilerv"
	.ascii	"ar(prj))\n_p('endif')\n_p('')\n_p('ifndef RESGEN')\n_p('  RE"
	.ascii	"SGEN=resgen')\n_p('endif')\n_p('')\nlocal platforms = premak"
	.ascii	"e.filterplatforms(prj.solution, premake[_OPTIONS.cc].platfor"
	.ascii	"ms)\ntable.insert(platforms, 1, \"\")\nfor cfg in premake.ea"
	.ascii	"chconfig(prj) do\npremake.gmake_cs_config(cfg, csc, cfglibs)"
	.ascii	"\nend\n_p('# To maintain compatibility with VS.NET, these va"
	.ascii	"lues must be set at the project level')\n_p('TARGET     := $"
	.ascii	"(TARGETDIR)/%s', _MAKE.esc(prj.buildtarget.name))\n_p('FLAGS"
	.ascii	"      += /t:%s %s', csc.getkind(prj):lower(), table.implode("
	.ascii	"_MAKE.esc(prj.libdirs), \"/lib:\", \"\", \" \"))\n_p('REFERE"
	.ascii	"NCES += %s', table.implode(_MAKE.esc(premake.getlinks(prj, \""
	.ascii	"system\", \"basename\")), \"/r:\", \".dll\", \" \"))\n_p('')"
	.ascii	"\n_p('SOURCES := \\\\')\nfor _, fname in ipairs(sources) do\n"
	.ascii	"_p('\\t%s \\\\', _MAKE.esc(path.translate(fname)))\nend\n_p("
	.ascii	"'')\n_p('EMBEDFILES := \\\\')\nfor _, fname in ipairs(embedd"
	.ascii	"ed) do\n_p('\\t%s \\\\', getresourcefilename(prj, fname))\ne"
	.ascii	"nd\n_p('')\n_p('COPYFILES += \\\\')\nfor target, source in p"
	.ascii	"airs(cfgpairs[anycfg]) do\n_p('\\t%s \\\\', target)\nend\nfo"
	.ascii	"r target, source in pairs(copypairs) do\n_p('\\t%s \\\\', ta"
	.ascii	"rget)\nend\n_p('')\n_p('SHELLTYPE := msdos')\n_p('ifeq (,$(C"
	.ascii	"omSpec)$(COMSPEC))')\n_p('  SHELLTYPE := posix')\n_p('endif'"
	.ascii	")\n_p('ifeq (/bin,$(findstring /bin,$(SHELL)))')\n_p('  SHEL"
	.ascii	"LTYPE := posix')\n_p('endif')\n_p('ifeq (/bin,$(findstring /"
	.ascii	"bin,$(MAKESHELL)))')\n_p("
	.ascii	"'  SHELLTYPE := posix')\n_p('endif')\n_p('')\n_p('.PHONY: cl"
	.ascii	"ean prebuild prelink')\n_p('')\n_p('all: $(TARGETDIR) $(OBJD"
	.ascii	"IR) prebuild $(EMBEDFILES) $(COPYFILES) prelink $(TARGET)')\n"
	.ascii	"_p('')\n_p('$(TARGET): $(SOURCES) $(EMBEDFILES) $(DEPENDS)')"
	.ascii	"\n_p('\\t$(SILENT) $(CSC) /nologo /out:$@ $(FLAGS) $(REFEREN"
	.ascii	"CES) $(SOURCES) $(patsubst %%,/resource:%%,$(EMBEDFILES))')\n"
	.ascii	"_p('\\t$(POSTBUILDCMDS)')\n_p('')\n_p('$(TARGETDIR):')\nprem"
	.ascii	"ake.make_mkdirrule(\"$(TARGETDIR)\")\n_p('$(OBJDIR):')\nprem"
	.ascii	"ake.make_mkdirrule(\"$(OBJDIR)\")\n_p('clean:')\n_p('\\t@ech"
	.ascii	"o Cleaning %s', prj.name)\n_p('ifeq (posix,$(SHELLTYPE))')\n"
	.ascii	"_p('\\t$(SILENT) rm -f $(TARGET) $(COPYFILES)')\n_p('\\t$(SI"
	.ascii	"LENT) rm -rf $(OBJDIR)')\n_p('else')\n_p('\\t$(SILENT) if ex"
	.ascii	"ist $(subst /,\\\\\\\\,$(TARGETDIR)/%s.*) del $(subst /,\\\\"
	.ascii	"\\\\,$(TARGETDIR)/%s.*)', prj.buildtarget.basename, prj.buil"
	.ascii	"dtarget.basename)\nfor target, source in pairs(cfgpairs[anyc"
	.ascii	"fg]) do\n_p('\\t$(SILENT) if exist $(subst /,\\\\\\\\,%s) de"
	.ascii	"l $(subst /,\\\\\\\\,%s)', target, target)\nend\nfor target,"
	.ascii	" source in pairs(copypairs) do\n_p('\\t$(SILENT) if exist $("
	.ascii	"subst /,\\\\\\\\,%s) del $(subst /,\\\\\\\\,%s)', target, ta"
	.ascii	"rget)\nend\n_p('\\t$(SILENT) if exist $(subst /,\\\\\\\\,$(O"
	.ascii	"BJDIR)) rmdir /s /q $(subst /,\\\\\\\\,$(OBJDIR))')\n_p('end"
	.ascii	"if')\n_p('')\n_p('prebuild:')\n_p('\\t$(PREBUILDCMDS)')\n_p("
	.ascii	"'')\n_p('prelink:')\n_p('\\t$(PRELINKCMDS)')\n_p('')\n_p('# "
	.ascii	"Per-configuration copied file rules')\nfor cfg in premake.ea"
	.ascii	"chconfig(prj) do\n_p('ifneq (,$(findstring %s,$(config)))', "
	.ascii	"_MAKE.esc(cfg.name:lower()))\nfor target, source in pairs(cf"
	.ascii	"gpairs[cfg]) do\npremake.make_copyrule(source, target)\nend\n"
	.ascii	"_p('endif')\n_p('')\nend\n_p('# Copied file rules')\nfor tar"
	.ascii	"get, source in pairs(copypairs) do\npremake.make_copyrule(so"
	.ascii	"urce, target)\nend\n_p('# Embedded file rules')\nfor _, fnam"
	.ascii	"e in ipairs(embedded) do\nif path.getextension(fname) == \"."
	.ascii	"resx\" then\n_p('%s: %s', getresourcefilename(prj, fname), _"
	.ascii	"MAKE.esc(fname))\n_p('\\t$(SILENT) $(RESGEN) $^ $@')\nend\n_"
	.ascii	"p('')\nend\nend\nfunction premake.gmake_cs_config(cfg, csc, "
	.ascii	"cfglibs)\nlocal targetDir = _MAKE.esc(cfg.buildtarget.direct"
	.ascii	"ory)\n_p"
	.ascii	"('ifneq (,$(findstring %s,$(config)))', _MAKE.esc(cfg.name:l"
	.ascii	"ower()))\n_p('  TARGETDIR  := %s', iif(targetDir == \"\", \""
	.ascii	".\", targetDir))\n_p('  OBJDIR     := %s', _MAKE.esc(cfg.obj"
	.ascii	"ectsdir))\n_p('  DEPENDS    := %s', table.concat(_MAKE.esc(p"
	.ascii	"remake.getlinks(cfg, \"dependencies\", \"fullpath\")), \" \""
	.ascii	"))\n_p('  REFERENCES := %s', table.implode(_MAKE.esc(cfglibs"
	.ascii	"[cfg]), \"/r:\", \"\", \" \"))\n_p('  FLAGS      += %s %s', "
	.ascii	"table.implode(cfg.defines, \"/d:\", \"\", \" \"), table.conc"
	.ascii	"at(table.join(csc.getflags(cfg), cfg.buildoptions), \" \"))\n"
	.ascii	"_p('  define PREBUILDCMDS')\nif #cfg.prebuildcommands > 0 th"
	.ascii	"en\n_p('\\t@echo Running pre-build commands')\n_p('\\t%s', t"
	.ascii	"able.implode(cfg.prebuildcommands, \"\", \"\", \"\\n\\t\"))\n"
	.ascii	"end\n_p('  endef')\n_p('  define PRELINKCMDS')\nif #cfg.prel"
	.ascii	"inkcommands > 0 then\n_p('\\t@echo Running pre-link commands"
	.ascii	"')\n_p('\\t%s', table.implode(cfg.prelinkc"
	.string	"ommands, \"\", \"\", \"\\n\\t\"))\nend\n_p('  endef')\n_p('  define POSTBUILDCMDS')\nif #cfg.postbuildcommands > 0 then\n_p('\\t@echo Running post-build commands')\n_p('\\t%s', table.implode(cfg.postbuildcommands, \"\", \"\", \"\\n\\t\"))\nend\n_p('  endef')\n_p('endif')\n_p('')\nend\n"
	.align 8
.LC37:
	.ascii	"local make = premake.make\nfunction premake.make_vala(prj)\n"
	.ascii	"local valac = premake.gettool(prj)\nlocal platforms = premak"
	.ascii	"e.filterplatforms(prj.solution, valac.platforms, \"Native\")"
	.ascii	"\n_p('# %s project makefile autogenerated by GENie', premake"
	.ascii	".action.current().shortname)\n_p('ifndef config')\n_p('  con"
	.ascii	"fig=%s', _MAKE.esc(premake.getconfigname(prj.solution.config"
	.ascii	"urations[1], platforms[1], true)))\n_p('endif')\n_p('')\n_p("
	.ascii	"'ifndef verbose')\n_p('  SILENT = @')\n_p('endif')\n_p('')\n"
	.ascii	"_p('SHELLTYPE := msdos')\n_p('ifeq (,$(ComSpec)$(COMSPEC))')"
	.ascii	"\n_p('  SHELLTYPE := posix')\n_p('endif')\n_p('ifeq (/bin,$("
	.ascii	"findstring /bin,$(SHELL)))')\n_p('  SHELLTYPE := posix')\n_p"
	.ascii	"('endif')\n_p('ifeq (/bin,$(findstring /bin,$(MAKESHELL)))')"
	.ascii	"\n_p('  SHELLTYPE := posix')\n_p('endif')\n_p('')\n_p('ifeq "
	.ascii	"(posix,$(SHELLTYPE))')\n_p('  MKDIR = $(SILENT) mkdir -p \"$"
	.ascii	"(1)\"')\n_p('  COPY  = $(SILENT) cp -fR \"$(1)\" \"$(2)\"')\n"
	.ascii	"_p('  RM    = $(SILENT) rm -f \"$(1)\"')\n_p('else')\n_p('  "
	.ascii	"MKDIR = $(SILENT) mkdir \"$(subst /,\\\\\\\\,$(1))\" 2> nul "
	.ascii	"|| exit 0')\n_p('  COPY  = $(SILENT) copy /Y \"$(subst /,\\\\"
	.ascii	"\\\\,$(1))\" \"$(subst /,\\\\\\\\,$(2))\"')\n_p('  RM    = $"
	.ascii	"(SILENT) del /F \"$(subst /,\\\\\\\\,$(1))\" 2> nul || exit "
	.ascii	"0')\n_p('endif')\n_p('')\n_p('VALAC = %s', valac.valac)\n_p("
	.ascii	"'CC    = %s', valac.cc)\n_p('')\nfor _, platform in ipairs(p"
	.ascii	"latforms) do\nfor cfg in premake.eachconfig(prj, platform) d"
	.ascii	"o\npremake.gmake_valac_config(prj, cfg, valac)\nend\nend\n_p"
	.ascii	"('SOURCES := \\\\')\nfor _, file in ipairs(prj.files) do\nif"
	.ascii	" path.issourcefile(file) then\nif not table.icontains(prj.ex"
	.ascii	"cludes, file) then\n_p('\\t%s \\\\', _MAKE.esc(file))\nend\n"
	.ascii	"end\nend\n_p('')\n_p('.PHONY: clean prebuild prelink')\n_p('"
	.ascii	"')\n_p('all: prebuild prelink $(TARGET) | $(TARGETDIR)')\n_p"
	.ascii	"('\\t@:')\n_p('')\n_p('$(TARGET): $(SOURCES) | $(TARGETDIR)'"
	.ascii	")\n_p('\\t$(SILENT) $(VALAC) -o $(TARGET) --cc=$(CC) $(FLAGS"
	.ascii	") $(SOURCES)')\n_p('\\t$(POSTBUILDCMDS)')\n_p('')\n_p('$(TAR"
	.ascii	"GETDIR):')\npremake.make_mkdirrule(\"$(TARGETDIR)\")\n_p('cl"
	.ascii	"ean:')\nif (not prj.solution.messageskip) or (not table.cont"
	.ascii	"ains(prj.solution.messageskip, \"SkipCleaningMessage\")) the"
	.ascii	"n\n_p('\\"
	.ascii	"t@echo Cleaning %s', prj.name)\nend\n_p('ifeq (posix,$(SHELL"
	.ascii	"TYPE))')\n_p('\\t$(SILENT) rm -f  $(TARGET)')\n_p('else')\n_"
	.ascii	"p('\\t$(SILENT) if exist $(subst /,\\\\\\\\,$(TARGET)) del $"
	.ascii	"(subst /,\\\\\\\\,$(TARGET))')\n_p('endif')\n_p('')\n_p('pre"
	.ascii	"build:')\n_p('\\t$(PREBUILDCMDS)')\n_p('')\n_p('prelink:')\n"
	.ascii	"_p('\\t$(PRELINKCMDS)')\n_p('')\nend\nfunction premake.gmake"
	.ascii	"_valac_config(prj, cfg, valac)\n_p('ifeq ($(config),%s)', _M"
	.ascii	"AKE.esc(cfg.shortname))\n_p('  TARGETDIR  = %s', _MAKE.esc(c"
	.ascii	"fg.buildtarget.directory))\n_p('  TARGET     = $(TARGETDIR)/"
	.ascii	"%s', _MAKE.esc(cfg.buildtarget.name))\n_p('  DEFINES    +=%s"
	.ascii	"', make.list(valac.getdefines(cfg.defines)))\n_p('  VAPIDIRS"
	.ascii	"   +=%s', make.list(valac.getvapidirs(cfg.vapidirs)))\n_p(' "
	.ascii	" PKGS       +=%s', make.list(valac.getlinks(cfg.links)))\n_p"
	.ascii	"('  FLAGS      += $(DEFINES) $(VAPIDIRS) $(PKGS)%s', make.li"
	.ascii	"st(table.join(valac.getvalaflags(cfg), valac.getbuildoptions"
	.ascii	"(cfg.buildoptions), valac.getbuildoptions(cfg.buildoptions_c"
	.ascii	"), cfg.buildoptions_vala)))\n_p('  define PREBUILDCMDS')\nif"
	.ascii	" #cfg.prebuildcommands > 0 then\n_p('\\t@echo Running pre-bu"
	.ascii	"ild commands')\n_p('\\t%s', table.implode(cfg.prebuildcomman"
	.ascii	"ds, \"\", \"\", \"\\n\\t\"))\nend\n_p('  endef')\n_p('  defi"
	.ascii	"ne PRELINKCMDS')\nif #cfg.prelinkcommands > 0 then\n_p('\\t@"
	.ascii	"echo Running pre-link commands')\n_p('\\t%s', table.implode("
	.ascii	"cfg.prelinkc"
	.string	"ommands, \"\", \"\", \"\\n\\t\"))\nend\n_p('  endef')\n_p('  define POSTBUILDCMDS')\nif #cfg.postbuildcommands > 0 then\n_p('\\t@echo Running post-build commands')\n_p('\\t%s', table.implode(cfg.postbuildcommands, \"\", \"\", \"\\n\\t\"))\nend\n_p('  endef')\n_p('endif')\n_p('')\nend\n"
	.align 8
.LC38:
	.ascii	"local make = premake.make\nlocal swift = { }\nfunction prema"
	.ascii	"ke.make_swift(prj)\nlocal tool = premake.gettool(prj)\nlocal"
	.ascii	" platforms = premake.filterplatforms(prj.solution, tool.plat"
	.ascii	"forms, \"Native\")\n_p('# %s project makefile autogenerated "
	.ascii	"by GENie', premake.action.current().shortname)\n_p('ifndef c"
	.ascii	"onfig')\n_p(1, 'config=%s', _MAKE.esc(premake.getconfigname("
	.ascii	"prj.solution.configurations[1], platforms[1], true)))\n_p('e"
	.ascii	"ndif')\n_p('')\n_p('ifndef verbose')\n_p(1, 'SILENT = @')\n_"
	.ascii	"p('endif')\n_p('')\n_p('SHELLTYPE := msdos')\n_p('ifeq (,$(C"
	.ascii	"omSpec)$(COMSPEC))')\n_p(1, 'SHELLTYPE := posix')\n_p('endif"
	.ascii	"')\n_p('ifeq (/bin,$(findstring /bin,$(SHELL)))')\n_p(1, 'SH"
	.ascii	"ELLTYPE := posix')\n_p('endif')\n_p('ifeq (/bin,$(findstring"
	.ascii	" /bin,$(MAKESHELL)))')\n_p(1, 'SHELLTYPE := posix')\n_p('end"
	.ascii	"if')\n_p('')\n_p('ifeq (posix,$(SHELLTYPE))')\n_p(1, 'MKDIR "
	.ascii	"= $(SILENT) mkdir -p \"$(1)\"')\n_p(1, 'COPY  = $(SILENT) cp"
	.ascii	" -fR \"$(1)\" \"$(2)\"')\n_p(1, 'RM    = $(SILENT) rm -f \"$"
	.ascii	"(1)\"')\n_p('else')\n_p(1, 'MKDIR = $(SILENT) mkdir \"$(subs"
	.ascii	"t /,\\\\\\\\,$(1))\" 2> nul || exit 0')\n_p(1, 'COPY  = $(SI"
	.ascii	"LENT) copy /Y \"$(subst /,\\\\\\\\,$(1))\" \"$(subst /,\\\\\\"
	.ascii	"\\,$(2))\"')\n_p(1, 'RM    = $(SILENT) del /F \"$(subst /,\\"
	.ascii	"\\\\\\,$(1))\" 2> nul || exit 0')\n_p('endif')\n_p('')\n_p('"
	.ascii	"SWIFTC = %s', tool.swift)\n_p('SWIFTLINK = %s', tool.swiftc)"
	.ascii	"\n_p('DSYMUTIL = %s', tool.dsymutil)\n_p('AR = %s', tool.ar)"
	.ascii	"\n_p('')\nfor _, platform in ipairs(platforms) do\nfor cfg i"
	.ascii	"n premake.eachconfig(prj, platform) do\nswift.generate_confi"
	.ascii	"g(prj, cfg, tool)\nend\nend\n_p('.PHONY: ')\n_p('')\n_p('all"
	.ascii	": $(WORK_DIRS) $(TARGET)')\n_p('')\n_p('$(WORK_DIRS):')\n_p("
	.ascii	"1, '$(SILENT) $(call MKDIR,$@)')\n_p('')\n_p('SOURCES := \\\\"
	.ascii	"')\nfor _, file in ipairs(prj.files) do\nif path.isswiftfile"
	.ascii	"(file) then\n_p(1, '%s \\\\', _MAKE.esc(file))\nend\nend\n_p"
	.ascii	"('')\nlocal objfiles = {}\n_p('OBJECTS_WITNESS := $(OBJDIR)/"
	.ascii	"build.stamp')\n_p('OBJECTS := \\\\')\nfor _, file in ipairs("
	.ascii	"prj.files) do\nif path.isswiftfile(file) then\nlocal objname"
	.ascii	" = _MAKE.esc(swift.objectname(file))\ntable.insert(objfiles,"
	.ascii	" objname)\n_p(1, '%s \\\\', objname)\nend\nend\n_p('')\nswif"
	.ascii	"t.file_rul"
	.ascii	"es(prj, objfiles)\nswift.linker(prj, tool)\nswift.generate_c"
	.ascii	"lean(prj)\nend\nfunction swift.objectname(file)\nreturn path"
	.ascii	".join(\"$(OBJDIR)\", path.getname(file)..\".o\")\nend\nfunct"
	.ascii	"ion swift.file_rules(prj, objfiles)\n_p('$(OBJECTS_WITNESS):"
	.ascii	" $(SOURCES)')\n_p(1, \"@rm -f $(OBJDIR)/data.tmp\")\n_p(1, \""
	.ascii	"@touch $(OBJDIR)/data.tmp\")\n_p(1, \"$(SILENT) $(SWIFTC) -f"
	.ascii	"rontend -c $(SOURCES) -enable-objc-interop $(SDK) -I $(OUT_D"
	.ascii	"IR) $(SWIFTC_FLAGS) -module-cache-path $(MODULECACHE_DIR) -D"
	.ascii	" SWIFT_PACKAGE $(MODULE_MAPS) -emit-module-doc-path $(OUT_DI"
	.ascii	"R)/$(MODULE_NAME).swiftdoc -module-name $(MODULE_NAME) -emit"
	.ascii	"-module-path $(OUT_DIR)/$(MODULE_NAME).swiftmodule -num-thre"
	.ascii	"ads 8 %s\", table.arglist(\"-o\", objfiles))\n_p(1, \"@mv -f"
	.ascii	" $(OBJDIR)/data.tmp $(OBJECTS_WITNESS)\")\n_p('')\n_p('$(OBJ"
	.ascii	"ECTS): $(OBJECTS_WITNESS)')\n_p(1, '@if test -f $@; then :; "
	.ascii	"else \\\\')\n_p(2, 'rm -f $(OBJECTS_WITNESS); \\\\')\n_p(2, "
	.ascii	"'$(MAKE) $(AM_MAKEFLAGS) $(OBJECTS_WITNESS); \\\\')\n_p(1, '"
	.ascii	"fi')\n_p('')\nend\nfunction swift.linker(prj, tool)\nlocal l"
	.ascii	"ddeps = make.list(premake.getlinks(prj, \"siblings\", \"full"
	.ascii	"path\")) \nif prj.kind == \"StaticLib\" then\n_p(\"$(TARGET)"
	.ascii	": $(OBJECTS) %s \", lddeps)\n_p(1, \"$(SILENT) $(AR) cr $(AR"
	.ascii	"_FLAGS) $@ $(OBJECTS) %s\", (os.is(\"MacOSX\") and \" 2>&1 >"
	.ascii	" /dev/null | sed -e '/.o) has no symbols$$/d'\" or \"\"))\ne"
	.ascii	"lse\n_p(\"$(TARGET): $(OBJECTS) $(LDDEPS)\", lddeps)\n_p(1, "
	.ascii	"\"$(SILENT) $(SWIFTLINK) $(SDK) -L $(OUT_DIR) -o $@ $(SWIFTL"
	.ascii	"INK_FLAGS) $(LD_FLAGS) $(OBJECTS)\")\n_p(\"ifdef SYMBOLS\")\n"
	.ascii	"_p(1, \"$(SILENT) $(DSYMUTIL) $(TARGET) -o $(SYMBOLS)\")\n_p"
	.ascii	"(\"endif\")\nend\n_p('')\nend\nfunction swift.generate_clean"
	.ascii	"(prj)\n_p('clean:')\nif (not prj.solution.messageskip) or (n"
	.ascii	"ot table.contains(prj.solution.messageskip, \"SkipCleaningMe"
	.ascii	"ssage\")) then\n_p('\\t@echo Cleaning %s', prj.name)\nend\n_"
	.ascii	"p('ifeq (posix,$(SHELLTYPE))')\n_p('\\t$(SILENT) rm -f  $(TA"
	.ascii	"RGET)')\n_p('\\t$(SILENT) rm -rf $(OBJDIR)')\n_p('\\t$(SILEN"
	.ascii	"T) rm -rf $(SYMBOLS)')\n_p('\\t$(SILENT) rm -rf $(MODULECACH"
	.ascii	"E_DIR)')\n_p('else')\n_p('\\t$(SILENT) if exist $(subst /,\\"
	.ascii	"\\\\\\,$(TARGET)) del $(subst /,\\\\\\\\,$(TARGET))')\n_p('\\"
	.ascii	"t$(SILE"
	.ascii	"NT) if exist $(subst /,\\\\\\\\,$(OBJDIR)) rmdir /s /q $(sub"
	.ascii	"st /,\\\\\\\\,$(OBJDIR))')\n_p('\\t$(SILENT) if exist $(subs"
	.ascii	"t /,\\\\\\\\,$(SYMBOLS)) rmdir /s /q $(subst /,\\\\\\\\,$(SY"
	.ascii	"MBOLS))')\n_p('\\t$(SILENT) if exist $(subst /,\\\\\\\\,$(MO"
	.ascii	"DULECACHE_DIR)) rmdir /s /q $(subst /,\\\\\\\\,$(MODULECACHE"
	.ascii	"_DIR))')\n_p('endif')\n_p('')\nend\nfunction swift.generate_"
	.ascii	"config(prj, cfg, tool)\n_p('ifeq ($(config),%s)', _MAKE.esc("
	.ascii	"cfg.shortname))\n_p(1, \"OUT_DIR = %s\", cfg.buildtarget.dir"
	.ascii	"ectory)\n  _p(1, \"MODULECACHE_DIR = $(OUT_DIR)/ModuleCache\""
	.ascii	")\n_p(1, \"TARGET = $(OUT_DIR)/%s\", _MAKE.esc(cfg.buildtarg"
	.ascii	"et.name))\nlocal objdir = path.join(cfg.objectsdir, prj.name"
	.ascii	" .. \".build\")\n_p(1, \"OBJDIR = %s\", objdir)\n_p(1, \"MOD"
	.ascii	"ULE_NAME = %s\", prj.name)\n_p(1, \"MODULE_MAPS = %s\", make"
	.ascii	".list(tool.getmodulemaps(cfg)))\n_p(1, \"SWIFTC_FLAGS = %s\""
	.ascii	", make.list(tool.getswiftcflags(cfg)))\n_p(1, \"SWIFTLINK_FL"
	.ascii	"AGS = %s\", make.list(tool.getswiftlinkflags(cfg)))\n_p(1, \""
	.ascii	"AR_FLAGS = %s\", make.list(tool.getarchiveflags(cfg, cfg, fa"
	.ascii	"lse)))\n_p(1, \"LD_FLAGS = %s\", make.list(tool.getldflags(c"
	.ascii	"fg)))\n_p(1, \"LDDEPS = %s\", make.list(premake.getlinks(cfg"
	.ascii	", \"siblings\", \"fullpath\")))\nif cfg.flags.Symbols then\n"
	.ascii	"_p(1, \"SYMBOLS = $(TARGET).dSYM\")\nend\nlocal sdk = tool.g"
	.ascii	"et_sdk_path(cfg)\nif sdk then\n_p(1, \"TOOLCHAIN_PATH = %s\""
	.ascii	", to"
	.string	"ol.get_toolchain_path(cfg))\n_p(1, \"SDK_PATH = %s\", sdk)\n_p(1, \"PLATFORM_PATH = %s\", tool.get_sdk_platform_path(cfg))\n_p(1, \"SDK = -sdk $(SDK_PATH)\")\nelse\n_p(1, \"SDK_PATH =\")\n_p(1, \"SDK =\")\nend\n_p(1,'WORK_DIRS = $(OUT_DIR) $(OBJDIR)')\n_p('endif')\n_p('')\nend"
	.align 8
.LC39:
	.ascii	"premake.vstudio = { }\nlocal toolsets = {\nvs2010 = \"v100\""
	.ascii	",\nvs2012 = \"v110\",\nvs2013 = \"v120\",\nvs2015 = \"v140\""
	.ascii	",\nvs2017 = \"v141\",\nvs2019 = \"v142\",\n}\npremake.vstudi"
	.ascii	"o.toolset = toolsets[_ACTION] or \"unknown?\"\npremake.vstud"
	.ascii	"io.splashpath = ''\npremake.vstudio.xpwarning = true\nlocal "
	.ascii	"vstudio = premake.vstudio\nvstudio.platforms = {\nany     = "
	.ascii	"\"Any CPU\",\nmixed   = \"Mixed Platforms\",\nNative  = \"Wi"
	.ascii	"n32\",\nx86     = \"x86\",\nx32     = \"Win32\",\nx64     = "
	.ascii	"\"x64\",\nPS3     = \"PS3\",\nXbox360 = \"Xbox 360\",\nARM  "
	.ascii	"   = \"ARM\",\nOrbis   = \"ORBIS\",\nDurango = \"Durango\",\n"
	.ascii	"TegraAndroid = \"Tegra-Android\",\nNX32    = \"NX32\",\nNX64"
	.ascii	"    = \"NX64\",\nEmscripten = \"Emscripten\",\n}\nfunction v"
	.ascii	"studio.arch(prj)\nif (prj.language == \"C#\") then\nreturn \""
	.ascii	"Any CPU\"\nelse\nreturn \"Win32\"\nend\nend\nfunction vstudi"
	.ascii	"o.iswinrt()\nreturn vstudio.storeapp ~= nil and vstudio.stor"
	.ascii	"eapp ~= ''\nend\nfunction vstudio.buildconfigs(sln)\nlocal c"
	.ascii	"fgs = { }\nlocal platforms = premake.filterplatforms(sln, vs"
	.ascii	"tudio.platforms, \"Native\")\nlocal hascpp    = premake.hasc"
	.ascii	"ppproject(sln)\nlocal hasdotnet = premake.hasdotnetproject(s"
	.ascii	"ln)\nif hasdotnet and (_ACTION > \"vs2008\" or hascpp) then\n"
	.ascii	"table.insert(platforms, 1, \"mixed\")\nend\nif hasdotnet and"
	.ascii	" (_ACTION < \"vs2010\" or not hascpp) then\ntable.insert(pla"
	.ascii	"tforms, 1, \"any\")\nend\nif _ACTION > \"vs2008\" then\nloca"
	.ascii	"l platforms2010 = { }\nfor _, platform in ipairs(platforms) "
	.ascii	"do\nif vstudio.platforms[platform] == \"Win32\" then\nif has"
	.ascii	"cpp then\ntable.insert(platforms2010, platform)\nend\nif has"
	.ascii	"dotnet then\ntable.insert(platforms2010, \"x86\")\nend\nelse"
	.ascii	"\ntable.insert(platforms2010, platform)\nend\nend\nplatforms"
	.ascii	" = platforms2010\nend\nfor _, buildcfg in ipairs(sln.configu"
	.ascii	"rations) do\nfor _, platform in ipairs(platforms) do\nlocal "
	.ascii	"entry = { }\nentry.src_buildcfg = buildcfg\nentry.src_platfo"
	.ascii	"rm = platform\nif platform ~= \"PS3\" or _ACTION > \"vs2008\""
	.ascii	" then\nentry.buildcfg = buildcfg\nentry.platform = vstudio.p"
	.ascii	"latforms[platform]\nelse\nentry.buildcfg = platform .. \" \""
	.ascii	" .. buildcfg\nentry.platform = \"Win32\"\nend\nentry.name = "
	.ascii	"entry.buildcfg .. \"|\" .. entry.platform\nentry.isr"
	.ascii	"eal = (platform ~= \"any\" and platform ~= \"mixed\")\ntable"
	.ascii	".insert(cfgs, entry)\nend\nend\nreturn cfgs\nend\nfunction p"
	.ascii	"remake.vstudio.bakeimports(sln)\nfor _,iprj in ipairs(sln.im"
	.ascii	"portedprojects) do\nif string.find(iprj.location, \".csproj\""
	.ascii	") ~= nil then\niprj.language = \"C#\"\nelse\niprj.language ="
	.ascii	" \"C++\"\nend\nlocal f, err = io.open(iprj.location, \"r\")\n"
	.ascii	"if (not f) then\nerror(err, 1)\nend\nlocal projcontents = f:"
	.ascii	"read(\"*all\")\nf:close()\nlocal found, _, uuid = string.fin"
	.ascii	"d(projcontents, \"<ProjectGuid>{([%w%-]+)}</ProjectGuid>\")\n"
	.ascii	"if not found then\nerror(\"Could not find ProjectGuid elemen"
	.ascii	"t in project \" .. iprj.location, 1)\nend\niprj.uuid = uuid\n"
	.ascii	"if iprj.language == \"C++\" and string.find(projcontents, \""
	.ascii	"<CLRSupport>true</CLRSupport>\") then\niprj.flags.Managed = "
	.ascii	"true\nend\niprj.relpath = path.getrelative(sln.location, ipr"
	.ascii	"j.location)\nend\nend\nfunction premake.vstudio.getimportprj"
	.ascii	"(prjpath, sln)\nfor _,iprj in ipairs(sln.importedprojects) d"
	.ascii	"o\nif prjpath == iprj.relpath then\nreturn iprj\nend\nend\ne"
	.ascii	"rror(\"Could not find reference import project \" .. prjpath"
	.ascii	", 1)\nend\nfunction vstudio.cleansolution(sln)\npremake.clea"
	.ascii	"n.file(sln, \"%%.sln\")\npremake.clean.file(sln, \"%%.suo\")"
	.ascii	"\npremake.clean.file(sln, \"%%.ncb\")\npremake.clean.file(sl"
	.ascii	"n, \"%%.userprefs\")\npremake.clean.file(sln, \"%%.usertasks"
	.ascii	"\")\nend\nfunction vstudio.cleanproject(prj)\nlocal fname = "
	.ascii	"premake.project.getfilename(prj, \"%%\")\nos.remove(fname .."
	.ascii	" \".vcproj\")\nos.remove(fname .. \".vcproj.user\")\nos.remo"
	.ascii	"ve(fname .. \".vcxproj\")\nos.remove(fname .. \".vcxproj.use"
	.ascii	"r\")\nos.remove(fname .. \".vcxproj.filters\")\nos.remove(fn"
	.ascii	"ame .. \".csproj\")\nos.remove(fname .. \".csproj.user\")\no"
	.ascii	"s.remove(fname .. \".pidb\")\nos.remove(fname .. \".sdf\")\n"
	.ascii	"end\nfunction vstudio.cleantarget(name)\nos.remove(name .. \""
	.ascii	".pdb\")\nos.remove(name .. \".idb\")\nos.remove(name .. \".i"
	.ascii	"lk\")\nos.remove(name .. \".vshost.exe\")\nos.remove(name .."
	.ascii	" \".exe.manifest\")\nend\nfunction vstudio.projectfile(prj)\n"
	.ascii	"local pattern\nif prj.language == \"C#\" then\npattern = \"%"
	.ascii	"%.csproj\"\nelse\npattern = iif(_ACTION > \"vs2008\", \"%%.v"
	.ascii	"cxproj\", \"%%.vcproj\")\nend\nlocal fn"
	.ascii	"ame = premake.pr"
	.string	"oject.getbasename(prj.name, pattern)\nfname = path.join(prj.location, fname)\nreturn fname\nend\nfunction vstudio.tool(prj)\nif (prj.language == \"C#\") then\nreturn \"FAE04EC0-301F-11D3-BF4B-00C04F79EFBC\"\nelse\nreturn \"8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942\"\nend\nend\n"
	.align 8
.LC40:
	.ascii	"premake.vstudio.sln2005 = { }\nlocal vstudio = premake.vstud"
	.ascii	"io\nlocal sln2005 = premake.vstudio.sln2005\nfunction sln200"
	.ascii	"5.generate(sln)\nio.eol = '\\r\\n'\nsln.vstudio_configs = pr"
	.ascii	"emake.vstudio.buildconfigs(sln)\npremake.vstudio.bakeimports"
	.ascii	"(sln)\n_p('\\239\\187\\191')\nsln2005.reorderProjects(sln)\n"
	.ascii	"sln2005.header(sln)\nfor grp in premake.solution.eachgroup(s"
	.ascii	"ln) do\nsln2005.group(grp)\nend\nfor prj in premake.solution"
	.ascii	".eachproject(sln) do\nsln2005.project(prj)\nend\n        \nf"
	.ascii	"or _,iprj in ipairs(sln.importedprojects) do\nsln2005.import"
	.ascii	"project(iprj)\nend\n_p('Global')\nsln2005.platforms(sln)\nsl"
	.ascii	"n2005.project_platforms(sln)\nsln2005.properties(sln)\nsln20"
	.ascii	"05.project_groups(sln)\n_p('EndGlobal')\nend\nfunction sln20"
	.ascii	"05.reorderProjects(sln)\nif sln.startproject then\nfor i, pr"
	.ascii	"j in ipairs(sln.projects) do\nif sln.startproject == prj.nam"
	.ascii	"e then\nlocal cur = prj.group\nwhile cur ~= nil do\nfor j, g"
	.ascii	"roup in ipairs(sln.groups) do\nif group == cur then\ntable.r"
	.ascii	"emove(sln.groups, j)\nbreak\nend\nend\ntable.insert(sln.grou"
	.ascii	"ps, 1, cur)\ncur = cur.parent\nend\ntable.remove(sln.project"
	.ascii	"s, i)\ntable.insert(sln.projects, 1, prj)\nbreak\nend\nend\n"
	.ascii	"end\nend\nfunction sln2005.header(sln)\nlocal action = prema"
	.ascii	"ke.action.current()\n_p('Microsoft Visual Studio Solution Fi"
	.ascii	"le, Format Version %d.00', action.vstudio.solutionVersion)\n"
	.ascii	"if(_ACTION:sub(3) == \"2015\" or  _ACTION:sub(3) == \"2017\""
	.ascii	") then\n_p('# Visual Studio %s', action.vstudio.toolsVersion"
	.ascii	":sub(1,2))\nelse\n_p('# Visual Studio %s', _ACTION:sub(3))\n"
	.ascii	"end\nend\nfunction sln2005.project(prj)\nlocal projpath = pa"
	.ascii	"th.translate(path.getrelative(prj.solution.location, vstudio"
	.ascii	".projectfile(prj)), \"\\\\\")\n_p('Project(\"{%s}\") = \"%s\""
	.ascii	", \"%s\", \"{%s}\"', vstudio.tool(prj), prj.name, projpath, "
	.ascii	"prj.uuid)\nsln2005.projectdependencies(prj)\n_p('EndProject'"
	.ascii	")\nend\nfunction sln2005.group(grp)\n_p('Project(\"{2150E333"
	.ascii	"-8FDC-42A3-9474-1A3956D46DE8}\") = \"%s\", \"%s\", \"{%s}\"'"
	.ascii	", grp.name, grp.name, grp.uuid)\n_p('EndProject')\nend\n    "
	.ascii	"\nfunction sln2005.importproject(iprj)\n_p('Project(\"{%s}\""
	.ascii	") = \"%s\", \"%s\", \"{%s}\"', vstudio.tool(iprj), path.getb"
	.ascii	"asenam"
	.ascii	"e(iprj.location), iprj.relpath, iprj.uuid)\n_p('EndProject')"
	.ascii	"\nend\nfunction sln2005.projectdependencies(prj)\nlocal deps"
	.ascii	" = premake.getdependencies(prj)\nif #deps > 0 then\nlocal fu"
	.ascii	"nction compareuuid(a, b) return a.uuid < b.uuid end\ntable.s"
	.ascii	"ort(deps, compareuuid)\n_p('\\tProjectSection(ProjectDepende"
	.ascii	"ncies) = postProject')\nfor _, dep in ipairs(deps) do\n_p('\\"
	.ascii	"t\\t{%s} = {%s}', dep.uuid, dep.uuid)\nend\n_p('\\tEndProjec"
	.ascii	"tSection')\nend\nend\nfunction sln2005.platforms(sln)\n_p('\\"
	.ascii	"tGlobalSection(SolutionConfigurationPlatforms) = preSolution"
	.ascii	"')\nfor _, cfg in ipairs(sln.vstudio_configs) do\n_p('\\t\\t"
	.ascii	"%s = %s', cfg.name, cfg.name)\nend\n_p('\\tEndGlobalSection'"
	.ascii	")\nend\nfunction sln2005.project_platform(prj, sln)\nfor _, "
	.ascii	"cfg in ipairs(sln.vstudio_configs) do\nlocal mapped\nlocal b"
	.ascii	"uildfor\nif premake.isdotnetproject(prj) then\nbuildfor = \""
	.ascii	"x64\"\nmapped = \"Any CPU\"\nelseif prj.flags and prj.flags."
	.ascii	"Managed then\nmapped = \"x64\"\nelse\nif cfg.platform == \"A"
	.ascii	"ny CPU\" or cfg.platform == \"Mixed Platforms\" then\nmapped"
	.ascii	" = sln.vstudio_configs[3].platform\nelse\nmapped = cfg.platf"
	.ascii	"orm\nend\nend\nlocal build_project = true\nif prj.solution ~"
	.ascii	"= nil then\n    build_project = premake.getconfig(prj, cfg.s"
	.ascii	"rc_buildcfg, cfg.src_platform).build\nend\n_p('\\t\\t{%s}.%s"
	.ascii	".ActiveCfg = %s|%s', prj.uuid, cfg.name, cfg.buildcfg, mappe"
	.ascii	"d)\nif build_project then\n    if mapped == cfg.platform or "
	.ascii	"cfg.platform == \"Mixed Platforms\" or buildfor == cfg.platf"
	.ascii	"orm then\n    _p('\\t\\t{%s}.%s.Build.0 = %s|%s',  prj.uuid,"
	.ascii	" cfg.name, cfg.buildcfg, mapped)\n    end\n    if premake.vs"
	.ascii	"tudio.iswinrt() and prj.kind == \"WindowedApp\" then\n      "
	.ascii	" _p('\\t\\t{%s}.%s.Deploy.0 = %s|%s',  prj.uuid, cfg.name, c"
	.ascii	"fg.buildcfg, mapped)\n    end\nend\nend\nend\nfunction sln20"
	.ascii	"05.project_platforms(sln)\n_p('\\tGlobalSection(ProjectConfi"
	.ascii	"gurationPlatforms) = postSolution')\nfor prj in premake.solu"
	.ascii	"tion.eachproject(sln) do\nsln2005.project_platform(prj, sln)"
	.ascii	"\nend\nfor _,iprj in ipairs(sln.importedprojects) do\nsln200"
	.ascii	"5.project_platform(iprj, sln)\nend\n_p('\\tEndGlobalSection'"
	.ascii	")\nend\nfunction sln2005.properties(sln)\n_p('\\tGlob"
	.ascii	"alSection(SolutionProperties) = preSolution')\n_p('\\t\\tHid"
	.ascii	"eSolutionNode = FALSE')\n_p('\\tEndGlobalSection')\nend\nfun"
	.ascii	"ction sln2005.project_groups(sln)\n_p('\\tGlobalSection(Nest"
	.ascii	"edProjects) = preSolution')\nfor grp in premake.solution.eac"
	.ascii	"hgroup(sln) do\nif grp.parent ~= nil then\n_p('\\t\\t{%s} = "
	.ascii	"{%s}', grp.uuid, grp.parent.uuid)\nend\nend\nfor prj in prem"
	.ascii	"ake.solution.eachproject("
	.string	"sln) do\nif prj.group ~= nil then\n_p('\\t\\t{%s} = {%s}', prj.uuid, prj.group.uuid)\nend\nend\nfor _,iprj in ipairs(sln.importedprojects) do\nif iprj.group ~= nil then\n_p('\\t\\t{%s} = {%s}', iprj.uuid, iprj.group.uuid)\nend\nend\n        \n_p('\\tEndGlobalSection')\nend"
	.align 8
.LC41:
	.ascii	"premake.vstudio.vc2010 = { }\nlocal vc2010 = premake.vstudio"
	.ascii	".vc2010\nlocal vstudio = premake.vstudio\nlocal function vs2"
	.ascii	"010_config(prj)\nfor _, cfginfo in ipairs(prj.solution.vstud"
	.ascii	"io_configs) do\nif cfginfo.src_platform == \"TegraAndroid\" "
	.ascii	"then\n_p(1,'<PropertyGroup Label=\"NsightTegraProject\">')\n"
	.ascii	"_p(2,'<NsightTegraProjectRevisionNumber>11</NsightTegraProje"
	.ascii	"ctRevisionNumber>')\n_p(1,'</PropertyGroup>')\nbreak\nend\ne"
	.ascii	"nd\n_p(1,'<ItemGroup Label=\"ProjectConfigurations\">')\nfor"
	.ascii	" _, cfginfo in ipairs(prj.solution.vstudio_configs) do\n_p(2"
	.ascii	",'<ProjectConfiguration Include=\"%s\">', premake.esc(cfginf"
	.ascii	"o.name))\n_p(3,'<Configuration>%s</Configuration>',cfginfo.b"
	.ascii	"uildcfg)\n_p(3,'<Platform>%s</Platform>',cfginfo.platform)\n"
	.ascii	"_p(2,'</ProjectConfiguration>')\nend\n_p(1,'</ItemGroup>')\n"
	.ascii	"end\nlocal function vs2010_globals(prj)\nlocal action = prem"
	.ascii	"ake.action.current()\n_p(1,'<PropertyGroup Label=\"Globals\""
	.ascii	">')\n_p(2, '<ProjectGuid>{%s}</ProjectGuid>',prj.uuid)\n_p(2"
	.ascii	", '<RootNamespace>%s</RootNamespace>',prj.name)\nif vstudio."
	.ascii	"storeapp ~= \"durango\" then\nlocal windowsTargetPlatformVer"
	.ascii	"sion = prj.windowstargetplatformversion or action.vstudio.wi"
	.ascii	"ndowsTargetPlatformVersion\nif windowsTargetPlatformVersion "
	.ascii	"~= nil then\n_p(2,'<WindowsTargetPlatformVersion>%s</Windows"
	.ascii	"TargetPlatformVersion>',windowsTargetPlatformVersion)\nif wi"
	.ascii	"ndowsTargetPlatformVersion and string.startswith(windowsTarg"
	.ascii	"etPlatformVersion, \"10.\") then\n_p(2,'<WindowsTargetPlatfo"
	.ascii	"rmMinVersion>%s</WindowsTargetPlatformMinVersion>', prj.wind"
	.ascii	"owstargetplatformminversion or \"10.0.10240.0\")\nend\nend\n"
	.ascii	"end\nif prj.flags and prj.flags.Managed then\nlocal framewor"
	.ascii	"kVersion = prj.framework or \"4.0\"\n_p(2, '<TargetFramework"
	.ascii	"Version>v%s</TargetFrameworkVersion>', frameworkVersion)\n_p"
	.ascii	"(2, '<Keyword>ManagedCProj</Keyword>')\nelseif vstudio.iswin"
	.ascii	"rt() then\n_p(2, '<DefaultLanguage>en-US</DefaultLanguage>')"
	.ascii	"\nif vstudio.storeapp == \"durango\" then\n_p(2, '<Keyword>W"
	.ascii	"in32Proj</Keyword>')\n_p(2, '<ApplicationEnvironment>title</"
	.ascii	"ApplicationEnvironment>')\n_p(2, '<MinimumVisualStudioVersio"
	.ascii	"n>14.0</MinimumVisualStu"
	.ascii	"dioVersion>')\n_p(2, '<TargetRuntime>Native</TargetRuntime>'"
	.ascii	")\nelse\n_p(2, '<AppContainerApplication>true</AppContainerA"
	.ascii	"pplication>')\n_p(2, '<MinimumVisualStudioVersion>12.0</Mini"
	.ascii	"mumVisualStudioVersion>')\n_p(2, '<ApplicationType>Windows S"
	.ascii	"tore</ApplicationType>')\n_p(2, '<ApplicationTypeRevision>%s"
	.ascii	"</ApplicationTypeRevision>', vstudio.storeapp)\nend\nelse\n_"
	.ascii	"p(2, '<Keyword>Win32Proj</Keyword>')\nend\nif not vstudio.xp"
	.ascii	"warning then\n_p(2, '<XPDeprecationWarning>false</XPDeprecat"
	.ascii	"ionWarning>')\nend\n_p(1,'</PropertyGroup>')\nend\nfunction "
	.ascii	"vc2010.config_type(config)\nlocal t =\n{\nSharedLib = \"Dyna"
	.ascii	"micLibrary\",\nStaticLib = \"StaticLibrary\",\nConsoleApp = "
	.ascii	"\"Application\",\nWindowedApp = \"Application\"\n}\nreturn t"
	.ascii	"[config.kind]\nend\nlocal function if_config_and_platform()\n"
	.ascii	"return 'Condition=\"\\'$(Configuration)|$(Platform)\\'==\\'%"
	.ascii	"s\\'\"'\nend\nlocal function optimisation(cfg)\nlocal result"
	.ascii	" = \"Disabled\"\nfor _, value in ipairs(cfg.flags) do\nif (v"
	.ascii	"alue == \"Optimize\") then\nresult = \"Full\"\nelseif (value"
	.ascii	" == \"OptimizeSize\") then\nresult = \"MinSpace\"\nelseif (v"
	.ascii	"alue == \"OptimizeSpeed\") then\nresult = \"MaxSpeed\"\nend\n"
	.ascii	"end\nreturn result\nend\nfunction vc2010.configurationProper"
	.ascii	"tyGroup(cfg, cfginfo)\n_p(1, '<PropertyGroup '..if_config_an"
	.ascii	"d_platform() ..' Label=\"Configuration\">'\n, premake.esc(cf"
	.ascii	"ginfo.name))\nlocal is2019 = premake.action.current() == pre"
	.ascii	"make.action.get(\"vs2019\")\nif is2019 then\n    _p(2, '<VCP"
	.ascii	"rojectVersion>%s</VCProjectVersion>', action.vstudio.toolsVe"
	.ascii	"rsion)\nif cfg.flags.UnitySupport then\n    _p(2, '<EnableUn"
	.ascii	"itySupport>true</EnableUnitySupport>')\nend\nend\n_p(2, '<Co"
	.ascii	"nfigurationType>%s</ConfigurationType>', vc2010.config_type("
	.ascii	"cfg))\n_p(2, '<UseDebugLibraries>%s</UseDebugLibraries>', ii"
	.ascii	"f(optimisation(cfg) == \"Disabled\",\"true\",\"false\"))\n_p"
	.ascii	"(2, '<PlatformToolset>%s</PlatformToolset>',     premake.vst"
	.ascii	"udio.toolset)\nif os.is64bit() then\n_p(2, '<PreferredToolAr"
	.ascii	"chitecture>x64</PreferredToolArchitecture>')\nend\nif cfg.fl"
	.ascii	"ags.MFC then\n_p(2,'<UseOfMfc>%s</UseOfMfc>', iif(cfg.flags."
	.ascii	"StaticRuntime, \"Static\", \"Dynamic\"))\nend\nif cfg.flags."
	.ascii	"A"
	.ascii	"TL or cfg.flags.StaticATL then\n_p(2,'<UseOfAtl>%s</UseOfAtl"
	.ascii	">', iif(cfg.flags.StaticATL, \"Static\", \"Dynamic\"))\nend\n"
	.ascii	"if cfg.flags.Unicode then\n_p(2,'<CharacterSet>Unicode</Char"
	.ascii	"acterSet>')\nend\nif cfg.flags.Managed then\n_p(2,'<CLRSuppo"
	.ascii	"rt>true</CLRSupport>')\nend\nif cfg.platform == \"TegraAndro"
	.ascii	"id\" then\nif cfg.androidtargetapi then\n_p(2,'<AndroidTarge"
	.ascii	"tAPI>android-%s</AndroidTargetAPI>', cfg.androidtargetapi)\n"
	.ascii	"end\nif cfg.androidminapi then\n_p(2,'<AndroidMinAPI>android"
	.ascii	"-%s</AndroidMinAPI>', cfg.androidminapi)\nend\nif cfg.androi"
	.ascii	"darch then\n_p(2,'<AndroidArch>%s</AndroidArch>', cfg.androi"
	.ascii	"darch)\nend\nif cfg.androidndktoolchainversion then\n_p(2,'<"
	.ascii	"NdkToolchainVersion>%s</NdkToolchainVersion>', cfg.androidnd"
	.ascii	"ktoolchainversion)\nend\nif cfg.androidstltype then\n_p(2,'<"
	.ascii	"AndroidStlType>%s</AndroidStlType>', cfg.androidstltype)\nen"
	.ascii	"d\nend\nif cfg.platform == \"NX32\" or cfg.platform == \"NX6"
	.ascii	"4\" then\n_p(2,'<NintendoSdkRoot>$(NINTENDO_SDK_ROOT)\\\\</N"
	.ascii	"intendoSdkRoot>')\n_p(2,'<NintendoSdkSpec>NX</NintendoSdkSpe"
	.ascii	"c>')\nif premake.config.isdebugbuild(cfg) then\n_p(2,'<Ninte"
	.ascii	"ndoSdkBuildType>Debug</NintendoSdkBuildType>')\nelse\n_p(2,'"
	.ascii	"<NintendoSdkBuildType>Release</NintendoSdkBuildType>')\nend\n"
	.ascii	"end\nif cfg.flags.Symbols and (premake.action.current() == p"
	.ascii	"remake.action.get(\"vs2017\") or is2019) then\n_p(2, '<Debug"
	.ascii	"Symbols>true</DebugSymbols>')\nend\n_p(1,'</PropertyGroup>')"
	.ascii	"\nend\nlocal function import_props(prj)\nfor _, cfginfo in i"
	.ascii	"pairs(prj.solution.vstudio_configs) do\nlocal cfg = premake."
	.ascii	"getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\n"
	.ascii	"_p(1,'<ImportGroup '..if_config_and_platform() ..' Label=\"P"
	.ascii	"ropertySheets\">'\n,premake.esc(cfginfo.name))\n_p(2,'<Impor"
	.ascii	"t Project=\"$(UserRootDir)\\\\Microsoft.Cpp.$(Platform).user"
	.ascii	".props\" Condition=\"exists(\\'$(UserRootDir)\\\\Microsoft.C"
	.ascii	"pp.$(Platform).user.props\\')\" Label=\"LocalAppDataPlatform"
	.ascii	"\" />')\nif #cfg.propertysheets > 0 then\nlocal dirs = cfg.p"
	.ascii	"ropertysheets\nfor _, dir in ipairs(dirs) do\n_p(2,'<Import "
	.ascii	"Project=\"%s\" />', path.translate(dir))\nend\nend\n_p(1,'</"
	.ascii	"ImportGroup>')\nend\nend\nlocal function ad"
	.ascii	"d_trailing_backslash(dir)\nif dir:len() > 0 and dir:sub(-1) "
	.ascii	"~= \"\\\\\" then\nreturn dir..\"\\\\\"\nend\nreturn dir\nend"
	.ascii	"\nfunction vc2010.outputProperties(prj)\nfor _, cfginfo in i"
	.ascii	"pairs(prj.solution.vstudio_configs) do\nlocal cfg = premake."
	.ascii	"getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\n"
	.ascii	"local target = cfg.buildtarget\nlocal outdir = add_trailing_"
	.ascii	"backslash(target.directory)\nlocal intdir = add_trailing_bac"
	.ascii	"kslash(iif(action.vstudio.intDirAbsolute\n, path.translate(\n"
	.ascii	"  path.join(prj.solution.location, cfg.objectsdir)\n, '\\\\'"
	.ascii	")\n, cfg.objectsdir\n))\n_p(1,'<PropertyGroup '..if_config_a"
	.ascii	"nd_platform() ..'>', premake.esc(cfginfo.name))\n_p(2,'<OutD"
	.ascii	"ir>%s</OutDir>', iif(outdir:len() > 0, premake.esc(outdir), "
	.ascii	"\".\\\\\"))\nif cfg.platform == \"Xbox360\" then\n_p(2,'<Out"
	.ascii	"putFile>$(OutDir)%s</OutputFile>', premake.esc(target.name))"
	.ascii	"\nend\n_p(2,'<IntDir>%s</IntDir>', premake.esc(intdir))\n_p("
	.ascii	"2,'<TargetName>%s</TargetName>', premake.esc(path.getbasenam"
	.ascii	"e(target.name)))\n_p(2,'<TargetExt>%s</TargetExt>', premake."
	.ascii	"esc(path.getextension(target.name)))\nif cfg.kind == \"Share"
	.ascii	"dLib\" then\nlocal ignore = (cfg.flags.NoImportLib ~= nil)\n"
	.ascii	"_p(2,'<IgnoreImportLibrary>%s</IgnoreImportLibrary>', tostri"
	.ascii	"ng(ignore))\nend\nif cfg.platform == \"Durango\" then\n_p(2,"
	.ascii	" '<ReferencePath>$(Console_SdkLibPath);$(Console_SdkWindowsM"
	.ascii	"etadataPath)</ReferencePath>')\n_p(2, '<LibraryPath>$(Consol"
	.ascii	"e_SdkLibPath)</LibraryPath>')\n_p(2, '<LibraryWPath>$(Consol"
	.ascii	"e_SdkLibPath);$(Console_SdkWindowsMetadataPath)</LibraryWPat"
	.ascii	"h>')\n_p(2, '<IncludePath>$(Console_SdkIncludeRoot)</Include"
	.ascii	"Path>')\n_p(2, '<ExecutablePath>$(Console_SdkRoot)bin;$(VCIn"
	.ascii	"stallDir)bin\\\\x86_amd64;$(VCInstallDir)bin;$(WindowsSDK_Ex"
	.ascii	"ecutablePath_x86);$(VSInstallDir)Common7\\\\Tools\\\\bin;$(V"
	.ascii	"SInstallDir)Common7\\\\tools;$(VSInstallDir)Common7\\\\ide;$"
	.ascii	"(ProgramFiles)\\\\HTML Help Workshop;$(MSBuildToolsPath32);$"
	.ascii	"(FxCopDir);$(PATH);</ExecutablePath>')\nif cfg.imagepath the"
	.ascii	"n\n_p(2, '<LayoutDir>%s</LayoutDir>', cfg.imagepath)\nelse\n"
	.ascii	"_p(2, '<LayoutDir>%s</LayoutDir>', prj.name)\nend\nif cfg.pu"
	.ascii	"llmappingfile ~= nil then\n_p(2,"
	.ascii	"'<PullMappingFile>%s</PullMappingFile>', premake.esc(cfg.pul"
	.ascii	"lmappingfile))\nend\n_p(2, '<LayoutExtensionFilter>*.pdb;*.i"
	.ascii	"lk;*.exp;*.lib;*.winmd;*.appxrecipe;*.pri;*.idb</LayoutExten"
	.ascii	"sionFilter>')\n_p(2, '<IsolateConfigurationsOnDeploy>true</I"
	.ascii	"solateConfigurationsOnDeploy>')\nend\nif cfg.kind ~= \"Stati"
	.ascii	"cLib\" then\n_p(2,'<LinkIncremental>%s</LinkIncremental>', t"
	.ascii	"ostring(premake.config.isincrementallink(cfg)))\nend\nif cfg"
	.ascii	".applicationdatadir ~= nil then\n_p(2,'<ApplicationDataDir>%"
	.ascii	"s</ApplicationDataDir>', premake.esc(cfg.applicationdatadir)"
	.ascii	")\nend\nif cfg.flags.NoManifest then\n_p(2,'<GenerateManifes"
	.ascii	"t>false</GenerateManifest>')\nend\n_p(1,'</PropertyGroup>')\n"
	.ascii	"end\nend\nlocal function runtime(cfg)\nlocal runtime\nlocal "
	.ascii	"flags = cfg.flags\nif premake.config.isdebugbuild(cfg) then\n"
	.ascii	"runtime = iif(flags.StaticRuntime and not flags.Managed, \"M"
	.ascii	"ultiThreadedDebug\", \"MultiThreadedDebugDLL\")\nelse\nrunti"
	.ascii	"me = iif(flags.StaticRuntime and not flags.Managed, \"MultiT"
	.ascii	"hreaded\", \"MultiThreadedDLL\")\nend\nreturn runtime\nend\n"
	.ascii	"local function precompiled_header(cfg)\n      if not cfg.fla"
	.ascii	"gs.NoPCH and cfg.pchheader then\n_p(3,'<PrecompiledHeader>Us"
	.ascii	"e</PrecompiledHeader>')\n_p(3,'<PrecompiledHeaderFile>%s</Pr"
	.ascii	"ecompiledHeaderFile>', cfg.pchheader)\nelse\n_p(3,'<Precompi"
	.ascii	"ledHeader></PrecompiledHeader>')\nend\nend\nlocal function p"
	.ascii	"reprocessor(indent,cfg,escape)\nif #cfg.defines > 0 then\nlo"
	.ascii	"cal defines = table.concat(cfg.defines, \";\")\nif escape th"
	.ascii	"en\ndefines = defines:gsub('\"', '\\\\\"')\nend\nlocal isPre"
	.ascii	"processorDefinitionPresent = string.find(defines, \"%%%(Prep"
	.ascii	"rocessorDefinitions%)\")\nif isPreprocessorDefinitionPresent"
	.ascii	" then\n_p(indent,'<PreprocessorDefinitions>%s</PreprocessorD"
	.ascii	"efinitions>'\n,premake.esc(defines))\nelse\n_p(indent,'<Prep"
	.ascii	"rocessorDefinitions>%s;%%(PreprocessorDefinitions)</Preproce"
	.ascii	"ssorDefinitions>'\n,premake.esc(defines))\nend\nelse\n_p(ind"
	.ascii	"ent,'<PreprocessorDefinitions></PreprocessorDefinitions>')\n"
	.ascii	"end\nend\nlocal function include_dirs(indent,cfg)\nlocal inc"
	.ascii	"ludedirs = table.join(cfg.userincludedirs, cfg.includedirs, "
	.ascii	"cfg.systemincludedirs)\nif #inc"
	.ascii	"ludedirs> 0 then\n_p(indent,'<AdditionalIncludeDirectories>%"
	.ascii	"s;%%(AdditionalIncludeDirectories)</AdditionalIncludeDirecto"
	.ascii	"ries>'\n,premake.esc(path.translate(table.concat(includedirs"
	.ascii	", \";\"), '\\\\')))\nend\nend\nlocal function using_dirs(ind"
	.ascii	"ent,cfg)\nif #cfg.usingdirs > 0 then\n_p(indent,'<Additional"
	.ascii	"UsingDirectories>%s;%%(AdditionalUsingDirectories)</Addition"
	.ascii	"alUsingDirectories>'\n,premake.esc(path.translate(table.conc"
	.ascii	"at(cfg.usingdirs, \";\"), '\\\\')))\nend\nend\nlocal functio"
	.ascii	"n resource_compile(cfg)\n_p(2,'<ResourceCompile>')\npreproce"
	.ascii	"ssor(3,cfg,true)\ninclude_dirs(3,cfg)\n_p(2,'</ResourceCompi"
	.ascii	"le>')\nend\nlocal function cppstandard_vs2017_or_2019(cfg)\n"
	.ascii	"if cfg.flags.CppLatest then\n_p(3, '<LanguageStandard>stdcpp"
	.ascii	"latest</LanguageStandard>')\n_p(3, '<EnableModules>true</Ena"
	.ascii	"bleModules>')\nelseif cfg.flags.Cpp17 then\n_p(3, '<Language"
	.ascii	"Standard>stdcpp17</LanguageStandard>')\nelseif cfg.flags.Cpp"
	.ascii	"14 then\n_p(3, '<LanguageStandard>stdcpp14</LanguageStandard"
	.ascii	">')\nend\nend\nlocal function exceptions(cfg)\nif cfg.platfo"
	.ascii	"rm == \"Orbis\" then\nif cfg.flags.NoExceptions then\n_p(3, "
	.ascii	"'<CppExceptions>false</CppExceptions>')\nend\nelseif cfg.pla"
	.ascii	"tform == \"TegraAndroid\" then\nif cfg.flags.NoExceptions th"
	.ascii	"en\n_p(3, '<GccExceptionHandling>false</GccExceptionHandling"
	.ascii	">')\nend\nelse\nif cfg.flags.NoExceptions then\n_p(3, '<Exce"
	.ascii	"ptionHandling>false</ExceptionHandling>')\nelseif cfg.flags."
	.ascii	"SEH then\n_p(3, '<ExceptionHandling>Async</ExceptionHandling"
	.ascii	">')\nend\nend\nend\nlocal function rtti(cfg)\nif cfg.flags.N"
	.ascii	"oRTTI and not cfg.flags.Managed then\n_p(3,'<RuntimeTypeInfo"
	.ascii	">false</RuntimeTypeInfo>')\nend\nend\nlocal function calling"
	.ascii	"_convention(cfg)\nif cfg.flags.FastCall then\n_p(3,'<Calling"
	.ascii	"Convention>FastCall</CallingConvention>')\nelseif cfg.flags."
	.ascii	"StdCall then\n_p(3,'<CallingConvention>StdCall</CallingConve"
	.ascii	"ntion>')\nend\nend\nlocal function wchar_t_builtin(cfg)\nif "
	.ascii	"cfg.flags.NativeWChar then\n_p(3,'<TreatWChar_tAsBuiltInType"
	.ascii	">true</TreatWChar_tAsBuiltInType>')\nelseif cfg.flags.NoNati"
	.ascii	"veWChar then\n_p(3,'<TreatWChar_tAsBuiltInType>false</TreatW"
	.ascii	"Char_tAsBuiltInType>')\nend\nend\nl"
	.ascii	"ocal function sse(cfg)\nif cfg.flags.EnableSSE then\n_p(3, '"
	.ascii	"<EnableEnhancedInstructionSet>StreamingSIMDExtensions</Enabl"
	.ascii	"eEnhancedInstructionSet>')\nelseif cfg.flags.EnableSSE2 then"
	.ascii	"\n_p(3, '<EnableEnhancedInstructionSet>StreamingSIMDExtensio"
	.ascii	"ns2</EnableEnhancedInstructionSet>')\nelseif cfg.flags.Enabl"
	.ascii	"eAVX then\n_p(3, '<EnableEnhancedInstructionSet>AdvancedVect"
	.ascii	"orExtensions</EnableEnhancedInstructionSet>')\nelseif cfg.fl"
	.ascii	"ags.EnableAVX2 then\n_p(3, '<EnableEnhancedInstructionSet>Ad"
	.ascii	"vancedVectorExtensions2</EnableEnhancedInstructionSet>')\nen"
	.ascii	"d\nend\nlocal function floating_point(cfg)\nif cfg.platform "
	.ascii	"== \"Orbis\" then\nif cfg.flags.FloatFast then\n_p(3,'<FastM"
	.ascii	"ath>true</FastMath>')\nend\nelseif cfg.platform == \"TegraAn"
	.ascii	"droid\" then\nelse\nif cfg.flags.FloatFast then\n_p(3,'<Floa"
	.ascii	"tingPointModel>Fast</FloatingPointModel>')\nelseif cfg.flags"
	.ascii	".FloatStrict and not cfg.flags.Managed then\n_p(3,'<Floating"
	.ascii	"PointModel>Strict</FloatingPointModel>')\nend\nend\nend\nloc"
	.ascii	"al function debug_info(cfg)\nlocal debug_info = ''\nif cfg.f"
	.ascii	"lags.Symbols then\nif cfg.flags.C7DebugInfo then\ndebug_info"
	.ascii	" = \"OldStyle\"\nelseif (action.vstudio.supports64bitEditCon"
	.ascii	"tinue == false and cfg.platform == \"x64\")\nor not premake."
	.ascii	"config.iseditandcontinue(cfg)\nthen\ndebug_info = \"ProgramD"
	.ascii	"atabase\"\nelse\ndebug_info = \"EditAndContinue\"\nend\nend\n"
	.ascii	"_p(3,'<DebugInformationFormat>%s</DebugInformationFormat>',d"
	.ascii	"ebug_info)\nend\nlocal function minimal_build(cfg)\nif prema"
	.ascii	"ke.config.isdebugbuild(cfg) and cfg.flags.EnableMinimalRebui"
	.ascii	"ld then\n_p(3,'<MinimalRebuild>true</MinimalRebuild>')\nelse"
	.ascii	"\n_p(3,'<MinimalRebuild>false</MinimalRebuild>')\nend\nend\n"
	.ascii	"local function compile_language(cfg)\nif cfg.options.ForceCP"
	.ascii	"P then\n_p(3,'<CompileAs>CompileAsCpp</CompileAs>')\nelse\ni"
	.ascii	"f cfg.language == \"C\" then\n_p(3,'<CompileAs>CompileAsC</C"
	.ascii	"ompileAs>')\nend\nend\nend\nlocal function forcedinclude_fil"
	.ascii	"es(indent,cfg)\nif #cfg.forcedincludes > 0 then\n_p(indent,'"
	.ascii	"<ForcedIncludeFiles>%s</ForcedIncludeFiles>'\n,premake.esc(p"
	.ascii	"ath.translate(table.concat(cfg.forcedincludes, \";\"), '\\\\"
	.ascii	"')))\nend\nend\nlocal function vs10_clc"
	.ascii	"ompile(cfg)\n_p(2,'<ClCompile>')\nlocal unsignedChar = \"/J "
	.ascii	"\"\nlocal buildoptions = cfg.buildoptions\nif cfg.platform ="
	.ascii	"= \"Orbis\" then\nunsignedChar = \"-funsigned-char \";\n_p(3"
	.ascii	",'<GenerateDebugInformation>%s</GenerateDebugInformation>', "
	.ascii	"tostring(cfg.flags.Symbols ~= nil))\nend\nif cfg.language =="
	.ascii	" \"C\" and not cfg.options.ForceCPP then\nbuildoptions = tab"
	.ascii	"le.join(buildoptions, cfg.buildoptions_c)\nelse\nbuildoption"
	.ascii	"s = table.join(buildoptions, cfg.buildoptions_cpp)\nend\n_p("
	.ascii	"3,'<AdditionalOptions>%s %s%%(AdditionalOptions)</Additional"
	.ascii	"Options>'\n, table.concat(premake.esc(buildoptions), \" \")\n"
	.ascii	", iif(cfg.flags.UnsignedChar and cfg.platform ~= \"TegraAndr"
	.ascii	"oid\", unsignedChar, \" \")\n)\nif cfg.platform == \"TegraAn"
	.ascii	"droid\" then\n_p(3,'<SignedChar>%s</SignedChar>', tostring(c"
	.ascii	"fg.flags.UnsignedChar == nil))\n_p(3,'<GenerateDebugInformat"
	.ascii	"ion>%s</GenerateDebugInformation>', tostring(cfg.flags.Symbo"
	.ascii	"ls ~= nil))\nif cfg.androidcppstandard then\n_p(3,'<CppLangu"
	.ascii	"ageStandard>%s</CppLanguageStandard>', cfg.androidcppstandar"
	.ascii	"d)\nend\nend\nif cfg.platform == \"Orbis\" then\nlocal opt ="
	.ascii	" optimisation(cfg)\nif opt == \"Disabled\" then\n_p(3,'<Opti"
	.ascii	"mizationLevel>Level0</OptimizationLevel>')\nelseif opt == \""
	.ascii	"MinSpace\" then\n_p(3,'<OptimizationLevel>Levelz</Optimizati"
	.ascii	"onLevel>') -- Oz is more aggressive than Os\nelseif opt == \""
	.ascii	"MaxSpeed\" then\n_p(3,'<OptimizationLevel>Level3</Optimizati"
	.ascii	"onLevel>')\nelse\n_p(3,'<OptimizationLevel>Level2</Optimizat"
	.ascii	"ionLevel>')\nend\nelseif cfg.platform == \"TegraAndroid\" th"
	.ascii	"en\nlocal opt = optimisation(cfg)\nif opt == \"Disabled\" th"
	.ascii	"en\n_p(3,'<OptimizationLevel>O0</OptimizationLevel>')\nelsei"
	.ascii	"f opt == \"MinSpace\" then\n_p(3,'<OptimizationLevel>Os</Opt"
	.ascii	"imizationLevel>')\nelseif opt == \"MaxSpeed\" then\n_p(3,'<O"
	.ascii	"ptimizationLevel>O3</OptimizationLevel>')\nelse\n_p(3,'<Opti"
	.ascii	"mizationLevel>O2</OptimizationLevel>')\nend\nelse\n_p(3,'<Op"
	.ascii	"timization>%s</Optimization>', optimisation(cfg))\nend\nincl"
	.ascii	"ude_dirs(3, cfg)\nusing_dirs(3, cfg)\npreprocessor(3, cfg)\n"
	.ascii	"minimal_build(cfg)\nif premake.config.isoptimizedbuild(cfg.f"
	.ascii	"lags) then\nif cfg.flags.NoOptimizeLink and "
	.ascii	"cfg.flags.NoEditAndContinue then\n_p(3, '<StringPooling>fals"
	.ascii	"e</StringPooling>')\n_p(3, '<FunctionLevelLinking>false</Fun"
	.ascii	"ctionLevelLinking>')\nelse\n_p(3, '<StringPooling>true</Stri"
	.ascii	"ngPooling>')\n_p(3, '<FunctionLevelLinking>true</FunctionLev"
	.ascii	"elLinking>')\nend\nelse\n_p(3, '<FunctionLevelLinking>true</"
	.ascii	"FunctionLevelLinking>')\nif cfg.flags.NoRuntimeChecks then\n"
	.ascii	"_p(3, '<BasicRuntimeChecks>Default</BasicRuntimeChecks>')\ne"
	.ascii	"lseif not cfg.flags.Managed then\n_p(3, '<BasicRuntimeChecks"
	.ascii	">EnableFastChecks</BasicRuntimeChecks>')\nend\nif cfg.flags."
	.ascii	"ExtraWarnings then\nend\nend\nif cfg.platform == \"Durango\""
	.ascii	" or cfg.flags.NoWinRT then\n_p(3, '<CompileAsWinRT>false</Co"
	.ascii	"mpileAsWinRT>')\nend\n_p(3, '<RuntimeLibrary>%s</RuntimeLibr"
	.ascii	"ary>', runtime(cfg))\nif cfg.flags.NoBufferSecurityCheck the"
	.ascii	"n\n_p(3, '<BufferSecurityCheck>false</BufferSecurityCheck>')"
	.ascii	"\nend\nif not cfg.flags.NoMultiProcessorCompilation and not "
	.ascii	"cfg.flags.EnableMinimalRebuild then\n_p(3, '<MultiProcessorC"
	.ascii	"ompilation>true</MultiProcessorCompilation>')\nelse\n_p(3, '"
	.ascii	"<MultiProcessorCompilation>false</MultiProcessorCompilation>"
	.ascii	"')\nend\nprecompiled_header(cfg)\nif cfg.platform == \"Orbis"
	.ascii	"\" then\nif cfg.flags.PedanticWarnings then\n_p(3, '<Warning"
	.ascii	"s>MoreWarnings</Warnings>')\n_p(3, '<ExtraWarnings>true</Ext"
	.ascii	"raWarnings>')\nelseif cfg.flags.ExtraWarnings then\n_p(3, '<"
	.ascii	"Warnings>NormalWarnings</Warnings>')\n_p(3, '<ExtraWarnings>"
	.ascii	"true</ExtraWarnings>')\nelseif cfg.flags.MinimumWarnings the"
	.ascii	"n\n_p(3, '<Warnings>WarningsOff</Warnings>')\n_p(3, '<ExtraW"
	.ascii	"arnings>false</ExtraWarnings>')\nelse\n_p(3, '<Warnings>Norm"
	.ascii	"alWarnings</Warnings>')\n_p(3, '<ExtraWarnings>false</ExtraW"
	.ascii	"arnings>')\nend\nif cfg.flags.FatalWarnings then\n_p(3, '<Wa"
	.ascii	"rningsAsErrors>true</WarningsAsErrors>')\nend\nelseif cfg.pl"
	.ascii	"atform == \"TegraAndroid\" then\nif cfg.flags.PedanticWarnin"
	.ascii	"gs or cfg.flags.ExtraWarnings then\n_p(3, '<Warnings>AllWarn"
	.ascii	"ings</Warnings>')\nelseif cfg.flags.MinimumWarnings then\n_p"
	.ascii	"(3, '<Warnings>DisableAllWarnings</Warnings>')\nelse\n_p(3, "
	.ascii	"'<Warnings>NormalWarnings</Warnings>')\nend\nif cfg.flags.Fa"
	.ascii	"talWarnings then\n_p(3"
	.ascii	", '<WarningsAsErrors>true</WarningsAsErrors>')\nend\nelse\ni"
	.ascii	"f cfg.flags.PedanticWarnings then\n_p(3, '<WarningLevel>Enab"
	.ascii	"leAllWarnings</WarningLevel>')\nelseif cfg.flags.ExtraWarnin"
	.ascii	"gs then\n_p(3, '<WarningLevel>Level4</WarningLevel>')\nelsei"
	.ascii	"f cfg.flags.MinimumWarnings then\n_p(3, '<WarningLevel>Level"
	.ascii	"1</WarningLevel>')\nelse\n_p(3 ,'<WarningLevel>Level3</Warni"
	.ascii	"ngLevel>')\nend\nend\nif cfg.flags.FatalWarnings then\n_p(3,"
	.ascii	" '<TreatWarningAsError>true</TreatWarningAsError>')\nend\nif"
	.ascii	" premake.action.current() == premake.action.get(\"vs2017\") "
	.ascii	"or\n   premake.action.current() == premake.action.get(\"vs20"
	.ascii	"19\") then\ncppstandard_vs2017_or_2019(cfg)\nend\nexceptions"
	.ascii	"(cfg)\nrtti(cfg)\ncalling_convention(cfg)\nwchar_t_builtin(c"
	.ascii	"fg)\nsse(cfg)\nfloating_point(cfg)\ndebug_info(cfg)\nif cfg."
	.ascii	"flags.Symbols then\nif cfg.kind == \"StaticLib\" then\n_p(3,"
	.ascii	" '<ProgramDataBaseFileName>$(OutDir)%s.pdb</ProgramDataBaseF"
	.ascii	"ileName>'\n, path.getbasename(cfg.buildtarget.name)\n)\nelse"
	.ascii	"\n_p(3, '<ProgramDataBaseFileName>$(IntDir)%s.compile.pdb</P"
	.ascii	"rogramDataBaseFileName>'\n, path.getbasename(cfg.buildtarget"
	.ascii	".name)\n)\nend\nend\nif cfg.flags.Hotpatchable then\n_p(3, '"
	.ascii	"<CreateHotpatchableImage>true</CreateHotpatchableImage>')\ne"
	.ascii	"nd\nif cfg.flags.NoFramePointer then\n_p(3, '<OmitFramePoint"
	.ascii	"ers>true</OmitFramePointers>')\nend\nif cfg.flags.UseFullPat"
	.ascii	"hs then\n_p(3, '<UseFullPaths>true</UseFullPaths>')\nend\nif"
	.ascii	" cfg.flags.NoJMC then\n_p(3,'<SupportJustMyCode>false</Suppo"
	.ascii	"rtJustMyCode>' )\nend\ncompile_language(cfg)\nforcedinclude_"
	.ascii	"files(3,cfg);\nif vstudio.diagformat then\n_p(3, '<Diagnosti"
	.ascii	"csFormat>%s</DiagnosticsFormat>', vstudio.diagformat)\nelse\n"
	.ascii	"_p(3, '<DiagnosticsFormat>Caret</DiagnosticsFormat>')\nend\n"
	.ascii	"_p(2,'</ClCompile>')\nend\nlocal function event_hooks(cfg)\n"
	.ascii	"if #cfg.postbuildcommands> 0 then\n    _p(2,'<PostBuildEvent"
	.ascii	">')\n_p(3,'<Command>%s</Command>',premake.esc(table.implode("
	.ascii	"cfg.postbuildcommands, \"\", \"\", \"\\r\\n\")))\n_p(2,'</Po"
	.ascii	"stBuildEvent>')\nend\nif #cfg.prebuildcommands> 0 then\n    "
	.ascii	"_p(2,'<PreBuildEvent>')\n_p(3,'<Command>%s</Command>',premak"
	.ascii	"e.esc(table.implode(cfg.prebuildcommands"
	.ascii	", \"\", \"\", \"\\r\\n\")))\n_p(2,'</PreBuildEvent>')\nend\n"
	.ascii	"if #cfg.prelinkcommands> 0 then\n    _p(2,'<PreLinkEvent>')\n"
	.ascii	"_p(3,'<Command>%s</Command>',premake.esc(table.implode(cfg.p"
	.ascii	"relinkcommands, \"\", \"\", \"\\r\\n\")))\n_p(2,'</PreLinkEv"
	.ascii	"ent>')\nend\nend\nlocal function additional_options(indent,c"
	.ascii	"fg)\nif #cfg.linkoptions > 0 then\n_p(indent,'<AdditionalOpt"
	.ascii	"ions>%s %%(AdditionalOptions)</AdditionalOptions>',\ntable.c"
	.ascii	"oncat(premake.esc(cfg.linkoptions), \" \"))\nend\nend\nlocal"
	.ascii	" function link_target_machine(index,cfg)\nlocal platforms = "
	.ascii	"{x32 = 'MachineX86', x64 = 'MachineX64'}\nif platforms[cfg.p"
	.ascii	"latform] then\n_p(index,'<TargetMachine>%s</TargetMachine>',"
	.ascii	" platforms[cfg.platform])\nend\nend\nlocal function item_def"
	.ascii	"_lib(cfg)\nif cfg.kind == 'StaticLib' and cfg.platform ~= \""
	.ascii	"Xbox360\" then\n_p(1,'<Lib>')\n_p(2,'<OutputFile>$(OutDir)%s"
	.ascii	"</OutputFile>',cfg.buildtarget.name)\nadditional_options(2,c"
	.ascii	"fg)\nlink_target_machine(2,cfg)\n_p(1,'</Lib>')\nend\nend\nl"
	.ascii	"ocal function import_lib(cfg)\nif cfg.kind == \"SharedLib\" "
	.ascii	"then\nlocal implibname = cfg.linktarget.fullpath\n_p(3,'<Imp"
	.ascii	"ortLibrary>%s</ImportLibrary>',iif(cfg.flags.NoImportLib, cf"
	.ascii	"g.objectsdir .. \"\\\\\" .. path.getname(implibname), implib"
	.ascii	"name))\nend\nend\nlocal function hasmasmfiles(prj)\nlocal fi"
	.ascii	"les = vc2010.getfilegroup(prj, \"MASM\")\nreturn #files > 0\n"
	.ascii	"end\nlocal function ismanagedprj(prj, cfgname, pltname)\nloc"
	.ascii	"al cfg = premake.getconfig(prj, cfgname, pltname)\nreturn cf"
	.ascii	"g.flags.Managed == true\nend\nlocal function getcfglinks(cfg"
	.ascii	")\nlocal haswholearchive = #cfg.wholearchive > 0\nlocal msvc"
	.ascii	"naming   = premake.getnamestyle(cfg) == \"windows\"\nlocal i"
	.ascii	"scppprj     = premake.iscppproject(cfg)\nlocal isnetprj     "
	.ascii	"= premake.isdotnetproject(cfg)\nlocal linkobjs     = {}\nloc"
	.ascii	"al links        = iif(haswholearchive\n, premake.getlinks(cf"
	.ascii	"g, \"all\", \"object\")\n, premake.getlinks(cfg, \"system\","
	.ascii	" \"fullpath\")\n)\nfor _, link in ipairs(links) do\nlocal na"
	.ascii	"me      = nil\nlocal directory = nil\nlocal whole     = nil\n"
	.ascii	"if type(link) == \"table\" then\nif not ismanagedprj(link.pr"
	.ascii	"oject, cfg.name, cfg.platform) then\nname      = link.lin"
	.ascii	"ktarget.basename\ndirectory = path.rebase(link.linktarget.di"
	.ascii	"rectory, link.location, cfg.location)\nwhole     = table.ico"
	.ascii	"ntains(cfg.wholearchive, link.project.name)\nend\nelse\nname"
	.ascii	"      = link\nwhole     = table.icontains(cfg.wholearchive, "
	.ascii	"link)\nend\nif name then\nif haswholearchive and msvcnaming "
	.ascii	"then\nif iscppprj then\nname = name .. \".lib\"\nelseif isne"
	.ascii	"tprj then\nname = name .. \".dll\"\nend\nend\ntable.insert(l"
	.ascii	"inkobjs, {name=name, directory=directory, wholearchive=whole"
	.ascii	"})\nend\nend\nreturn linkobjs\nend\nlocal function vs10_masm"
	.ascii	"(prj, cfg)\nif hasmasmfiles(prj) then\n_p(2, '<MASM>')\n_p(3"
	.ascii	",'<AdditionalOptions>%s %%(AdditionalOptions)</AdditionalOpt"
	.ascii	"ions>'\n, table.concat(premake.esc(table.join(cfg.buildoptio"
	.ascii	"ns, cfg.buildoptions_asm)), \" \")\n)\nlocal includedirs = t"
	.ascii	"able.join(cfg.userincludedirs, cfg.includedirs, cfg.systemin"
	.ascii	"cludedirs)\nif #includedirs > 0 then\n_p(3, '<IncludePaths>%"
	.ascii	"s;%%(IncludePaths)</IncludePaths>'\n, premake.esc(path.trans"
	.ascii	"late(table.concat(includedirs, \";\"), '\\\\'))\n)\nend\nloc"
	.ascii	"al defines = table.join(cfg.defines)\ntable.insertflat(defin"
	.ascii	"es, iif(premake.config.isdebugbuild(cfg), \"_DEBUG\", {}))\n"
	.ascii	"table.insert(defines, iif(cfg.platform == \"x64\", \"_WIN64\""
	.ascii	", \"_WIN32\"))\ntable.insert(defines, iif(prj.kind == \"Shar"
	.ascii	"edLib\", \"_EXPORT=EXPORT\", \"_EXPORT=\"))\n_p(3, '<Preproc"
	.ascii	"essorDefinitions>%s;%%(PreprocessorDefinitions)</Preprocesso"
	.ascii	"rDefinitions>'\n, premake.esc(table.concat(defines, \";\"))\n"
	.ascii	")\nif cfg.flags.FatalWarnings then\n_p(3,'<TreatWarningsAsEr"
	.ascii	"rors>true</TreatWarningsAsErrors>')\nend\nif cfg.flags.Minim"
	.ascii	"umWarnings then\n_p(3,'<WarningLevel>0</WarningLevel>')\nels"
	.ascii	"e\n_p(3,'<WarningLevel>3</WarningLevel>')\nend\n_p(2, '</MAS"
	.ascii	"M>')\nend\nend\nlocal function additional_manifest(cfg)\nif("
	.ascii	"cfg.dpiawareness ~= nil) then\n_p(2,'<Manifest>')\nif(cfg.dp"
	.ascii	"iawareness == \"None\") then\n_p(3, '<EnableDpiAwareness>fal"
	.ascii	"se</EnableDpiAwareness>')\nend\nif(cfg.dpiawareness == \"Hig"
	.ascii	"h\") then\n_p(3, '<EnableDpiAwareness>true</EnableDpiAwarene"
	.ascii	"ss>')\nend\nif(cfg.dpiawareness == \"HighPerMonitor\") then\n"
	.ascii	"_p(3, '<EnableDpiAwareness>PerMonitorHighDPIAware<"
	.ascii	"/EnableDpiAwareness>')\nend\n_p(2,'</Manifest>')\nend\nend\n"
	.ascii	"function vc2010.link(cfg)\nlocal vs2017OrLater = premake.act"
	.ascii	"ion.current() == premake.action.get(\"vs2017\") or\n    prem"
	.ascii	"ake.action.current() == premake.action.get(\"vs2019\")\nloca"
	.ascii	"l links  = getcfglinks(cfg)\n_p(2,'<Link>')\n_p(3,'<SubSyste"
	.ascii	"m>%s</SubSystem>', iif(cfg.kind == \"ConsoleApp\", \"Console"
	.ascii	"\", \"Windows\"))\nif vs2017OrLater and cfg.flags.FullSymbol"
	.ascii	"s then\n_p(3,'<GenerateDebugInformation>DebugFull</GenerateD"
	.ascii	"ebugInformation>')\nelse\n_p(3,'<GenerateDebugInformation>%s"
	.ascii	"</GenerateDebugInformation>', tostring(cfg.flags.Symbols ~= "
	.ascii	"nil))\nend\nif cfg.flags.Symbols then\n_p(3, '<ProgramDataba"
	.ascii	"seFile>$(OutDir)%s.pdb</ProgramDatabaseFile>'\n, path.getbas"
	.ascii	"ename(cfg.buildtarget.name)\n)\nend\nif premake.config.islin"
	.ascii	"keroptimizedbuild(cfg.flags) then\nif cfg.platform == \"Orbi"
	.ascii	"s\" then\n_p(3,'<DataStripping>StripFuncsAndData</DataStripp"
	.ascii	"ing>')\n_p(3,'<DuplicateStripping>true</DuplicateStripping>'"
	.ascii	")\nelse\n_p(3,'<EnableCOMDATFolding>true</EnableCOMDATFoldin"
	.ascii	"g>')\n_p(3,'<OptimizeReferences>true</OptimizeReferences>')\n"
	.ascii	"end\nelseif cfg.platform == \"Orbis\" and premake.config.ise"
	.ascii	"ditandcontinue(cfg) then\n_p(3,'<EditAndContinue>true</EditA"
	.ascii	"ndContinue>')\nend\nif cfg.finalizemetasource ~= nil then\n_"
	.ascii	"p(3,'<FinalizeMetaSource>%s</FinalizeMetaSource>', premake.e"
	.ascii	"sc(cfg.finalizemetasource))\nend\nif cfg.kind ~= 'StaticLib'"
	.ascii	" then\nvc2010.additionalDependencies(3, cfg, links)\nvc2010."
	.ascii	"additionalLibraryDirectories(3, cfg, links)\n_p(3,'<OutputFi"
	.ascii	"le>$(OutDir)%s</OutputFile>', cfg.buildtarget.name)\nif vc20"
	.ascii	"10.config_type(cfg) == 'Application' and not cfg.flags.WinMa"
	.ascii	"in and not cfg.flags.Managed then\nif cfg.flags.Unicode then"
	.ascii	"\n_p(3,'<EntryPointSymbol>wmainCRTStartup</EntryPointSymbol>"
	.ascii	"')\nelse\n_p(3,'<EntryPointSymbol>mainCRTStartup</EntryPoint"
	.ascii	"Symbol>')\nend\nend\nimport_lib(cfg)\nlocal deffile = premak"
	.ascii	"e.findfile(cfg, \".def\")\nif deffile then\n_p(3,'<ModuleDef"
	.ascii	"initionFile>%s</ModuleDefinitionFile>', deffile)\nend\nlink_"
	.ascii	"target_machine(3,cfg)\nadditional_options(3,cfg)\nif cfg.fla"
	.ascii	"gs.NoWinMD and vstudio.iswin"
	.ascii	"rt() and prj.kind == \"WindowedApp\" then\n_p(3,'<GenerateWi"
	.ascii	"ndowsMetadata>false</GenerateWindowsMetadata>' )\nend\nend\n"
	.ascii	"if cfg.platform == \"TegraAndroid\" then\nif cfg.androidlink"
	.ascii	"er then\n_p(3,'<UseLinker>%s</UseLinker>',cfg.androidlinker)"
	.ascii	"\nend\nend\nif cfg.flags.Hotpatchable then\n_p(3, '<CreateHo"
	.ascii	"tPatchableImage>Enabled</CreateHotPatchableImage>')\nend\nif"
	.ascii	" cfg.flags.GenerateMapFiles then\n_p(3, '<GenerateMapFile>tr"
	.ascii	"ue</GenerateMapFile>')\nend\n_p(2,'</Link>')\nif #cfg.wholea"
	.ascii	"rchive > 0 then\n_p(2, '<ProjectReference>')\n_p(3, '<LinkLi"
	.ascii	"braryDependencies>false</LinkLibraryDependencies>')\n_p(2, '"
	.ascii	"</ProjectReference>')\nend\nend\nfunction vc2010.additionalL"
	.ascii	"ibraryDirectories(tab, cfg, links)\nlocal dirs = cfg.libdirs"
	.ascii	"\nfor _, link in ipairs(links) do\nif link.directory and not"
	.ascii	" table.icontains(dirs, link.directory) then\ntable.insert(di"
	.ascii	"rs, link.directory)\nend\nend\n_p(tab, '<AdditionalLibraryDi"
	.ascii	"rectories>%s;%%(AdditionalLibraryDirectories)</AdditionalLib"
	.ascii	"raryDirectories>'\n, premake.esc(path.translate(table.concat"
	.ascii	"(dirs, ';'), '\\\\'))\n)\nend\nfunction vc2010.additionalDep"
	.ascii	"endencies(tab, cfg, links)\nif #links > 0 then\nlocal deps ="
	.ascii	" \"\"\nif cfg.platform == \"Orbis\" then\nlocal iswhole = fa"
	.ascii	"lse\nfor _, link in ipairs(links) do\nif link.wholearchive a"
	.ascii	"nd not iswhole then\ndeps = deps .. \"--whole-archive;\"\nis"
	.ascii	"whole = true\nelseif not link.wholearchive and iswhole then\n"
	.ascii	"deps = deps .. \"--no-whole-archive;\"\niswhole = false\nend"
	.ascii	"\ndeps = deps .. \"-l\" .. link.name .. \";\"\nend\nelse\nfo"
	.ascii	"r _, link in ipairs(links) do\nif link.wholearchive then\nde"
	.ascii	"ps = deps .. \"/WHOLEARCHIVE:\" .. link.name .. \";\"\nelse\n"
	.ascii	"deps = deps .. link.name .. \";\"\nend\nend\nend\nif cfg.pla"
	.ascii	"tform == \"TegraAndroid\" then\ndeps = \"-Wl,--start-group;\""
	.ascii	" .. deps .. \";-Wl,--end-group\"\nend\n_p(tab, '<AdditionalD"
	.ascii	"ependencies>%s;%s</AdditionalDependencies>'\n, deps\n, iif(c"
	.ascii	"fg.platform == \"Durango\"\n, '%(XboxExtensionsDependencies)"
	.ascii	"'\n, '%(AdditionalDependencies)'\n)\n)\nelseif cfg.platform "
	.ascii	"== \"Durango\" then\n_p(tab, '<AdditionalDependencies>%%(Xbo"
	.ascii	"xExtensionsDependencies)</AdditionalDependencies>')\nend\nen"
	.ascii	"d"
	.ascii	"\nfunction ant_build(prj, cfg)\nif cfg.platform == \"TegraAn"
	.ascii	"droid\" then\nlocal files = vc2010.getfilegroup(prj, \"Andro"
	.ascii	"idBuild\")\n_p(2,'<AntBuild>')\nif #files > 0 then\n_p(3,'<A"
	.ascii	"ndroidManifestLocation>%s</AndroidManifestLocation>',path.tr"
	.ascii	"anslate(files[1].name))\nend\nlocal isdebugbuild = premake.c"
	.ascii	"onfig.isdebugbuild(cfg)\n_p(3,'<AntBuildType>%s</AntBuildTyp"
	.ascii	"e>',iif(isdebugbuild, 'Debug','Release'))\n_p(3,'<Debuggable"
	.ascii	">%s</Debuggable>',tostring(cfg.flags.AntBuildDebuggable ~= n"
	.ascii	"il))\nif #cfg.antbuildjavasourcedirs > 0 then\nlocal dirs = "
	.ascii	"table.concat(cfg.antbuildjavasourcedirs,\";\")\n_p(3,'<JavaS"
	.ascii	"ourceDir>%s</JavaSourceDir>',dirs)\nend\nif #cfg.antbuildjar"
	.ascii	"dirs > 0 then\nlocal dirs = table.concat(cfg.antbuildjardirs"
	.ascii	",\";\")\n_p(3,'<JarDirectories>%s</JarDirectories>',dirs)\ne"
	.ascii	"nd\nif #cfg.antbuildjardependencies > 0 then\nlocal dirs = t"
	.ascii	"able.concat(cfg.antbuildjardependencies,\";\")\n_p(3,'<JarDe"
	.ascii	"pendencies>%s</JarDependencies>',dirs)\nend\nif #cfg.antbuil"
	.ascii	"dnativelibdirs > 0 then\nlocal dirs = table.concat(cfg.antbu"
	.ascii	"ildnativelibdirs,\";\")\n_p(3,'<NativeLibDirectories>%s</Nat"
	.ascii	"iveLibDirectories>',dirs)\nend\nif #cfg.antbuildnativelibdep"
	.ascii	"endencies > 0 then\nlocal dirs = table.concat(cfg.antbuildna"
	.ascii	"tivelibdependencies,\";\")\n_p(3,'<NativeLibDependencies>%s<"
	.ascii	"/NativeLibDependencies>',dirs)\nend\nif #cfg.antbuildassetsd"
	.ascii	"irs > 0 then\nlocal dirs = table.concat(cfg.antbuildassetsdi"
	.ascii	"rs,\";\")\n_p(3,'<AssetsDirectories>%s</AssetsDirectories>',"
	.ascii	"dirs)\nend\n_p(2,'</AntBuild>')\nend\nend\nlocal function it"
	.ascii	"em_definitions(prj)\nfor _, cfginfo in ipairs(prj.solution.v"
	.ascii	"studio_configs) do\nlocal cfg = premake.getconfig(prj, cfgin"
	.ascii	"fo.src_buildcfg, cfginfo.src_platform)\n_p(1,'<ItemDefinitio"
	.ascii	"nGroup ' ..if_config_and_platform() ..'>'\n,premake.esc(cfgi"
	.ascii	"nfo.name))\nvs10_clcompile(cfg)\nresource_compile(cfg)\nitem"
	.ascii	"_def_lib(cfg)\nvc2010.link(cfg)\nant_build(prj, cfg)\nevent_"
	.ascii	"hooks(cfg)\nvs10_masm(prj, cfg)\nadditional_manifest(cfg)\n_"
	.ascii	"p(1,'</ItemDefinitionGroup>')\nend\nend\nfunction vc2010.get"
	.ascii	"filegroup(prj, group)\nlocal sortedfiles = prj.vc2010sortedf"
	.ascii	"iles\nif not sortedfiles then\nso"
	.ascii	"rtedfiles = {\nClCompile = {},\nClInclude = {},\nMASM = {},\n"
	.ascii	"Object = {},\nNone = {},\nResourceCompile = {},\nAppxManifes"
	.ascii	"t = {},\nAndroidBuild = {},\nNatvis = {},\nImage = {},\nDepl"
	.ascii	"oymentContent = {}\n}\nlocal foundAppxManifest = false\nfor "
	.ascii	"file in premake.project.eachfile(prj, true) do\nif path.isso"
	.ascii	"urcefilevs(file.name) then\ntable.insert(sortedfiles.ClCompi"
	.ascii	"le, file)\nelseif path.iscppheader(file.name) then\nif not t"
	.ascii	"able.icontains(prj.removefiles, file) then\ntable.insert(sor"
	.ascii	"tedfiles.ClInclude, file)\nend\nelseif path.isobjectfile(fil"
	.ascii	"e.name) then\ntable.insert(sortedfiles.Object, file)\nelseif"
	.ascii	" path.isresourcefile(file.name) then\ntable.insert(sortedfil"
	.ascii	"es.ResourceCompile, file)\nelseif path.isimagefile(file.name"
	.ascii	") then\ntable.insert(sortedfiles.Image, file)\nelseif path.i"
	.ascii	"sappxmanifest(file.name) then\nfoundAppxManifest = true\ntab"
	.ascii	"le.insert(sortedfiles.AppxManifest, file)\nelseif path.isand"
	.ascii	"roidbuildfile(file.name) then\ntable.insert(sortedfiles.Andr"
	.ascii	"oidBuild, file)\nelseif path.isnatvis(file.name) then\ntable"
	.ascii	".insert(sortedfiles.Natvis, file)\nelseif path.isasmfile(fil"
	.ascii	"e.name) then\ntable.insert(sortedfiles.MASM, file)\nelseif f"
	.ascii	"ile.flags and table.icontains(file.flags, \"DeploymentConten"
	.ascii	"t\") then\ntable.insert(sortedfiles.DeploymentContent, file)"
	.ascii	"\nelse\ntable.insert(sortedfiles.None, file)\nend\nend\nif v"
	.ascii	"studio.iswinrt() and prj.kind == \"WindowedApp\" and not fou"
	.ascii	"ndAppxManifest then\nvstudio.needAppxManifest = true\nlocal "
	.ascii	"fcfg = {}\nfcfg.name = prj.name .. \"/Package.appxmanifest\""
	.ascii	"\nfcfg.vpath = premake.project.getvpath(prj, fcfg.name)\ntab"
	.ascii	"le.insert(sortedfiles.AppxManifest, fcfg)\nlocal logo = {}\n"
	.ascii	"logo.name  = prj.name .. \"/Logo.png\"\nlogo.vpath = logo.na"
	.ascii	"me\ntable.insert(sortedfiles.Image, logo)\nlocal smallLogo ="
	.ascii	" {}\nsmallLogo.name  = prj.name .. \"/SmallLogo.png\"\nsmall"
	.ascii	"Logo.vpath = smallLogo.name\ntable.insert(sortedfiles.Image,"
	.ascii	" smallLogo)\nlocal storeLogo = {}\nstoreLogo.name  = prj.nam"
	.ascii	"e .. \"/StoreLogo.png\"\nstoreLogo.vpath = storeLogo.name\nt"
	.ascii	"able.insert(sortedfiles.Image, storeLogo)\nlocal splashScree"
	.ascii	"n = {}\nsplashScreen.name  = prj"
	.ascii	".name .. \"/SplashScreen.png\"\nsplashScreen.vpath = splashS"
	.ascii	"creen.name\ntable.insert(sortedfiles.Image, splashScreen)\ne"
	.ascii	"nd\nprj.vc2010sortedfiles = sortedfiles\nend\nreturn sortedf"
	.ascii	"iles[group]\nend\nfunction vc2010.files(prj)\nvc2010.simplef"
	.ascii	"ilesgroup(prj, \"ClInclude\")\nvc2010.compilerfilesgroup(prj"
	.ascii	")\nvc2010.simplefilesgroup(prj, \"Object\")\nvc2010.simplefi"
	.ascii	"lesgroup(prj, \"None\")\nvc2010.customtaskgroup(prj)\nvc2010"
	.ascii	".simplefilesgroup(prj, \"ResourceCompile\")\nvc2010.simplefi"
	.ascii	"lesgroup(prj, \"AppxManifest\")\nvc2010.simplefilesgroup(prj"
	.ascii	", \"AndroidBuild\")\nvc2010.simplefilesgroup(prj, \"Natvis\""
	.ascii	")\nvc2010.deploymentcontentgroup(prj, \"Image\")\nvc2010.dep"
	.ascii	"loymentcontentgroup(prj, \"DeploymentContent\", \"None\")\ne"
	.ascii	"nd\nfunction vc2010.customtaskgroup(prj)\nlocal files = { }\n"
	.ascii	"for _, custombuildtask in ipairs(prj.custombuildtask or {}) "
	.ascii	"do\nfor _, buildtask in ipairs(custombuildtask or {}) do\nlo"
	.ascii	"cal fcfg = { }\nfcfg.name = path.getrelative(prj.location,bu"
	.ascii	"ildtask[1])\nfcfg.vpath = path.trimdots(fcfg.name)\ntable.in"
	.ascii	"sert(files, fcfg)\nend\nend\nif #files > 0  then\n_p(1,'<Ite"
	.ascii	"mGroup>')\nlocal groupedBuildTasks = {}\nlocal buildTaskName"
	.ascii	"s = {}\nfor _, custombuildtask in ipairs(prj.custombuildtask"
	.ascii	" or {}) do\nfor _, buildtask in ipairs(custombuildtask or {}"
	.ascii	") do\nif (groupedBuildTasks[buildtask[1]] == nil) then\ngrou"
	.ascii	"pedBuildTasks[buildtask[1]] = {}\ntable.insert(buildTaskName"
	.ascii	"s, buildtask[1])\nend\ntable.insert(groupedBuildTasks[buildt"
	.ascii	"ask[1]], buildtask)\nend\nend\nfor _, name in ipairs(buildTa"
	.ascii	"skNames) do\ncustombuildtask = groupedBuildTasks[name]\n_p(2"
	.ascii	",'<CustomBuild Include=\\\"%s\\\">', path.translate(path.get"
	.ascii	"relative(prj.location,name), \"\\\\\"))\n_p(3,'<FileType>Tex"
	.ascii	"t</FileType>')\nlocal cmd = \"\"\nlocal outputs = \"\"\nfor "
	.ascii	"_, buildtask in ipairs(custombuildtask or {}) do\nfor _, cmd"
	.ascii	"line in ipairs(buildtask[4] or {}) do\ncmd = cmd .. cmdline\n"
	.ascii	"local num = 1\nfor _, depdata in ipairs(buildtask[3] or {}) "
	.ascii	"do\ncmd = string.gsub(cmd,\"%$%(\" .. num ..\"%)\", string.f"
	.ascii	"ormat(\"%s \",path.getrelative(prj.location,depdata)))\nnum "
	.ascii	"= num + 1\nend\ncmd = string.gsub(cmd, \"%$%(<%)\", string"
	.ascii	".format(\"%s \",path.getrelative(prj.location,buildtask[1]))"
	.ascii	")\ncmd = string.gsub(cmd, \"%$%(@%)\", string.format(\"%s \""
	.ascii	",path.getrelative(prj.location,buildtask[2])))\ncmd = cmd .."
	.ascii	" \"\\r\\n\"\nend\noutputs = outputs .. path.getrelative(prj."
	.ascii	"location,buildtask[2]) .. \";\"\nend\n_p(3,'<Command>%s</Com"
	.ascii	"mand>',cmd)\n_p(3,'<Outputs>%s%%(Outputs)</Outputs>',outputs"
	.ascii	")\n_p(3,'<SubType>Designer</SubType>')\n_p(3,'<Message></Mes"
	.ascii	"sage>')\n_p(2,'</CustomBuild>')\nend\n_p(1,'</ItemGroup>')\n"
	.ascii	"end\nend\nfunction vc2010.simplefilesgroup(prj, section, sub"
	.ascii	"type)\nlocal configs = prj.solution.vstudio_configs\nlocal f"
	.ascii	"iles = vc2010.getfilegroup(prj, section)\nif #files > 0  the"
	.ascii	"n\nlocal config_mappings = {}\nfor _, cfginfo in ipairs(conf"
	.ascii	"igs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buil"
	.ascii	"dcfg, cfginfo.src_platform)\nif cfg.pchheader and cfg.pchsou"
	.ascii	"rce and not cfg.flags.NoPCH then\nconfig_mappings[cfginfo] ="
	.ascii	" path.translate(cfg.pchsource, \"\\\\\")\nend\nend\n_p(1,'<I"
	.ascii	"temGroup>')\nfor _, file in ipairs(files) do\nlocal prjexclu"
	.ascii	"ded = table.icontains(prj.excludes, file.name)\nlocal exclud"
	.ascii	"edcfgs = {}\nif not prjexcluded then\nfor _, vsconfig in ipa"
	.ascii	"irs(configs) do\nlocal cfg = premake.getconfig(prj, vsconfig"
	.ascii	".src_buildcfg, vsconfig.src_platform)\nlocal fileincfg = tab"
	.ascii	"le.icontains(cfg.files, file.name)\nlocal cfgexcluded = tabl"
	.ascii	"e.icontains(cfg.excludes, file.name)\nif not fileincfg or cf"
	.ascii	"gexcluded then\ntable.insert(excludedcfgs, vsconfig.name)\ne"
	.ascii	"nd\nend\nend\nif subtype or prjexcluded or #excludedcfgs > 0"
	.ascii	" then\n_p(2, '<%s Include=\\\"%s\\\">', section, path.transl"
	.ascii	"ate(file.name, \"\\\\\"))\nif prjexcluded then\n_p(3, '<Excl"
	.ascii	"udedFromBuild>true</ExcludedFromBuild>')\nelse\nfor _, cfgna"
	.ascii	"me in ipairs(excludedcfgs) do\n_p(3, '<ExcludedFromBuild '\n"
	.ascii	".. if_config_and_platform()\n.. '>true</ExcludedFromBuild>'\n"
	.ascii	", premake.esc(cfgname)\n)\nend\nend\nif subtype then\n_p(3, "
	.ascii	"'<SubType>%s</SubType>', subtype)\nend\n_p(2,'</%s>', sectio"
	.ascii	"n)\nelse\n_p(2, '<%s Include=\\\"%s\\\" />', section, path.t"
	.ascii	"ranslate(file.name, \"\\\\\"))\nend\nend\n_p(1,'</ItemGroup>"
	.ascii	"')\nend\nend\nfunction vc2010.deploymentcontentgroup(pr"
	.ascii	"j, section, filetype)\nif filetype == nil then\nfiletype = s"
	.ascii	"ection\nend\nlocal files = vc2010.getfilegroup(prj, section)"
	.ascii	"\nif #files > 0  then\n_p(1,'<ItemGroup>')\nfor _, file in i"
	.ascii	"pairs(files) do\n_p(2,'<%s Include=\\\"%s\\\">', filetype, p"
	.ascii	"ath.translate(file.name, \"\\\\\"))\n_p(3,'<DeploymentConten"
	.ascii	"t>true</DeploymentContent>')\n_p(3,'<Link>%s</Link>', path.t"
	.ascii	"ranslate(file.vpath, \"\\\\\"))\n_p(2,'</%s>', filetype)\nen"
	.ascii	"d\n_p(1,'</ItemGroup>')\nend\nend\nfunction vc2010.compilerf"
	.ascii	"ilesgroup(prj)\nlocal configs = prj.solution.vstudio_configs"
	.ascii	"\nlocal files = vc2010.getfilegroup(prj, \"ClCompile\")\nif "
	.ascii	"#files > 0  then\nlocal config_mappings = {}\nfor _, cfginfo"
	.ascii	" in ipairs(configs) do\nlocal cfg = premake.getconfig(prj, c"
	.ascii	"fginfo.src_buildcfg, cfginfo.src_platform)\nif cfg.pchheader"
	.ascii	" and cfg.pchsource and not cfg.flags.NoPCH then\nconfig_mapp"
	.ascii	"ings[cfginfo] = path.translate(cfg.pchsource, \"\\\\\")\nend"
	.ascii	"\nend\n_p(1,'<ItemGroup>')\nlocal existingBasenames = {};\nf"
	.ascii	"or _, file in ipairs(files) do\nlocal filename = string.lowe"
	.ascii	"r(path.getbasename(file.name))\nlocal disambiguation = exist"
	.ascii	"ingBasenames[filename] or 0;\nexistingBasenames[filename] = "
	.ascii	"disambiguation + 1\nlocal translatedpath = path.translate(fi"
	.ascii	"le.name, \"\\\\\")\n_p(2, '<ClCompile Include=\\\"%s\\\">', "
	.ascii	"translatedpath)\nfor _, vsconfig in ipairs(configs) do\nloca"
	.ascii	"l cfg = premake.getconfig(prj, vsconfig.src_buildcfg, vsconf"
	.ascii	"ig.src_platform)\nlocal namestyle = premake.getnamestyle(cfg"
	.ascii	")\nif namestyle == \"TegraAndroid\" or namestyle == \"NX\" t"
	.ascii	"hen\n_p(3, '<ObjectFileName '.. if_config_and_platform() .. "
	.ascii	"'>$(IntDir)%s.o</ObjectFileName>', premake.esc(vsconfig.name"
	.ascii	"), premake.esc(path.translate(path.trimdots(path.removeext(f"
	.ascii	"ile.name)))) )\nelse\nif disambiguation > 0 then\n_p(3, '<Ob"
	.ascii	"jectFileName '.. if_config_and_platform() .. '>$(IntDir)%s\\"
	.ascii	"\\</ObjectFileName>', premake.esc(vsconfig.name), tostring(d"
	.ascii	"isambiguation))\nend\nend\nend\nif path.iscxfile(file.name) "
	.ascii	"then\n_p(3, '<CompileAsWinRT>true</CompileAsWinRT>')\n_p(3, "
	.ascii	"'<RuntimeTypeInfo>true</RuntimeTypeInfo>')\n_p(3, '<Precompi"
	.ascii	"ledHeader>NotUsing</PrecompiledHeader>')\n"
	.ascii	"end\nif vstudio.iswinrt() and string.len(file.name) > 2 and "
	.ascii	"string.sub(file.name, -2) == \".c\" then\n_p(3,'<CompileAsWi"
	.ascii	"nRT>FALSE</CompileAsWinRT>')\nend\nfor _, cfginfo in ipairs("
	.ascii	"configs) do\nif config_mappings[cfginfo] and translatedpath "
	.ascii	"== config_mappings[cfginfo] then\n_p(3,'<PrecompiledHeader '"
	.ascii	".. if_config_and_platform() .. '>Create</PrecompiledHeader>'"
	.ascii	", premake.esc(cfginfo.name))\nconfig_mappings[cfginfo] = nil"
	.ascii	"  --only one source file per pch\nend\nend\nlocal nopch = ta"
	.ascii	"ble.icontains(prj.nopch, file.name)\nfor _, vsconfig in ipai"
	.ascii	"rs(configs) do\nlocal cfg = premake.getconfig(prj, vsconfig."
	.ascii	"src_buildcfg, vsconfig.src_platform)\nif nopch or table.icon"
	.ascii	"tains(cfg.nopch, file.name) then\n_p(3,'<PrecompiledHeader '"
	.ascii	".. if_config_and_platform() .. '>NotUsing</PrecompiledHeader"
	.ascii	">', premake.esc(vsconfig.name))\nend\nend\nlocal excluded = "
	.ascii	"table.icontains(prj.excludes, file.name)\nfor _, vsconfig in"
	.ascii	" ipairs(configs) do\nlocal cfg = premake.getconfig(prj, vsco"
	.ascii	"nfig.src_buildcfg, vsconfig.src_platform)\nlocal fileincfg ="
	.ascii	" table.icontains(cfg.files, file.name)\nlocal cfgexcluded = "
	.ascii	"table.icontains(cfg.excludes, file.name)\nif excluded or not"
	.ascii	" fileincfg or cfgexcluded then\n_p(3, '<ExcludedFromBuild '\n"
	.ascii	".. if_config_and_platform()\n.. '>true</ExcludedFromBuild>'\n"
	.ascii	", premake.esc(vsconfig.name)\n)\nend\nend\nif prj.flags and "
	.ascii	"prj.flags.Managed then\nlocal prjforcenative = table.icontai"
	.ascii	"ns(prj.forcenative, file.name)\nfor _,vsconfig in ipairs(con"
	.ascii	"figs) do\nlocal cfg = premake.getconfig(prj, vsconfig.src_bu"
	.ascii	"ildcfg, vsconfig.src_platform)\nif prjforcenative or table.i"
	.ascii	"contains(cfg.forcenative, file.name) then\n_p(3, '<CompileAs"
	.ascii	"Managed ' .. if_config_and_platform() .. '>false</CompileAsM"
	.ascii	"anaged>', premake.esc(vsconfig.name))\nend\nend\nend\n_p(2,'"
	.ascii	"</ClCompile>')\nend\n_p(1,'</ItemGroup>')\nend\nend\nfunctio"
	.ascii	"n vc2010.masmfiles(prj)\nlocal configs = prj.solution.vstudi"
	.ascii	"o_configs\nlocal files = vc2010.getfilegroup(prj, \"MASM\")\n"
	.ascii	"if #files > 0 then\n_p(1, '<ItemGroup>')\nfor _, file in ipa"
	.ascii	"irs(files) do\nlocal translatedpath = path.translate(file.na"
	.ascii	"me, \"\\\\\")\n_"
	.ascii	"p(2, '<MASM Include=\"%s\">', translatedpath)\nlocal exclude"
	.ascii	"d = table.icontains(prj.excludes, file.name)\nfor _, vsconfi"
	.ascii	"g in ipairs(configs) do\nlocal cfg = premake.getconfig(prj, "
	.ascii	"vsconfig.src_buildcfg, vsconfig.src_platform)\nlocal fileinc"
	.ascii	"fg = table.icontains(cfg.files, file.name)\nlocal cfgexclude"
	.ascii	"d = table.icontains(cfg.excludes, file.name)\nif excluded or"
	.ascii	" not fileincfg or cfgexcluded then\n_p(3, '<ExcludedFromBuil"
	.ascii	"d '\n.. if_config_and_platform()\n.. '>true</ExcludedFromBui"
	.ascii	"ld>'\n, premake.esc(vsconfig.name)\n)\nend\nend\n_p(2, '</MA"
	.ascii	"SM>')\nend\n_p(1, '</ItemGroup>')\nend\nend\nfunction vc2010"
	.ascii	".header(targets)\nio.eol = \"\\r\\n\"\n_p('<?xml version=\"1"
	.ascii	".0\" encoding=\"utf-8\"?>')\nlocal t = \"\"\nif targets then"
	.ascii	"\nt = ' DefaultTargets=\"' .. targets .. '\"'\nend\n_p('<Pro"
	.ascii	"ject%s ToolsVersion=\"%s\" xmlns=\"http://schemas.microsoft."
	.ascii	"com/developer/msbuild/2003\">', t, action.vstudio.toolsVersi"
	.ascii	"on)\nend\nfunction premake.vs2010_vcxproj(prj)\nlocal usemas"
	.ascii	"m = hasmasmfiles(prj)\nio.indent = \"  \"\nvc2010.header(\"B"
	.ascii	"uild\")\nvs2010_config(prj)\nvs2010_globals(prj)\n_p(1,'<Imp"
	.ascii	"ort Project=\"$(VCTargetsPath)\\\\Microsoft.Cpp.Default.prop"
	.ascii	"s\" />')\nfor _, cfginfo in ipairs(prj.solution.vstudio_conf"
	.ascii	"igs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buil"
	.ascii	"dcfg, cfginfo.src_platform)\nvc2010.configurationPropertyGro"
	.ascii	"up(cfg, cfginfo)\nend\n_p(1,'<Import Project=\"$(VCTargetsPa"
	.ascii	"th)\\\\Microsoft.Cpp.props\" />')\n_p(1,'<ImportGroup Label="
	.ascii	"\"ExtensionSettings\">')\nif usemasm then\n_p(2, '<Import Pr"
	.ascii	"oject=\"$(VCTargetsPath)\\\\BuildCustomizations\\\\masm.prop"
	.ascii	"s\" />')\nend\n_p(1,'</ImportGroup>')\nimport_props(prj)\n_p"
	.ascii	"(1,'<PropertyGroup Label=\"UserMacros\" />')\nvc2010.outputP"
	.ascii	"roperties(prj)\nitem_definitions(prj)\nvc2010.files(prj)\nvc"
	.ascii	"2010.clrReferences(prj)\nvc2010.projectReferences(prj)\nvc20"
	.ascii	"10.sdkReferences(prj)\nvc2010.masmfiles(prj)\n_p(1,'<Import "
	.ascii	"Project=\"$(VCTargetsPath)\\\\Microsoft.Cpp.targets\" />')\n"
	.ascii	"_p(1,'<ImportGroup Label=\"ExtensionTargets\">')\nif usemasm"
	.ascii	" then\n_p(2, '<Import Project=\"$(VCTargetsPath)\\\\BuildCus"
	.ascii	"tomizations\\\\masm.targets\" />')\nend\n_p(1,'</ImportGroup"
	.ascii	">')\n_p('</P"
	.ascii	"roject>')\nend\nfunction vc2010.clrReferences(prj)\nif #prj."
	.ascii	"clrreferences == 0 then\nreturn\nend\n_p(1,'<ItemGroup>')\nf"
	.ascii	"or _, ref in ipairs(prj.clrreferences) do\nif os.isfile(ref)"
	.ascii	" then\nlocal assembly = path.getbasename(ref)\n_p(2,'<Refere"
	.ascii	"nce Include=\"%s\">', assembly)\n_p(3,'<HintPath>%s</HintPat"
	.ascii	"h>', path.getrelative(prj.location, ref))\n_p(2,'</Reference"
	.ascii	">')\nelse\n_p(2,'<Reference Include=\"%s\" />', ref)\nend\ne"
	.ascii	"nd\n_p(1,'</ItemGroup>')\nend\nfunction vc2010.projectRefere"
	.ascii	"nces(prj)\nlocal deps = premake.getdependencies(prj)\nif #de"
	.ascii	"ps == 0 and #prj.vsimportreferences == 0 then\nreturn\nend\n"
	.ascii	"local function compareuuid(a, b) return a.uuid < b.uuid end\n"
	.ascii	"table.sort(deps, compareuuid)\ntable.sort(table.join(prj.vsi"
	.ascii	"mportreferences), compareuuid)\n_p(1,'<ItemGroup>')\nfor _, "
	.ascii	"dep in ipairs(deps) do\nlocal deppath = path.getrelative(prj"
	.ascii	".location, vstudio.projectfile(dep))\n_p(2,'<ProjectReferenc"
	.ascii	"e Include=\\\"%s\\\">', path.translate(deppath, \"\\\\\"))\n"
	.ascii	"_p(3,'<Project>{%s}</Project>', dep.uuid)\nif vstudio.iswinr"
	.ascii	"t() then\n_p(3,'<ReferenceOutputAssembly>false</ReferenceOut"
	.ascii	"putAssembly>')\nend\n_p(2,'</ProjectReference>')\nend\nfor _"
	.ascii	", ref in ipairs(prj.vsimportreferences) do\nlocal slnrelpath"
	.ascii	" = path.rebase(ref, prj.location, sln.location)\nlocal iprj "
	.ascii	"= premake.vstudio.getimportprj(slnrelpath, prj.solution)\n_p"
	.ascii	"(2,'<ProjectReference Include=\\\"%s\\\">', ref)\n_p(3,'<Pro"
	.ascii	"ject>{%s}</Project>', iprj.uuid)\n_p(2,'</ProjectReference>'"
	.ascii	")\nend\n_p(1,'</ItemGroup>')\nend\nfunction vc2010.sdkRefere"
	.ascii	"nces(prj)\nlocal refs = prj.sdkreferences\nif #refs > 0 then"
	.ascii	"\n_p(1,'<ItemGroup>')\nfor _, ref in ipairs(refs) do\n_p(2,'"
	.ascii	"<SDKReference Include=\\\"%s\\\" />', ref)\nend\n_p(1,'</Ite"
	.ascii	"mGroup>')\nend\nend\nfunction vc2010.debugdir(cfg)\nlocal is"
	.ascii	"nx = (cfg.platform == \"NX32\" or cfg.platform == \"NX64\")\n"
	.ascii	"local debuggerFlavor =\n  iif(isnx,                         "
	.ascii	"  'OasisNXDebugger'\n, iif(cfg.platform == \"Orbis\",       "
	.ascii	" 'ORBISDebugger'\n, iif(cfg.platform == \"Durango\",      'X"
	.ascii	"boxOneVCppDebugger'\n, iif(cfg.platform == \"TegraAndroid\","
	.ascii	" 'AndroidDebugger'\n, iif(vstudio.iswinrt(),       "
	.ascii	"       'AppHostLocalDebugger'\n,                            "
	.ascii	"         'WindowsLocalDebugger'\n)))))\n_p(2, '<DebuggerFlav"
	.ascii	"or>%s</DebuggerFlavor>', debuggerFlavor)\nif cfg.debugdir an"
	.ascii	"d not vstudio.iswinrt() then\n_p(2, '<LocalDebuggerWorkingDi"
	.ascii	"rectory>%s</LocalDebuggerWorkingDirectory>'\n, path.translat"
	.ascii	"e(cfg.debugdir, '\\\\')\n)\nend\nif cfg.debugcmd then\n_p(2,"
	.ascii	" '<LocalDebuggerCommand>%s</LocalDebuggerCommand>', cfg.debu"
	.ascii	"gcmd)\nend\nif cfg.debugargs then\n_p(2, '<LocalDebuggerComm"
	.ascii	"andArguments>%s</LocalDebuggerCommandArguments>'\n, table.co"
	.ascii	"ncat(cfg.debugargs, \" \")\n)\nend\nif cfg.debugenvs and #cf"
	.ascii	"g.debugenvs > 0 then\n_p(2, '<LocalDebuggerEnvironment>%s%s<"
	.ascii	"/LocalDebuggerEnvironment>'\n, table.concat(cfg.debugenvs, \""
	.ascii	"\\n\")\n, iif(cfg.flags.DebugEnvsInherit,'\\n$(LocalDebugger"
	.ascii	"Environment)', '')\n)\nif cfg.flags.DebugEnvsDontMerge then\n"
	.ascii	"_p(2, '<LocalDebuggerMergeEnvironment>false</LocalDebuggerMe"
	.ascii	"rgeEnvironment>')\nend\nend\nif cfg.deploymode then\n_p(2, '"
	.ascii	"<DeployMode>%s</DeployMode>', cfg.deploymode)\nend\nif cfg.p"
	.ascii	"latform == \"TegraAndroid\" then\nif cfg.androiddebugintentp"
	.ascii	"arams then\n_p(2, '<IntentParams>%s</IntentParams>'\n, table"
	.ascii	".concat(cfg.androiddebugintentparams, \" \")\n)\nend\nend\ne"
	.ascii	"nd\nfunction premake.vs2010_vcxproj_user(prj)\nio.indent = \""
	.ascii	"  \"\nvc2010.header()\nfor _, cfginfo in ipairs(prj.solution"
	.ascii	".vstudio_configs) do\nlocal cfg = premake.getconfig(prj, cfg"
	.ascii	"info.src_buildcfg, cfginfo.src_platform)\n_p('  <PropertyGro"
	.ascii	"up '.. if_config_and_platform() ..'>', premake.esc(cfginfo.n"
	.ascii	"ame))\nvc2010.debugdir(cfg)\n_p('  </PropertyGroup>')\nend\n"
	.ascii	"_p('</Project>')\nend\nlocal png1x1data = {\n0x89, 0x50, 0x4"
	.ascii	"e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x4"
	.ascii	"9, 0x48, 0x44, 0x52, -- .PNG........IHDR\n0x00, 0x00, 0x00, "
	.ascii	"0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, "
	.ascii	"0x25, 0xdb, 0x56, -- .............%.V\n0xca, 0x00, 0x00, 0x0"
	.ascii	"0, 0x03, 0x50, 0x4c, 0x54, 0x45, 0x00, 0x00, 0x00, 0xa7, 0x7"
	.ascii	"a, 0x3d, 0xda, -- .....PLTE....z=.\n0x00, 0x00, 0x00, 0x01, "
	.ascii	"0x74, 0x52, 0x4e, 0x53, 0x00, 0x40, 0xe6, 0xd8, 0x66, 0x00, "
	.ascii	"0x00, 0x00, -- ....tRNS"
	.ascii	".@..f...\n0x0a, 0x49, 0x44, 0x41, 0x54, 0x08, 0xd7, 0x63, 0x"
	.ascii	"60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0xe2, -- .IDAT..c`.."
	.ascii	".....\n0x21, 0xbc, 0x33, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45,"
	.ascii	" 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,       -- !.3....IEND.B`"
	.ascii	".\n}\nfunction png1x1(obj, filename)\nfilename = premake.pro"
	.ascii	"ject.getfilename(obj, filename)\nlocal f, err = io.open(file"
	.ascii	"name, \"wb\")\nif f then\nfor _, byte in ipairs(png1x1data) "
	.ascii	"do\nf:write(string.char(byte))\nend\nf:close()\nend\nend\nfu"
	.ascii	"nction premake.vs2010_appxmanifest(prj)\nio.indent = \"  \"\n"
	.ascii	"io.eol = \"\\r\\n\"\n_p('<?xml version=\"1.0\" encoding=\"ut"
	.ascii	"f-8\"?>')\nif vstudio.storeapp == \"10.0\" then\n_p('<Packag"
	.ascii	"e')\n_p(1, 'xmlns=\"http://schemas.microsoft.com/appx/manife"
	.ascii	"st/foundation/windows10\"')\n_p(1, 'xmlns:mp=\"http://schema"
	.ascii	"s.microsoft.com/appx/2014/phone/manifest\"')\n_p(1, 'xmlns:u"
	.ascii	"ap=\"http://schemas.microsoft.com/appx/manifest/uap/windows1"
	.ascii	"0\"')\n_p(1, 'IgnorableNamespaces=\"uap mp\">')\nelseif vstu"
	.ascii	"dio.storeapp == \"durango\" then\n_p('<Package xmlns=\"http:"
	.ascii	"//schemas.microsoft.com/appx/2010/manifest\" xmlns:mx=\"http"
	.ascii	"://schemas.microsoft.com/appx/2013/xbox/manifest\" Ignorable"
	.ascii	"Namespaces=\"mx\">')\nend\n_p(1, '<Identity')\n_p(2, 'Name=\""
	.ascii	"' .. prj.uuid .. '\"')\n_p(2, 'Publisher=\"CN=Publisher\"')\n"
	.ascii	"_p(2, 'Version=\"1.0.0.0\" />')\nif vstudio.storeapp == \"10"
	.ascii	".0\" then\n_p(1, '<mp:PhoneIdentity')\n_p(2, 'PhoneProductId"
	.ascii	"=\"' .. prj.uuid .. '\"')\n_p(2, 'PhonePublisherId=\"0000000"
	.ascii	"0-0000-0000-0000-000000000000\"/>')\nend\n_p(1, '<Properties"
	.ascii	">')\n_p(2, '<DisplayName>' .. prj.name .. '</DisplayName>')\n"
	.ascii	"_p(2, '<PublisherDisplayName>PublisherDisplayName</Publisher"
	.ascii	"DisplayName>')\n_p(2, '<Logo>' .. prj.name .. '\\\\StoreLogo"
	.ascii	".png</Logo>')\npng1x1(prj, \"%%/StoreLogo.png\")\n_p(2, '<De"
	.ascii	"scription>' .. prj.name .. '</Description>')\n_p(1,'</Proper"
	.ascii	"ties>')\nif vstudio.storeapp == \"10.0\" then\n_p(1, '<Depen"
	.ascii	"dencies>')\n_p(2, '<TargetDeviceFamily Name=\"Windows.Univer"
	.ascii	"sal\" MinVersion=\"10.0.10069.0\" MaxVersionTested=\"10.0.10"
	.ascii	"069.0\" />')\n_p(1, '</Dependencies>')\nelseif vstudio.store"
	.ascii	"app == \"durango\" then\n_p(1, '<Prerequisites>')\n_p(2, '<O"
	.ascii	"S"
	.ascii	"MinVersion>6.2</OSMinVersion>')\n_p(2, '<OSMaxVersionTested>"
	.ascii	"6.2</OSMaxVersionTested>')\n_p(1, '</Prerequisites>')\nend\n"
	.ascii	"_p(1, '<Resources>')\n_p(2, '<Resource Language=\"en-us\"/>'"
	.ascii	")\n_p(1, '</Resources>')\n_p(1, '<Applications>')\n_p(2, '<A"
	.ascii	"pplication Id=\"App\"')\n_p(3, 'Executable=\"$targetnametoke"
	.ascii	"n$.exe\"')\n_p(3, 'EntryPoint=\"' .. prj.name .. '.App\">')\n"
	.ascii	"if vstudio.storeapp == \"10.0\" then\n_p(3, '<uap:VisualElem"
	.ascii	"ents')\n_p(4, 'DisplayName=\"' .. prj.name .. '\"')\n_p(4, '"
	.ascii	"Square150x150Logo=\"' .. prj.name .. '\\\\Logo.png\"')\npng1"
	.ascii	"x1(prj, \"%%/Logo.png\")\nif vstudio.storeapp == \"10.0\" th"
	.ascii	"en\n_p(4, 'Square44x44Logo=\"' .. prj.name .. '\\\\SmallLogo"
	.ascii	".png\"')\npng1x1(prj, \"%%/SmallLogo.png\")\nelse\n_p(4, 'Sq"
	.ascii	"uare30x30Logo=\"' .. prj.name .. '\\\\SmallLogo.png\"')\npng"
	.ascii	"1x1(prj, \"%%/SmallLogo.png\")\nend\n_p(4, 'Description=\"' "
	.ascii	".. prj.name .. '\"')\n_p(4, 'BackgroundColor=\"transparent\""
	.ascii	">')\n_p(4, '<uap:SplashScreen Image=\"' .. prj.name .. '\\\\"
	.ascii	"SplashScreen.png\" />')\npng1x1(prj, \"%%/SplashScreen.png\""
	.ascii	")\n_p(3, '</uap:VisualElements>')\nelseif vstudio.storeapp ="
	.ascii	"= \"durango\" then\n_p(3, '<VisualElements')\n_p(4, 'Display"
	.ascii	"Name=\"' .. prj.name .. '\"')\n_p(4, 'Logo=\"' .. prj.name ."
	.ascii	". '\\\\Logo.png\"')\npng1x1(prj, \"%%/Logo.png\")\n_p(4, 'Sm"
	.ascii	"allLogo=\"' .. prj.name .. '\\\\SmallLogo.png\"')\npng1x1(pr"
	.ascii	"j, \"%%/SmallLogo.png\")\n_p(4, 'Description=\"' .. prj.name"
	.ascii	" .. '\"')\n_p(4, 'ForegroundText=\"light\"')\n_p(4, 'Backgro"
	.ascii	"undColor=\"transparent\">')\n_p(5, '<SplashScreen Image=\"' "
	.ascii	".. prj.name .. '\\\\SplashScreen.png\" />')\npng1x1(prj, \"%"
	.ascii	"%/SplashScreen.png\")\n_p(3, '<"
	.string	"/VisualElements>')\n_p(3, '<Extensions>')\n_p(4, '<mx:Extension Category=\"xbox.system.resources\">')\n_p(4, '<mx:XboxSystemResources />')\n_p(4, '</mx:Extension>')\n_p(3, '</Extensions>')\nend\n_p(2, '</Application>')\n_p(1, '</Applications>')\n_p('</Package>')\nend\n"
	.align 8
.LC42:
	.ascii	"local vc2010 = premake.vstudio.vc2010\nlocal project = prema"
	.ascii	"ke.project\nfunction vc2010.filteridgroup(prj)\nlocal filter"
	.ascii	"s = { }\nlocal filterfound = false\nfor file in premake.proj"
	.ascii	"ect.eachfile(prj, true) do\nlocal folders = string.explode(f"
	.ascii	"ile.vpath, \"/\", true)\nlocal path = \"\"\nfor i = 1, #fold"
	.ascii	"ers - 1 do\nif not filterfound then\nfilterfound = true\n_p("
	.ascii	"1,'<ItemGroup>')\nend\npath = path .. folders[i]\nif not fil"
	.ascii	"ters[path] then\nfilters[path] = true\n_p(2, '<Filter Includ"
	.ascii	"e=\"%s\">', path)\n_p(3, '<UniqueIdentifier>{%s}</UniqueIden"
	.ascii	"tifier>', os.uuid(path))\n_p(2, '</Filter>')\nend\npath = pa"
	.ascii	"th .. \"\\\\\"\nend\nend\nfor _, custombuildtask in ipairs(p"
	.ascii	"rj.custombuildtask or {}) do\nfor _, buildtask in ipairs(cus"
	.ascii	"tombuildtask or {}) do\nlocal folders = string.explode(path."
	.ascii	"trimdots(path.getrelative(prj.location,buildtask[1])), \"/\""
	.ascii	", true)\nlocal path = \"\"\nfor i = 1, #folders - 1 do\nif n"
	.ascii	"ot filterfound then\nfilterfound = true\n_p(1,'<ItemGroup>')"
	.ascii	"\nend\npath = path .. folders[i]\nif not filters[path] then\n"
	.ascii	"filters[path] = true\n_p(2, '<Filter Include=\"%s\">', path)"
	.ascii	"\n_p(3, '<UniqueIdentifier>{%s}</UniqueIdentifier>', os.uuid"
	.ascii	"(path))\n_p(2, '</Filter>')\nend\npath = path .. \"\\\\\"\ne"
	.ascii	"nd\nend\nend\nif filterfound then\n_p(1,'</ItemGroup>')\nend"
	.ascii	"\nend\nfunction vc2010.filefiltergroup(prj, section, kind)\n"
	.ascii	"local files = vc2010.getfilegroup(prj, section) or {}\nif ki"
	.ascii	"nd == nill then\nkind = section\nend\nif (section == \"Custo"
	.ascii	"mBuild\") then\nfor _, custombuildtask in ipairs(prj.customb"
	.ascii	"uildtask or {}) do\nfor _, buildtask in ipairs(custombuildta"
	.ascii	"sk or {}) do\nlocal fcfg = { }\nfcfg.name = path.getrelative"
	.ascii	"(prj.location,buildtask[1])\nfcfg.vpath = path.trimdots(fcfg"
	.ascii	".name)\ntable.insert(files, fcfg)\nend\nend\nend\nif #files "
	.ascii	"> 0 then\n_p(1,'<ItemGroup>')\nfor _, file in ipairs(files) "
	.ascii	"do\nlocal filter\nif file.name ~= file.vpath then\nfilter = "
	.ascii	"path.getdirectory(file.vpath)\nelse\nfilter = path.getdirect"
	.ascii	"ory(file.name)\nend\nif filter ~= \".\" then\n_p(2,'<%s Incl"
	.ascii	"ude=\\\"%s\\\">', kind, path.translate(file.name, \"\\\\\"))"
	.ascii	"\n_p(3,'<Filter>%s</Filter>', path.translate(filter, \"\\\\\""
	.ascii	"))\n_p(2"
	.ascii	",'</%s>', kind)\nelse\n_p(2,'<%s Include=\\\"%s\\\" />', kin"
	.ascii	"d, path.translate(file.name, \"\\\\\"))\nend\nend\n_p(1,'</I"
	.ascii	"temGroup>')\nend\nend\nfunction vc2010.generate_filters(prj)"
	.ascii	"\nio.indent = \"  \"\nvc2010.header()\nvc2010.filteridgroup("
	.ascii	"prj)\nvc2010.filefiltergroup(prj, \"None\")\nvc2010.filefilt"
	.ascii	"ergroup(prj, \"ClInclude\")\nvc2010.filefiltergroup(prj, \"C"
	.ascii	"lCompile\")\nvc2010.filefiltergroup(prj, \"Object\")\nvc2010"
	.ascii	".filefiltergroup(prj, \"ResourceCompile\")\nvc2010.filefilte"
	.ascii	"rgro"
	.string	"up(prj, \"CustomBuild\")\nvc2010.filefiltergroup(prj, \"AppxManifest\")\nvc2010.filefiltergroup(prj, \"Natvis\")\nvc2010.filefiltergroup(prj, \"Image\")\nvc2010.filefiltergroup(prj, \"DeploymentContent\", \"None\")\nvc2010.filefiltergroup(prj, \"MASM\")\n_p('</Project>')\nend\n"
	.align 8
.LC43:
	.ascii	"local vc2010 = premake.vstudio.vc2010\nlocal vstudio = prema"
	.ascii	"ke.vstudio\nnewaction\n{\ntrigger         = \"vs2010\",\nsho"
	.ascii	"rtname       = \"Visual Studio 2010\",\ndescription     = \""
	.ascii	"Generate Microsoft Visual Studio 2010 project files\",\nos  "
	.ascii	"            = \"windows\",\nvalid_kinds     = { \"ConsoleApp"
	.ascii	"\", \"WindowedApp\", \"StaticLib\", \"SharedLib\", \"Bundle\""
	.ascii	" },\nvalid_languages = { \"C\", \"C++\", \"C#\"},\nvalid_too"
	.ascii	"ls     = {\ncc     = { \"msc\"   },\ndotnet = { \"msnet\" },"
	.ascii	"\n},\nonsolution = function(sln)\npremake.generate(sln, \"%%"
	.ascii	".sln\", vstudio.sln2005.generate)\nend,\nonproject = functio"
	.ascii	"n(prj)\nif premake.isdotnetproject(prj) then\npremake.genera"
	.ascii	"te(prj, \"%%.csproj\", vstudio.cs2005.generate)\npremake.gen"
	.ascii	"erate(prj, \"%%.csproj.user\", vstudio.cs2005.generate_user)"
	.ascii	"\nelse\npremake.generate(prj, \"%%.vcxproj\", premake.vs2010"
	.ascii	"_vcxproj)\npremake.generate(prj, \"%%.vcxproj.user\", premak"
	.ascii	"e.vs2010_vcxproj_user)\npremake.generate(prj, \"%%.vcxproj.f"
	.ascii	"ilters\", vstudio.vc2010.generate_filters)\nend\nend,\noncle"
	.ascii	"ansolution = premake.vstudio.cleansolution,\noncleanproject "
	.ascii	" = pr"
	.string	"emake.vstudio.cleanproject,\noncleantarget   = premake.vstudio.cleantarget,\nvstudio = {\nproductVersion  = \"8.0.30703\",\nsolutionVersion = \"11\",\ntargetFramework = \"4.0\",\ntoolsVersion    = \"4.0\",\nsupports64bitEditContinue = false,\nintDirAbsolute  = false,\n}\n}\n"
	.align 8
.LC44:
	.ascii	"premake.vstudio.vc2012 = {}\nlocal vc2012 = premake.vstudio."
	.ascii	"vc2012\nlocal vstudio = premake.vstudio\nnewaction\n{\ntrigg"
	.ascii	"er         = \"vs2012\",\nshortname       = \"Visual Studio "
	.ascii	"2012\",\ndescription     = \"Generate Microsoft Visual Studi"
	.ascii	"o 2012 project files\",\nos              = \"windows\",\nval"
	.ascii	"id_kinds     = { \"ConsoleApp\", \"WindowedApp\", \"StaticLi"
	.ascii	"b\", \"SharedLib\", \"Bundle\" },\nvalid_languages = { \"C\""
	.ascii	", \"C++\", \"C#\"},\nvalid_tools     = {\ncc     = { \"msc\""
	.ascii	"   },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sl"
	.ascii	"n)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.genera"
	.ascii	"te)\nend,\nonproject = function(prj)\nif premake.isdotnetpro"
	.ascii	"ject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio"
	.ascii	".cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\","
	.ascii	" vstudio.cs2005.generate_user)\nelse\npremake.generate(prj, "
	.ascii	"\"%%.vcxproj\", premake.vs2010_vcxproj)\npremake.generate(pr"
	.ascii	"j, \"%%.vcxproj.user\", premake.vs2010_vcxproj_user)\npremak"
	.ascii	"e.generate(prj, \"%%.vcxproj.filters\", vstudio.vc2010.gener"
	.ascii	"ate_filters)\nend\nend,\noncleansolution = premake.vstudio.c"
	.ascii	"lea"
	.string	"nsolution,\noncleanproject  = premake.vstudio.cleanproject,\noncleantarget   = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.5\",\ntoolsVersion    = \"4.0\",\nsupports64bitEditContinue = false,\nintDirAbsolute  = false,\n}\n}\n"
	.align 8
.LC45:
	.ascii	"premake.vstudio.vc2013 = {}\nlocal vc2013 = premake.vstudio."
	.ascii	"vc2013\nlocal vstudio = premake.vstudio\nnewaction\n{\ntrigg"
	.ascii	"er         = \"vs2013\",\nshortname       = \"Visual Studio "
	.ascii	"2013\",\ndescription     = \"Generate Microsoft Visual Studi"
	.ascii	"o 2013 project files\",\nos              = \"windows\",\nval"
	.ascii	"id_kinds     = { \"ConsoleApp\", \"WindowedApp\", \"StaticLi"
	.ascii	"b\", \"SharedLib\", \"Bundle\" },\nvalid_languages = { \"C\""
	.ascii	", \"C++\", \"C#\"},\nvalid_tools     = {\ncc     = { \"msc\""
	.ascii	"   },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sl"
	.ascii	"n)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.genera"
	.ascii	"te)\nend,\nonproject = function(prj)\nif premake.isdotnetpro"
	.ascii	"ject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio"
	.ascii	".cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\","
	.ascii	" vstudio.cs2005.generate_user)\nelse\npremake.vstudio.needAp"
	.ascii	"pxManifest = false\npremake.generate(prj, \"%%.vcxproj\", pr"
	.ascii	"emake.vs2010_vcxproj)\npremake.generate(prj, \"%%.vcxproj.us"
	.ascii	"er\", premake.vs2010_vcxproj_user)\npremake.generate(prj, \""
	.ascii	"%%.vcxproj.filters\", vstudio.vc2010.generate_filters)\nif p"
	.ascii	"remake.vstudio.needAppxManifest then\npremake.generate(prj, "
	.ascii	"\"%%/Package.appxmanifest\", premake.vs2010_appxmanifest)\ne"
	.ascii	"nd\nend\nend,\noncleansolution = premake.vstudio.clean"
	.string	"solution,\noncleanproject  = premake.vstudio.cleanproject,\noncleantarget   = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.5\",\ntoolsVersion    = \"12.0\",\nsupports64bitEditContinue = false,\nintDirAbsolute  = false,\n}\n}\n"
	.align 8
.LC46:
	.ascii	"premake.vstudio.vc2015 = {}\nlocal vc2015 = premake.vstudio."
	.ascii	"vc2015\nlocal vstudio = premake.vstudio\nnewaction\n{\ntrigg"
	.ascii	"er         = \"vs2015\",\nshortname       = \"Visual Studio "
	.ascii	"2015\",\ndescription     = \"Generate Microsoft Visual Studi"
	.ascii	"o 2015 project files\",\nos              = \"windows\",\nval"
	.ascii	"id_kinds     = { \"ConsoleApp\", \"WindowedApp\", \"StaticLi"
	.ascii	"b\", \"SharedLib\", \"Bundle\" },\nvalid_languages = { \"C\""
	.ascii	", \"C++\", \"C#\" },\nvalid_tools     = {\ncc     = { \"msc\""
	.ascii	"   },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sl"
	.ascii	"n)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.genera"
	.ascii	"te)\nend,\nonproject = function(prj)\nif premake.isdotnetpro"
	.ascii	"ject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio"
	.ascii	".cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\","
	.ascii	" vstudio.cs2005.generate_user)\nelse\npremake.vstudio.needAp"
	.ascii	"pxManifest = false\npremake.generate(prj, \"%%.vcxproj\", pr"
	.ascii	"emake.vs2010_vcxproj)\npremake.generate(prj, \"%%.vcxproj.us"
	.ascii	"er\", premake.vs2010_vcxproj_user)\npremake.generate(prj, \""
	.ascii	"%%.vcxproj.filters\", vstudio.vc2010.generate_filters)\nif p"
	.ascii	"remake.vstudio.needAppxManifest then\npremake.generate(prj, "
	.ascii	"\"%%/Package.appxmanifest\", premake.vs2010_appxmanifest)\ne"
	.ascii	"nd\nend\nend,\noncleansolution = premake.vstudio.cleansoluti"
	.ascii	"on,\noncleanproject  = premake.vstu"
	.string	"dio.cleanproject,\noncleantarget   = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.5\",\ntoolsVersion    = \"14.0\",\nwindowsTargetPlatformVersion = \"8.1\",\nsupports64bitEditContinue    = true,\nintDirAbsolute  = false,\n}\n}\n"
	.align 8
.LC47:
	.ascii	"premake.vstudio.vc2017 = {}\nlocal vc2017 = premake.vstudio."
	.ascii	"vc2017\nlocal vstudio = premake.vstudio\nnewaction\n{\ntrigg"
	.ascii	"er         = \"vs2017\",\nshortname       = \"Visual Studio "
	.ascii	"2017\",\ndescription     = \"Generate Microsoft Visual Studi"
	.ascii	"o 2017 project files\",\nos              = \"windows\",\nval"
	.ascii	"id_kinds     = { \"ConsoleApp\", \"WindowedApp\", \"StaticLi"
	.ascii	"b\", \"SharedLib\", \"Bundle\" },\nvalid_languages = { \"C\""
	.ascii	", \"C++\", \"C#\" },\nvalid_tools     = {\ncc     = { \"msc\""
	.ascii	"   },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sl"
	.ascii	"n)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.genera"
	.ascii	"te)\nend,\nonproject = function(prj)\nif premake.isdotnetpro"
	.ascii	"ject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio"
	.ascii	".cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\","
	.ascii	" vstudio.cs2005.generate_user)\nelse\npremake.vstudio.needAp"
	.ascii	"pxManifest = false\npremake.generate(prj, \"%%.vcxproj\", pr"
	.ascii	"emake.vs2010_vcxproj)\npremake.generate(prj, \"%%.vcxproj.us"
	.ascii	"er\", premake.vs2010_vcxproj_user)\npremake.generate(prj, \""
	.ascii	"%%.vcxproj.filters\", vstudio.vc2010.generate_filters)\nif p"
	.ascii	"remake.vstudio.needAppxManifest then\npremake.generate(prj, "
	.ascii	"\"%%/Package.appxmanifest\", premake.vs2010_appxmanifest)\ne"
	.ascii	"nd\nend\nend,\noncleansolution = premake.vstudio.cleansoluti"
	.ascii	"on,\noncleanproject  = premake.vstudi"
	.string	"o.cleanproject,\noncleantarget   = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.5.2\",\ntoolsVersion    = \"15.0\",\nwindowsTargetPlatformVersion = \"8.1\",\nsupports64bitEditContinue    = true,\nintDirAbsolute  = false,\n}\n}\n"
	.align 8
.LC48:
	.ascii	"premake.vstudio.vc2019 = {}\nlocal vc2019 = premake.vstudio."
	.ascii	"vc2019\nlocal vstudio = premake.vstudio\nnewaction\n{\ntrigg"
	.ascii	"er         = \"vs2019\",\nshortname       = \"Visual Studio "
	.ascii	"2019\",\ndescription     = \"Generate Microsoft Visual Studi"
	.ascii	"o 2019 project files\",\nos              = \"windows\",\nval"
	.ascii	"id_kinds     = { \"ConsoleApp\", \"WindowedApp\", \"StaticLi"
	.ascii	"b\", \"SharedLib\", \"Bundle\" },\nvalid_languages = { \"C\""
	.ascii	", \"C++\", \"C#\" },\nvalid_tools     = {\ncc     = { \"msc\""
	.ascii	"   },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sl"
	.ascii	"n)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.genera"
	.ascii	"te)\nend,\nonproject = function(prj)\nif premake.isdotnetpro"
	.ascii	"ject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio"
	.ascii	".cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\","
	.ascii	" vstudio.cs2005.generate_user)\nelse\npremake.vstudio.needAp"
	.ascii	"pxManifest = false\npremake.generate(prj, \"%%.vcxproj\", pr"
	.ascii	"emake.vs2010_vcxproj)\npremake.generate(prj, \"%%.vcxproj.us"
	.ascii	"er\", premake.vs2010_vcxproj_user)\npremake.generate(prj, \""
	.ascii	"%%.vcxproj.filters\", vstudio.vc2010.generate_filters)\nif p"
	.ascii	"remake.vstudio.needAppxManifest then\npremake.generate(prj, "
	.ascii	"\"%%/Package.appxmanifest\", premake.vs2010_appxmanifest)\ne"
	.ascii	"nd\nend\nend,\noncleansolution = premake.vstudio.cleansoluti"
	.ascii	"on,\noncleanproject  = premake.vstudio"
	.string	".cleanproject,\noncleantarget   = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.7.2\",\ntoolsVersion    = \"16.0\",\nwindowsTargetPlatformVersion = \"10.0\",\nsupports64bitEditContinue    = true,\nintDirAbsolute  = false,\n}\n}\n"
	.align 8
.LC49:
	.ascii	"premake.xcode = { }\nfunction premake.xcode.ch"
	.string	"eckproject(prj)\nlocal last\nfor cfg in premake.eachconfig(prj) do\nif last and last ~= cfg.kind then\nerror(\"Project '\" .. prj.name .. \"' uses more than one target kind; not supported by Xcode\", 0)\nend\nlast = cfg.kind\nend\nend\npremake.xcode.toolset = \"macosx\"\n"
	.align 8
.LC50:
	.ascii	"premake.xcode.parameters = { }\nlocal xcode = premake.xcode\n"
	.ascii	"local tree  = premake.tree\nfunction xcode.getbuildcategory("
	.ascii	"node)\nlocal categories = {\n[\".a\"] = \"Frameworks\",\n[\""
	.ascii	".h\"] = \"Headers\",\n[\".hh\"] = \"Headers\",\n[\".hpp\"] ="
	.ascii	" \"Headers\",\n[\".hxx\"] = \"Headers\",\n[\".inl\"] = \"Hea"
	.ascii	"ders\",\n[\".c\"] = \"Sources\",\n[\".cc\"] = \"Sources\",\n"
	.ascii	"[\".cpp\"] = \"Sources\",\n[\".cxx\"] = \"Sources\",\n[\".c+"
	.ascii	"+\"] = \"Sources\",\n[\".dylib\"] = \"Frameworks\",\n[\".bun"
	.ascii	"dle\"] = \"Frameworks\",\n[\".framework\"] = \"Frameworks\","
	.ascii	"\n[\".tbd\"] = \"Frameworks\",\n[\".m\"] = \"Sources\",\n[\""
	.ascii	".mm\"] = \"Sources\",\n[\".S\"] = \"Sources\",\n[\".strings\""
	.ascii	"] = \"Resources\",\n[\".nib\"] = \"Resources\",\n[\".xib\"] "
	.ascii	"= \"Resources\",\n[\".icns\"] = \"Resources\",\n[\".bmp\"] ="
	.ascii	" \"Resources\",\n[\".wav\"] = \"Resources\",\n[\".xcassets\""
	.ascii	"]  = \"Resources\",\n[\".xcdatamodeld\"] = \"Sources\",\n[\""
	.ascii	".swift\"] = \"Sources\",\n}\nreturn categories[path.getexten"
	.ascii	"sion(node.name)] or\ncategories[string.lower(path.getextensi"
	.ascii	"on(node.name))]\nend\nfunction xcode.getconfigname(cfg)\nloc"
	.ascii	"al name = cfg.name\nif #cfg.project.solution.xcode.platforms"
	.ascii	" > 1 then\nname = name .. \" \" .. premake.action.current()."
	.ascii	"valid_platforms[cfg.platform]\nend\nreturn name\nend\nfuncti"
	.ascii	"on xcode.getfiletype(node)\nlocal types = {\n[\".c\"]       "
	.ascii	"  = \"sourcecode.c.c\",\n[\".cc\"]        = \"sourcecode.cpp"
	.ascii	".cpp\",\n[\".cpp\"]       = \"sourcecode.cpp.cpp\",\n[\".css"
	.ascii	"\"]       = \"text.css\",\n[\".cxx\"]       = \"sourcecode.c"
	.ascii	"pp.cpp\",\n[\".c++\"]       = \"sourcecode.cpp.cpp\",\n[\".e"
	.ascii	"ntitlements\"] = \"text.xml\",\n[\".bundle\"]    = \"wrapper"
	.ascii	".cfbundle\",\n[\".framework\"] = \"wrapper.framework\",\n[\""
	.ascii	".tbd\"]       = \"sourcecode.text-based-dylib-definition\",\n"
	.ascii	"[\".gif\"]       = \"image.gif\",\n[\".h\"]         = \"sour"
	.ascii	"cecode.c.h\",\n[\".hh\"]        = \"sourcecode.cpp.h\",\n[\""
	.ascii	".hpp\"]       = \"sourcecode.cpp.h\",\n[\".hxx\"]       = \""
	.ascii	"sourcecode.cpp.h\",\n[\".inl\"]       = \"sourcecode.cpp.h\""
	.ascii	",\n[\".html\"]      = \"text.html\",\n[\".lua\"]       = \"s"
	.ascii	"ourcecode.lua\",\n[\".m\"]         = \"sourcecode.c.objc\",\n"
	.ascii	"[\".mm\"]        = \"sourcecode.cpp.objcpp\",\n[\".S\"]     "
	.ascii	"    = \"sourcecode.asm\",\n[\".nib\"]       = \"wrapper.nib\""
	.ascii	",\n[\".pch\"]       = \"sourcecode.c.h\",\n[\""
	.ascii	".plist\"]     = \"text.plist.xml\",\n[\".strings\"]   = \"te"
	.ascii	"xt.plist.strings\",\n[\".xib\"]       = \"file.xib\",\n[\".i"
	.ascii	"cns\"]      = \"image.icns\",\n[\".bmp\"]       = \"image.bm"
	.ascii	"p\",\n[\".wav\"]       = \"audio.wav\",\n[\".xcassets\"]  = "
	.ascii	"\"folder.assetcatalog\",\n[\".xcdatamodeld\"] = \"wrapper.xc"
	.ascii	"datamodeld\",\n[\".swift\"]     = \"sourcecode.swift\",\n}\n"
	.ascii	"return types[path.getextension(node.path)] or\n(types[string"
	.ascii	".lower(path.getextension(node.path))] or \"text\")\nend\nfun"
	.ascii	"ction xcode.getfiletypeForced(node)\nlocal types = {\n[\".c\""
	.ascii	"]         = \"sourcecode.cpp.cpp\",\n[\".cc\"]        = \"so"
	.ascii	"urcecode.cpp.cpp\",\n[\".cpp\"]       = \"sourcecode.cpp.cpp"
	.ascii	"\",\n[\".css\"]       = \"text.css\",\n[\".cxx\"]       = \""
	.ascii	"sourcecode.cpp.cpp\",\n[\".c++\"]       = \"sourcecode.cpp.c"
	.ascii	"pp\",\n[\".entitlements\"] = \"text.xml\",\n[\".bundle\"]   "
	.ascii	" = \"wrapper.cfbundle\",\n[\".framework\"] = \"wrapper.frame"
	.ascii	"work\",\n[\".tbd\"]       = \"wrapper.framework\",\n[\".gif\""
	.ascii	"]       = \"image.gif\",\n[\".h\"]         = \"sourcecode.cp"
	.ascii	"p.h\",\n[\".hh\"]        = \"sourcecode.cpp.h\",\n[\".hpp\"]"
	.ascii	"       = \"sourcecode.cpp.h\",\n[\".hxx\"]       = \"sourcec"
	.ascii	"ode.cpp.h\",\n[\".inl\"]       = \"sourcecode.cpp.h\",\n[\"."
	.ascii	"html\"]      = \"text.html\",\n[\".lua\"]       = \"sourceco"
	.ascii	"de.lua\",\n[\".m\"]         = \"sourcecode.cpp.objcpp\",\n[\""
	.ascii	".mm\"]        = \"sourcecode.cpp.objcpp\",\n[\".nib\"]      "
	.ascii	" = \"wrapper.nib\",\n[\".pch\"]       = \"sourcecode.cpp.h\""
	.ascii	",\n[\".plist\"]     = \"text.plist.xml\",\n[\".strings\"]   "
	.ascii	"= \"text.plist.strings\",\n[\".xib\"]       = \"file.xib\",\n"
	.ascii	"[\".icns\"]      = \"image.icns\",\n[\".bmp\"]       = \"ima"
	.ascii	"ge.bmp\",\n[\".wav\"]       = \"audio.wav\",\n[\".xcassets\""
	.ascii	"]  = \"folder.assetcatalog\",\n[\".xcdatamodeld\"] = \"wrapp"
	.ascii	"er.xcdatamodeld\",\n[\".swift\"]     = \"sourcecode.swift\","
	.ascii	"\n}\nreturn types[path.getextension(node.path)] or\n(types[s"
	.ascii	"tring.lower(path.getextension(node.path))] or \"text\")\nend"
	.ascii	"\nfunction xcode.getproducttype(node)\nlocal types = {\nCons"
	.ascii	"oleApp  = \"com.apple.product-type.tool\",\nWindowedApp = no"
	.ascii	"de.cfg.options.SkipBundling and \"com.apple.product-type.too"
	.ascii	"l\" or \"com.apple.product-type.application\",\nStaticLib   "
	.ascii	"= \"com.apple.product-type.library.static\",\nSharedLib   = "
	.ascii	"\"c"
	.ascii	"om.apple.product-type.library.dynamic\",\nBundle      = node"
	.ascii	".cfg.options.SkipBundling and \"com.apple.product-type.tool\""
	.ascii	" or \"com.apple.product-type.bundle\",\n}\nreturn types[node"
	.ascii	".cfg.kind]\nend\nfunction xcode.gettargettype(node)\nlocal t"
	.ascii	"ypes = {\nConsoleApp  = \"\\\"compiled.mach-o.executable\\\""
	.ascii	"\",\nWindowedApp = node.cfg.options.SkipBundling and \"\\\"c"
	.ascii	"ompiled.mach-o.executable\\\"\" or \"wrapper.application\",\n"
	.ascii	"StaticLib   = \"archive.ar\",\nSharedLib   = \"\\\"compiled."
	.ascii	"mach-o.dylib\\\"\",\nBundle      = node.cfg.options.SkipBund"
	.ascii	"ling and \"\\\"compiled.mach-o.bundle\\\"\" or \"wrapper.cfb"
	.ascii	"undle\",\n}\nreturn types[node.cfg.kind]\nend\nfunction xcod"
	.ascii	"e.getxcodeprojname(prj)\nlocal fname = premake.project.getfi"
	.ascii	"lename(prj, \"%%.xcodeproj\")\nreturn fname\nend\nfunction x"
	.ascii	"code.isframework(fname)\nreturn (path.getextension(fname) =="
	.ascii	" \".framework\" or path.getextension(fname) == \".tbd\")\nen"
	.ascii	"d\nfunction xcode.uuid(param)\nreturn os.uuid(param):upper()"
	.ascii	":gsub('-',''):sub(0,24)\nend\nfunction xcode.newid(node, usa"
	.ascii	"ge)\nlocal base = ''\nlocal prj = node.project\nif prj == ni"
	.ascii	"l then\nlocal parent = node.parent\nwhile parent ~= nil do\n"
	.ascii	"if parent.project ~= nil then\nprj = parent.project\nbreak\n"
	.ascii	"end\nparent = parent.parent\nend\nend\nif prj ~= nil then\np"
	.ascii	"rj.uuidcounter = (prj.uuidcounter or 0) + 1\nbase = base .. "
	.ascii	"prj.name .. \"$\" .. prj.uuidcounter .. \"$\"\nend\nbase = b"
	.ascii	"ase .. \"$\" .. (node.path or node.name or \"\")\nbase = bas"
	.ascii	"e .. \"$\" .. (usage or \"\")\nreturn xcode.uuid(base)\nend\n"
	.ascii	"function xcode.getscriptphaselabel(cmd, count, cfg)\nreturn "
	.ascii	"string.format(\"\\\"Script Phase %s [%s] (%s)\\\"\", count, "
	.ascii	"cmd:match(\"(%w+)(.+)\"), iif(cfg, xcode.getconfigname(cfg),"
	.ascii	" \"all\"))\nend\nfunction xcode.getcopyphaselabel(type, coun"
	.ascii	"t, target)\nreturn string.format(\"\\\"Copy %s %s [%s]\\\"\""
	.ascii	", type, count, target)\nend\nfunction xcode.preparesolution("
	.ascii	"sln)\nsln.xcode = { }\nsln.xcode.platforms = premake.filterp"
	.ascii	"latforms(sln, premake.action.current().valid_platforms, \"Un"
	.ascii	"iversal\")\nfor prj in premake.solution.eachproject(sln) do\n"
	.ascii	"local cfg = premake.getconfig(prj, prj.configurations[1], sl"
	.ascii	"n.xcode.platforms[1])\nl"
	.ascii	"ocal node = premake.tree.new(path.getname(cfg.buildtarget.bu"
	.ascii	"ndlepath))\nnode.cfg = cfg\nnode.id = premake.xcode.newid(no"
	.ascii	"de, \"product\")\nnode.targetid = premake.xcode.newid(node, "
	.ascii	"\"target\")\nprj.xcode = {}\nprj.xcode.projectnode = node\ne"
	.ascii	"nd\nend\nfunction xcode.printlist(list, tag, sort)\nif #list"
	.ascii	" > 0 then\nif sort ~= nil and sort == true then\ntable.sort("
	.ascii	"list)\nend\n_p(4,'%s = (', tag)\nfor _, item in ipairs(list)"
	.ascii	" do\nlocal escaped_item = item:gsub(\"\\\"\", \"\\\\\\\\\\\\"
	.ascii	"\\\"\"):gsub(\"'\", \"\\\\\\\\'\")\n_p(5, '\"%s\",', escaped"
	.ascii	"_item)\nend\n_p(4,');')\nend\nend\nfunction xcode.quotestr(s"
	.ascii	"tr)\nif str:match(\"[^a-zA-Z0-9$._/]\") == nil then\nreturn "
	.ascii	"str\nend\nreturn \"\\\"\" .. str:gsub(\"[\\\"\\\\\\\"]\", \""
	.ascii	"\\\\%0\") .. \"\\\"\"\nend\nfunction xcode.Header(tr, objver"
	.ascii	"sion)\n_p('// !$*UTF8*$!')\n_p('{')\n_p(1,'archiveVersion = "
	.ascii	"1;')\n_p(1,'classes = {')\n_p(1,'};')\n_p(1,'objectVersion ="
	.ascii	" %d;', objversion)\n_p(1,'objects = {')\n_p('')\nend\nfuncti"
	.ascii	"on xcode.PBXBuildFile(tr)\nlocal function gatherCopyFiles(wh"
	.ascii	"ich)\nlocal copyfiles = {}\nlocal targets = tr.project[which"
	.ascii	"]\nif #targets > 0 then\nfor _, t in ipairs(targets) do\nfor"
	.ascii	" __, tt in ipairs(t) do\ntable.insertflat(copyfiles, tt[2])\n"
	.ascii	"end\nend\nend\nreturn table.translate(copyfiles, path.getnam"
	.ascii	"e)\nend\nlocal function gatherCopyFrameworks(which)\nlocal c"
	.ascii	"opyfiles = {}\nlocal targets = tr.project[which]\nif #target"
	.ascii	"s > 0 then\ntable.insertflat(copyfiles, targets)\nend\nretur"
	.ascii	"n table.translate(copyfiles, path.getname)\nend\nlocal copyf"
	.ascii	"iles = table.flatten({\ngatherCopyFiles('xcodecopyresources'"
	.ascii	"),\ngatherCopyFrameworks('xcodecopyframeworks')\n})\n_p('/* "
	.ascii	"Begin PBXBuildFile section */')\ntree.traverse(tr, {\nonnode"
	.ascii	" = function(node)\nif node.buildid then\n_p(2,'%s /* %s in %"
	.ascii	"s */ = {isa = PBXBuildFile; fileRef = %s /* %s */; };',\nnod"
	.ascii	"e.buildid, node.name, xcode.getbuildcategory(node), node.id,"
	.ascii	" node.name)\nend\nif table.icontains(copyfiles, node.name) t"
	.ascii	"hen\n_p(2,'%s /* %s in %s */ = {isa = PBXBuildFile; fileRef "
	.ascii	"= %s /* %s */; %s };',\nxcode.uuid(node.name .. 'in CopyFile"
	.ascii	"s'), node.name, 'CopyFiles', node.id, node.name,\niif(xcode."
	.ascii	"isframework(node.name"
	.ascii	"), \"settings = {ATTRIBUTES = (CodeSignOnCopy, ); };\", \"\""
	.ascii	")\n)\nend\nend\n})\n_p('/* End PBXBuildFile section */')\n_p"
	.ascii	"('')\nend\nfunction xcode.PBXContainerItemProxy(tr)\nif #tr."
	.ascii	"projects.children > 0 then\n_p('/* Begin PBXContainerItemPro"
	.ascii	"xy section */')\nfor _, node in ipairs(tr.projects.children)"
	.ascii	" do\n_p(2,'%s /* PBXContainerItemProxy */ = {', node.product"
	.ascii	"proxyid)\n_p(3,'isa = PBXContainerItemProxy;')\n_p(3,'contai"
	.ascii	"nerPortal = %s /* %s */;', node.id, path.getname(node.path))"
	.ascii	"\n_p(3,'proxyType = 2;')\n_p(3,'remoteGlobalIDString = %s;',"
	.ascii	" node.project.xcode.projectnode.id)\n_p(3,'remoteInfo = \"%s"
	.ascii	"\";', node.project.xcode.projectnode.name)\n_p(2,'};')\n_p(2"
	.ascii	",'%s /* PBXContainerItemProxy */ = {', node.targetproxyid)\n"
	.ascii	"_p(3,'isa = PBXContainerItemProxy;')\n_p(3,'containerPortal "
	.ascii	"= %s /* %s */;', node.id, path.getname(node.path))\n_p(3,'pr"
	.ascii	"oxyType = 1;')\n_p(3,'remoteGlobalIDString = %s;', node.proj"
	.ascii	"ect.xcode.projectnode.targetid)\n_p(3,'remoteInfo = \"%s\";'"
	.ascii	", node.project.xcode.projectnode.name)\n_p(2,'};')\nend\n_p("
	.ascii	"'/* End PBXContainerItemProxy section */')\n_p('')\nend\nend"
	.ascii	"\nfunction xcode.PBXFileReference(tr,prj)\n_p('/* Begin PBXF"
	.ascii	"ileReference section */')\ntree.traverse(tr, {\nonleaf = fun"
	.ascii	"ction(node)\nif not node.path then\nreturn\nend\nif node.kin"
	.ascii	"d == \"product\" then\n_p(2,'%s /* %s */ = {isa = PBXFileRef"
	.ascii	"erence; explicitFileType = %s; includeInIndex = 0; name = \""
	.ascii	"%s\"; path = \"%s\"; sourceTree = BUILT_PRODUCTS_DIR; };',\n"
	.ascii	"node.id, node.name, xcode.gettargettype(node), node.name, pa"
	.ascii	"th.getname(node.cfg.buildtarget.bundlepath))\nelseif node.pa"
	.ascii	"rent.parent == tr.projects then\nlocal relpath = path.getrel"
	.ascii	"ative(tr.project.location, node.parent.project.location)\n_p"
	.ascii	"(2,'%s /* %s */ = {isa = PBXFileReference; lastKnownFileType"
	.ascii	" = \"wrapper.pb-project\"; name = \"%s\"; path = \"%s\"; sou"
	.ascii	"rceTree = SOURCE_ROOT; };',\nnode.parent.id, node.parent.nam"
	.ascii	"e, node.parent.name, path.join(relpath, node.parent.name))\n"
	.ascii	"else\nlocal pth, src\nif xcode.isframework(node.path) then\n"
	.ascii	"local nodePath = node.path\nlocal _, matchEnd, variable = st"
	.ascii	"ring.find(nodePath, \"^%$%((.+"
	.ascii	")%)/\")\nif variable then\nnodePath = string.sub(nodePath, m"
	.ascii	"atchEnd + 1)\nend\nif string.find(nodePath,'/')  then\nif st"
	.ascii	"ring.find(nodePath,'^%.')then\nnodePath = path.getabsolute(p"
	.ascii	"ath.join(tr.project.location, nodePath))\nend\npth = nodePat"
	.ascii	"h\nelseif path.getextension(nodePath)=='.tbd' then\npth = \""
	.ascii	"/usr/lib/\" .. nodePath\nelse\npth = \"/System/Library/Frame"
	.ascii	"works/\" .. nodePath\nend\nif variable then\nsrc = variable\n"
	.ascii	"if string.find(pth, '^/') then\npth = string.sub(pth, 2)\nen"
	.ascii	"d\nelse\nsrc = \"<absolute>\"\nend\nelse\nsrc = \"<group>\"\n"
	.ascii	"if node.location then\npth = node.location\nelseif node.pare"
	.ascii	"nt.isvpath then\npth = node.cfg.name\nelse\npth = tree.getlo"
	.ascii	"calpath(node)\nend\nend\nif (not prj.options.ForceCPP) then\n"
	.ascii	"_p(2,'%s /* %s */ = {isa = PBXFileReference; lastKnownFileTy"
	.ascii	"pe = %s; name = \"%s\"; path = \"%s\"; sourceTree = \"%s\"; "
	.ascii	"};',\nnode.id, node.name, xcode.getfiletype(node), node.name"
	.ascii	", pth, src)\nelse\n_p(2,'%s /* %s */ = {isa = PBXFileReferen"
	.ascii	"ce; explicitFileType = %s; name = \"%s\"; path = \"%s\"; sou"
	.ascii	"rceTree = \"%s\"; };',\nnode.id, node.name, xcode.getfiletyp"
	.ascii	"eForced(node), node.name, pth, src)\nend\nend\nend\n})\n_p('"
	.ascii	"/* End PBXFileReference section */')\n_p('')\nend\nfunction "
	.ascii	"xcode.PBXFrameworksBuildPhase(tr)\n_p('/* Begin PBXFramework"
	.ascii	"sBuildPhase section */')\n_p(2,'%s /* Frameworks */ = {', tr"
	.ascii	".products.children[1].fxstageid)\n_p(3,'isa = PBXFrameworksB"
	.ascii	"uildPhase;')\n_p(3,'buildActionMask = 2147483647;')\n_p(3,'f"
	.ascii	"iles = (')\ntree.traverse(tr.frameworks, {\nonleaf = functio"
	.ascii	"n(node)\n_p(4,'%s /* %s in Frameworks */,', node.buildid, no"
	.ascii	"de.name)\nend\n})\ntree.traverse(tr.projects, {\nonleaf = fu"
	.ascii	"nction(node)\n_p(4,'%s /* %s in Frameworks */,', node.buildi"
	.ascii	"d, node.name)\nend\n})\n_p(3,');')\n_p(3,'runOnlyForDeployme"
	.ascii	"ntPostprocessing = 0;')\n_p(2,'};')\n_p('/* End PBXFramework"
	.ascii	"sBuildPhase section */')\n_p('')\nend\nfunction xcode.PBXGro"
	.ascii	"up(tr)\n_p('/* Begin PBXGroup section */')\ntree.traverse(tr"
	.ascii	", {\nonnode = function(node)\nif (node.path and #node.childr"
	.ascii	"en == 0) or node.kind == \"vgroup\" then\nreturn\nend\nif no"
	.ascii	"de.parent == tr.projects then\n_p(2,'%s /* Products */ "
	.ascii	"= {', node.productgroupid)\nelse\n_p(2,'%s /* %s */ = {', no"
	.ascii	"de.id, node.name)\nend\n_p(3,'isa = PBXGroup;')\n_p(3,'child"
	.ascii	"ren = (')\nfor _, childnode in ipairs(node.children) do\n_p("
	.ascii	"4,'%s /* %s */,', childnode.id, childnode.name)\nend\n_p(3,'"
	.ascii	");')\nif node.parent == tr.projects then\n_p(3,'name = Produ"
	.ascii	"cts;')\nelse\n_p(3,'name = \"%s\";', node.name)\nif node.loc"
	.ascii	"ation then\n_p(3,'path = \"%s\";', node.location)\nelseif no"
	.ascii	"de.path and not node.isvpath then\nlocal p = node.path\nif n"
	.ascii	"ode.parent.path then\np = path.getrelative(node.parent.path,"
	.ascii	" node.path)\nend\n_p(3,'path = \"%s\";', p)\nend\nend\n_p(3,"
	.ascii	"'sourceTree = \"<group>\";')\n_p(2,'};')\nend\n}, true)\n_p("
	.ascii	"'/* End PBXGroup section */')\n_p('')\nend\nfunction xcode.P"
	.ascii	"BXNativeTarget(tr)\n_p('/* Begin PBXNativeTarget section */'"
	.ascii	")\nfor _, node in ipairs(tr.products.children) do\nlocal nam"
	.ascii	"e = tr.project.name\nlocal function hasBuildCommands(which)\n"
	.ascii	"if #tr.project[which] > 0 then\nreturn true\nend\nfor _, cfg"
	.ascii	" in ipairs(tr.configs) do\nif #cfg[which] > 0 then\nreturn t"
	.ascii	"rue\nend\nend\nend\nlocal function dobuildblock(id, label, w"
	.ascii	"hich, action)\nif hasBuildCommands(which) then\nlocal comman"
	.ascii	"dcount = 0\nfor _, cfg in ipairs(tr.configs) do\ncommandcoun"
	.ascii	"t = commandcount + #cfg[which]\nend\nif commandcount > 0 the"
	.ascii	"n\naction(id, label)\nend\nend\nend\nlocal function doscript"
	.ascii	"phases(which, action)\nlocal i = 0\nfor _, cfg in ipairs(tr."
	.ascii	"configs) do\nlocal cfgcmds = cfg[which]\nif cfgcmds ~= nil t"
	.ascii	"hen\nfor __, scripts in ipairs(cfgcmds) do\nfor ___, script "
	.ascii	"in ipairs(scripts) do\nlocal cmd = script[1]\nlocal label = "
	.ascii	"xcode.getscriptphaselabel(cmd, i, cfg)\nlocal id = xcode.uui"
	.ascii	"d(label)\naction(id, label)\ni = i + 1\nend\nend\nend\nend\n"
	.ascii	"end\nlocal function docopyresources(which, action)\nif hasBu"
	.ascii	"ildCommands(which) then\nlocal targets = tr.project[which]\n"
	.ascii	"if #targets > 0 then\nlocal i = 0\nfor _, t in ipairs(target"
	.ascii	"s) do\nfor __, tt in ipairs(t) do\nlocal label = xcode.getco"
	.ascii	"pyphaselabel('Resources', i, tt[1])\nlocal id = xcode.uuid(l"
	.ascii	"abel)\naction(id, label)\ni = i + 1\nend\nend\nend\nend\nend"
	.ascii	"\nlocal function docopyframeworks(which, action)\nif hasB"
	.ascii	"uildCommands(which) then\nlocal targets = tr.project[which]\n"
	.ascii	"if #targets > 0 then\nlocal label = \"Copy Frameworks\"\nloc"
	.ascii	"al id = xcode.uuid(label)\naction(id, label)\nend\nend\nend\n"
	.ascii	"local function _p_label(id, label)\n_p(4, '%s /* %s */,', id"
	.ascii	", label)\nend\n_p(2,'%s /* %s */ = {', node.targetid, name)\n"
	.ascii	"_p(3,'isa = PBXNativeTarget;')\n_p(3,'buildConfigurationList"
	.ascii	" = %s /* Build configuration list for PBXNativeTarget \"%s\""
	.ascii	" */;', node.cfgsection, name)\n_p(3,'buildPhases = (')\ndobu"
	.ascii	"ildblock('9607AE1010C857E500CD1376', 'Prebuild', 'prebuildco"
	.ascii	"mmands', _p_label)\n_p(4,'%s /* Resources */,', node.resstag"
	.ascii	"eid)\n_p(4,'%s /* Sources */,', node.sourcesid)\ndobuildbloc"
	.ascii	"k('9607AE3510C85E7E00CD1376', 'Prelink', 'prelinkcommands', "
	.ascii	"_p_label)\n_p(4,'%s /* Frameworks */,', node.fxstageid)\ndob"
	.ascii	"uildblock('9607AE3710C85E8F00CD1376', 'Postbuild', 'postbuil"
	.ascii	"dcommands', _p_label)\ndoscriptphases(\"xcodescriptphases\","
	.ascii	" _p_label)\ndocopyresources(\"xcodecopyresources\", _p_label"
	.ascii	")\nif tr.project.kind == \"WindowedApp\" then\ndocopyframewo"
	.ascii	"rks(\"xcodecopyframeworks\", _p_label)\nend\n_p(3,');')\n_p("
	.ascii	"3,'buildRules = (')\n_p(3,');')\n_p(3,'dependencies = (')\nf"
	.ascii	"or _, node in ipairs(tr.projects.children) do\n_p(4,'%s /* P"
	.ascii	"BXTargetDependency */,', node.targetdependid)\nend\n_p(3,');"
	.ascii	"')\n_p(3,'name = \"%s\";', name)\nlocal p\nif node.cfg.kind "
	.ascii	"== \"ConsoleApp\" then\np = \"$(HOME)/bin\"\nelseif node.cfg"
	.ascii	".kind == \"WindowedApp\" then\np = \"$(HOME)/Applications\"\n"
	.ascii	"end\nif p then\n_p(3,'productInstallPath = \"%s\";', p)\nend"
	.ascii	"\n_p(3,'productName = \"%s\";', name)\n_p(3,'productReferenc"
	.ascii	"e = %s /* %s */;', node.id, node.name)\n_p(3,'productType = "
	.ascii	"\"%s\";', xcode.getproducttype(node))\n_p(2,'};')\nend\n_p('"
	.ascii	"/* End PBXNativeTarget section */')\n_p('')\nend\nfunction x"
	.ascii	"code.PBXProject(tr, compatVersion)\n_p('/* Begin PBXProject "
	.ascii	"section */')\n_p(2,'__RootObject_ /* Project object */ = {')"
	.ascii	"\n_p(3,'isa = PBXProject;')\n_p(3,'buildConfigurationList = "
	.ascii	"1DEB928908733DD80010E9CD /* Build configuration list for PBX"
	.ascii	"Project \"%s\" */;', tr.name)\n_p(3,'compatibilityVersion = "
	.ascii	"\"Xcode %s\";', compatVersion)\n_p(3,'hasScanne"
	.ascii	"dForEncodings = 1;')\n_p(3,'mainGroup = %s /* %s */;', tr.id"
	.ascii	", tr.name)\n_p(3,'projectDirPath = \"\";')\nif #tr.projects."
	.ascii	"children > 0 then\n_p(3,'projectReferences = (')\nfor _, nod"
	.ascii	"e in ipairs(tr.projects.children) do\n_p(4,'{')\n_p(5,'Produ"
	.ascii	"ctGroup = %s /* Products */;', node.productgroupid)\n_p(5,'P"
	.ascii	"rojectRef = %s /* %s */;', node.id, path.getname(node.path))"
	.ascii	"\n_p(4,'},')\nend\n_p(3,');')\nend\n_p(3,'projectRoot = \"\""
	.ascii	";')\n_p(3,'targets = (')\nfor _, node in ipairs(tr.products."
	.ascii	"children) do\n_p(4,'%s /* %s */,', node.targetid, node.name)"
	.ascii	"\nend\n_p(3,');')\n_p(2,'};')\n_p('/* End PBXProject section"
	.ascii	" */')\n_p('')\nend\nfunction xcode.PBXReferenceProxy(tr)\nif"
	.ascii	" #tr.projects.children > 0 then\n_p('/* Begin PBXReferencePr"
	.ascii	"oxy section */')\ntree.traverse(tr.projects, {\nonleaf = fun"
	.ascii	"ction(node)\n_p(2,'%s /* %s */ = {', node.id, node.name)\n_p"
	.ascii	"(3,'isa = PBXReferenceProxy;')\n_p(3,'fileType = %s;', xcode"
	.ascii	".gettargettype(node))\n_p(3,'path = \"%s\";', node.path)\n_p"
	.ascii	"(3,'remoteRef = %s /* PBXContainerItemProxy */;', node.paren"
	.ascii	"t.productproxyid)\n_p(3,'sourceTree = BUILT_PRODUCTS_DIR;')\n"
	.ascii	"_p(2,'};')\nend\n})\n_p('/* End PBXReferenceProxy section */"
	.ascii	"')\n_p('')\nend\nend\nfunction xcode.PBXResourcesBuildPhase("
	.ascii	"tr)\n_p('/* Begin PBXResourcesBuildPhase section */')\nfor _"
	.ascii	", target in ipairs(tr.products.children) do\n_p(2,'%s /* Res"
	.ascii	"ources */ = {', target.resstageid)\n_p(3,'isa = PBXResources"
	.ascii	"BuildPhase;')\n_p(3,'buildActionMask = 2147483647;')\n_p(3,'"
	.ascii	"files = (')\ntree.traverse(tr, {\nonnode = function(node)\ni"
	.ascii	"f xcode.getbuildcategory(node) == \"Resources\" then\n_p(4,'"
	.ascii	"%s /* %s in Resources */,', node.buildid, node.name)\nend\ne"
	.ascii	"nd\n})\n_p(3,');')\n_p(3,'runOnlyForDeploymentPostprocessing"
	.ascii	" = 0;')\n_p(2,'};')\nend\n_p('/* End PBXResourcesBuildPhase "
	.ascii	"section */')\n_p('')\nend\nfunction xcode.PBXShellScriptBuil"
	.ascii	"dPhase(tr)\nlocal wrapperWritten = false\nlocal function dob"
	.ascii	"lock(id, name, commands, files)\nif commands ~= nil then\nco"
	.ascii	"mmands = table.flatten(commands)\nend\nif #commands > 0 then"
	.ascii	"\nif not wrapperWritten then\n_p('/* Begin PBXShellScriptBui"
	.ascii	"ldPhase section */')\nwrapperWritten ="
	.ascii	" true\nend\n_p(2,'%s /* %s */ = {', id, name)\n_p(3,'isa = P"
	.ascii	"BXShellScriptBuildPhase;')\n_p(3,'buildActionMask = 21474836"
	.ascii	"47;')\n_p(3,'files = (')\n_p(3,');')\n_p(3,'inputPaths = (')"
	.ascii	";\nif files ~= nil then\nfiles = table.flatten(files)\nif #f"
	.ascii	"iles > 0 then\nfor _, file in ipairs(files) do\n_p(4, '\"%s\""
	.ascii	",', file)\nend\nend\nend\n_p(3,');');\n_p(3,'name = %s;', na"
	.ascii	"me);\n_p(3,'outputPaths = (');\n_p(3,');');\n_p(3,'runOnlyFo"
	.ascii	"rDeploymentPostprocessing = 0;');\n_p(3,'shellPath = /bin/sh"
	.ascii	";');\n_p(3,'shellScript = \"%s\";', table.concat(commands, \""
	.ascii	"\\\\n\"):gsub('\"', '\\\\\"'))\n_p(2,'};')\nend\nend\nlocal "
	.ascii	"function wrapcommands(cmds, cfg)\nlocal commands = {}\nif #c"
	.ascii	"mds > 0 then\ntable.insert(commands, 'if [ \"${CONFIGURATION"
	.ascii	"}\" = \"' .. xcode.getconfigname(cfg) .. '\" ]; then')\nfor "
	.ascii	"i = 1, #cmds do\nlocal cmd = cmds[i]\ncmd = cmd:gsub('\\\\',"
	.ascii	"'\\\\\\\\')\ntable.insert(commands, cmd)\nend\ntable.insert("
	.ascii	"commands, 'fi')\nend\nreturn commands\nend\nlocal function d"
	.ascii	"obuildblock(id, name, which)\nlocal commands = {}\nfor _, cf"
	.ascii	"g in ipairs(tr.configs) do\nlocal cfgcmds = wrapcommands(cfg"
	.ascii	"[which], cfg)\nif #cfgcmds > 0 then\nfor i, cmd in ipairs(cf"
	.ascii	"gcmds) do\ntable.insert(commands, cmd)\nend\nend\nend\ndoblo"
	.ascii	"ck(id, name, commands)\nend\nlocal function doscriptphases(w"
	.ascii	"hich)\nlocal i = 0\nfor _, cfg in ipairs(tr.configs) do\nloc"
	.ascii	"al cfgcmds = cfg[which]\nif cfgcmds ~= nil then\nfor __, scr"
	.ascii	"ipts in ipairs(cfgcmds) do\nfor ___, script in ipairs(script"
	.ascii	"s) do\nlocal cmd = script[1]\nlocal files = script[2]\nlocal"
	.ascii	" label = xcode.getscriptphaselabel(cmd, i, cfg)\nlocal id = "
	.ascii	"xcode.uuid(label)\ndoblock(id, label, wrapcommands({cmd}, cf"
	.ascii	"g), files)\ni = i + 1\nend\nend\nend\nend\nend\ndobuildblock"
	.ascii	"(\"9607AE1010C857E500CD1376\", \"Prebuild\", \"prebuildcomma"
	.ascii	"nds\")\ndobuildblock(\"9607AE3510C85E7E00CD1376\", \"Prelink"
	.ascii	"\", \"prelinkcommands\")\ndobuildblock(\"9607AE3710C85E8F00C"
	.ascii	"D1376\", \"Postbuild\", \"postbuildcommands\")\ndoscriptphas"
	.ascii	"es(\"xcodescriptphases\")\nif wrapperWritten then\n_p('/* En"
	.ascii	"d PBXShellScriptBuildPhase section */')\nend\nend\nfunction "
	.ascii	"xcode.PBXSourcesBuildPhase(tr,prj)\n_p('/* Begin PBXSourcesB"
	.ascii	"uildPhase section "
	.ascii	"*/')\nfor _, target in ipairs(tr.products.children) do\n_p(2"
	.ascii	",'%s /* Sources */ = {', target.sourcesid)\n_p(3,'isa = PBXS"
	.ascii	"ourcesBuildPhase;')\n_p(3,'buildActionMask = 2147483647;')\n"
	.ascii	"_p(3,'files = (')\ntree.traverse(tr, {\nonleaf = function(no"
	.ascii	"de)\nif xcode.getbuildcategory(node) == \"Sources\" then\nif"
	.ascii	" not table.icontains(prj.excludes, node.cfg.name) then -- if"
	.ascii	" not excluded\n_p(4,'%s /* %s in Sources */,', node.buildid,"
	.ascii	" node.name)\nend\nend\nend\n})\n_p(3,');')\n_p(3,'runOnlyFor"
	.ascii	"DeploymentPostprocessing = 0;')\n_p(2,'};')\nend\n_p('/* End"
	.ascii	" PBXSourcesBuildPhase section */')\n_p('')\nend\nfunction xc"
	.ascii	"ode.PBXCopyFilesBuildPhase(tr)\nlocal wrapperWritten = false"
	.ascii	"\nlocal function doblock(id, name, folderSpec, path, files)\n"
	.ascii	"if #files > 0 then\nif not wrapperWritten then\n_p('/* Begin"
	.ascii	" PBXCopyFilesBuildPhase section */')\nwrapperWritten = true\n"
	.ascii	"end\n_p(2,'%s /* %s */ = {', id, name)\n_p(3,'isa = PBXCopyF"
	.ascii	"ilesBuildPhase;')\n_p(3,'buildActionMask = 2147483647;')\n_p"
	.ascii	"(3,'dstPath = \\\"%s\\\";', path)\n_p(3,'dstSubfolderSpec = "
	.ascii	"\\\"%s\\\";', folderSpec)\n_p(3,'files = (')\ntree.traverse("
	.ascii	"tr, {\nonleaf = function(node)\nif table.icontains(files, no"
	.ascii	"de.name) then\n_p(4,'%s /* %s in %s */,',\nxcode.uuid(node.n"
	.ascii	"ame .. 'in CopyFiles'), node.name, 'CopyFiles')\nend\nend\n}"
	.ascii	")\n_p(3,');')\n_p(3,'runOnlyForDeploymentPostprocessing = 0;"
	.ascii	"');\n_p(2,'};')\nend\nend\nlocal function docopyresources(wh"
	.ascii	"ich)\nlocal targets = tr.project[which]\nif #targets > 0 the"
	.ascii	"n\nlocal i = 0\nfor _, t in ipairs(targets) do\nfor __, tt i"
	.ascii	"n ipairs(t) do\nlocal label = xcode.getcopyphaselabel('Resou"
	.ascii	"rces', i, tt[1])\nlocal id = xcode.uuid(label)\nlocal files "
	.ascii	"= table.translate(table.flatten(tt[2]), path.getname)\ndoblo"
	.ascii	"ck(id, label, 7, tt[1], files)\ni = i + 1\nend\nend\nend\nen"
	.ascii	"d\nlocal function docopyframeworks(which)\nlocal targets = t"
	.ascii	"r.project[which]\nif #targets > 0 then\nlocal label = \"Copy"
	.ascii	" Frameworks\"\nlocal id = xcode.uuid(label)\nlocal files = t"
	.ascii	"able.translate(table.flatten(targets), path.getname)\ndobloc"
	.ascii	"k(id, label, 10, \"\", files)\nend\nend\ndocopyresources(\"x"
	.ascii	"codecopyresources\")\nif tr.project.kind == \"Win"
	.ascii	"dowedApp\" then\ndocopyframeworks(\"xcodecopyframeworks\")\n"
	.ascii	"end\nif wrapperWritten then\n_p('/* End PBXCopyFilesBuildPha"
	.ascii	"se section */')\nend\nend\nfunction xcode.PBXVariantGroup(tr"
	.ascii	")\n_p('/* Begin PBXVariantGroup section */')\ntree.traverse("
	.ascii	"tr, {\nonbranch = function(node)\nif node.kind == \"vgroup\""
	.ascii	" then\n_p(2,'%s /* %s */ = {', node.id, node.name)\n_p(3,'is"
	.ascii	"a = PBXVariantGroup;')\n_p(3,'children = (')\nfor _, lang in"
	.ascii	" ipairs(node.children) do\n_p(4,'%s /* %s */,', lang.id, lan"
	.ascii	"g.name)\nend\n_p(3,');')\n_p(3,'name = %s;', node.name)\n_p("
	.ascii	"3,'sourceTree = \"<group>\";')\n_p(2,'};')\nend\nend\n})\n_p"
	.ascii	"('/* End PBXVariantGroup section */')\n_p('')\nend\nfunction"
	.ascii	" xcode.PBXTargetDependency(tr)\nif #tr.projects.children > 0"
	.ascii	" then\n_p('/* Begin PBXTargetDependency section */')\ntree.t"
	.ascii	"raverse(tr.projects, {\nonleaf = function(node)\n_p(2,'%s /*"
	.ascii	" PBXTargetDependency */ = {', node.parent.targetdependid)\n_"
	.ascii	"p(3,'isa = PBXTargetDependency;')\n_p(3,'name = \"%s\";', no"
	.ascii	"de.name)\n_p(3,'targetProxy = %s /* PBXContainerItemProxy */"
	.ascii	";', node.parent.targetproxyid)\n_p(2,'};')\nend\n})\n_p('/* "
	.ascii	"End PBXTargetDependency section */')\n_p('')\nend\nend\nfunc"
	.ascii	"tion xcode.cfg_excluded_files(prj, cfg)\nlocal excluded = {}"
	.ascii	"\nlocal function exclude_pattern(file)\nif path.isabsolute(f"
	.ascii	"ile) then\nreturn file\nend\nlocal start, term = file:findla"
	.ascii	"st(\"/%.%./\")\nif term then\nreturn path.join(\"*\", file:s"
	.ascii	"ub(term + 1))\nend\nstart, term = file:find(\"%.%./\")\nif s"
	.ascii	"tart == 1 then\nreturn path.join(\"*\", file:sub(term + 1))\n"
	.ascii	"end\nreturn path.join(\"*\", file)\nend\nlocal function add_"
	.ascii	"file(file)\nlocal name = exclude_pattern(file)\nif not table"
	.ascii	".icontains(excluded, name) then\ntable.insert(excluded, name"
	.ascii	")\nend\nend\nlocal function verify_file(file)\nlocal name = "
	.ascii	"exclude_pattern(file)\nif table.icontains(excluded, name) th"
	.ascii	"en\nerror(\"'\" .. file .. \"' would be excluded by the rule"
	.ascii	" to exclude '\" .. name .. \"'\")\nend\nend\nfor _, file in "
	.ascii	"ipairs(cfg.excludes) do\nadd_file(file)\nend\nfor _, file in"
	.ascii	" ipairs(prj.allfiles) do\nif not table.icontains(prj.exclude"
	.ascii	"s, file) and not table.icontains(cfg.excludes, file) then\ni"
	.ascii	"f"
	.ascii	" not table.icontains(cfg.files, file) then\nadd_file(file)\n"
	.ascii	"else\nverify_file(file)\nend\nend\nend\ntable.sort(excluded)"
	.ascii	"\nreturn excluded\nend\nfunction xcode.XCBuildConfiguration_"
	.ascii	"Impl(tr, id, opts, cfg)\nlocal cfgname = xcode.getconfigname"
	.ascii	"(cfg)\n_p(2,'%s /* %s */ = {', id, cfgname)\n_p(3,'isa = XCB"
	.ascii	"uildConfiguration;')\n_p(3,'buildSettings = {')\nfor k, v in"
	.ascii	" table.sortedpairs(opts) do\nif type(v) == \"table\" then\ni"
	.ascii	"f #v > 0 then\n_p(4,'%s = (', k)\nfor i, v2 in ipairs(v) do\n"
	.ascii	"_p(5,'%s,', xcode.quotestr(tostring(v2)))\nend\n_p(4,');')\n"
	.ascii	"end\nelse\n_p(4,'%s = %s;', k, xcode.quotestr(tostring(v)))\n"
	.ascii	"end\nend\n_p(3,'};')\n_p(3,'name = %s;', xcode.quotestr(cfgn"
	.ascii	"ame))\n_p(2,'};')\nend\nlocal function add_options(options, "
	.ascii	"extras)\nfor _, tbl in ipairs(extras) do\nfor tkey, tval in "
	.ascii	"pairs(tbl) do\noptions[tkey] = tval\nend\nend\nend\nlocal fu"
	.ascii	"nction add_wholearchive_links(opts, cfg)\nif #cfg.wholearchi"
	.ascii	"ve > 0 then\nlocal linkopts = {}\nfor _, depcfg in ipairs(pr"
	.ascii	"emake.getlinks(cfg, \"siblings\", \"object\")) do\nif table."
	.ascii	"icontains(cfg.wholearchive, depcfg.project.name) then\nlocal"
	.ascii	" linkpath = path.rebase(depcfg.linktarget.fullpath, depcfg.l"
	.ascii	"ocation, cfg.location)\ntable.insert(linkopts, \"-force_load"
	.ascii	"\")\ntable.insert(linkopts, linkpath)\nend\nend\nif opts.OTH"
	.ascii	"ER_LDFLAGS then\nlinkopts = table.join(linkopts, opts.OTHER_"
	.ascii	"LDFLAGS)\nend\nopts.OTHER_LDFLAGS = linkopts\nend\nend\nfunc"
	.ascii	"tion xcode.XCBuildConfiguration(tr, prj, opts)\n_p('/* Begin"
	.ascii	" XCBuildConfiguration section */')\nfor _, target in ipairs("
	.ascii	"tr.products.children) do\nfor _, cfg in ipairs(tr.configs) d"
	.ascii	"o\nlocal values = opts.ontarget(tr, target, cfg)\nadd_option"
	.ascii	"s(values, cfg.xcodetargetopts)\nxcode.XCBuildConfiguration_I"
	.ascii	"mpl(tr, cfg.xcode.targetid, values, cfg)\nend\nend\nfor _, c"
	.ascii	"fg in ipairs(tr.configs) do\nlocal values = opts.onproject(t"
	.ascii	"r, prj, cfg)\nadd_options(values, cfg.xcodeprojectopts)\nadd"
	.ascii	"_wholearchive_links(values, cfg)\nxcode.XCBuildConfiguration"
	.ascii	"_Impl(tr, cfg.xcode.projectid, values, cfg)\nend\n_p('/* End"
	.ascii	" XCBuildConfiguration section */')\n_p('')\nend\nfunction xc"
	.ascii	"ode.XCBuildConfigurationList(tr)\nlocal "
	.ascii	"sln = tr.project.solution\n_p('/* Begin XCConfigurationList "
	.ascii	"section */')\nfor _, target in ipairs(tr.products.children) "
	.ascii	"do\n_p(2,'%s /* Build configuration list for PBXNativeTarget"
	.ascii	" \"%s\" */ = {', target.cfgsection, target.name)\n_p(3,'isa "
	.ascii	"= XCConfigurationList;')\n_p(3,'buildConfigurations = (')\nf"
	.ascii	"or _, cfg in ipairs(tr.configs) do\n_p(4,'%s /* %s */,', cfg"
	.ascii	".xcode.targetid, xcode.getconfigname(cfg))\nend\n_p(3,');')\n"
	.ascii	"_p(3,'defaultConfigurationIsVisible = 0;')\n_p(3,'defaultCon"
	.ascii	"figurationName = \"%s\";', xcode.getconfigname(tr.configs[1]"
	.ascii	"))\n_p(2,'};')\nend\n_p(2,'1DEB928908733DD80010E9CD /* Build"
	.ascii	" configuration list for PBXProject \"%s\" */ = {', tr.name)\n"
	.ascii	"_p(3,'isa = XCConfigurationList;')\n_p(3,'buildConfiguration"
	.ascii	"s = (')\nfor _, cfg in ipairs(tr.configs) do\n_p(4,'%s /* %s"
	.ascii	" */,', cfg.xcode.projectid, xcode.getconfigname(cfg))\nend\n"
	.ascii	"_p(3,');')\n_p(3,'defaultConfigurationIsVisibl"
	.string	"e = 0;')\n_p(3,'defaultConfigurationName = \"%s\";', xcode.getconfigname(tr.configs[1]))\n_p(2,'};')\n_p('/* End XCConfigurationList section */')\n_p('')\nend\nfunction xcode.Footer()\n_p(1,'};')\n_p('\\trootObject = __RootObject_ /* Project object */;')\n_p('}')\nend\n"
	.align 8
.LC51:
	.ascii	"local xcode = premake.xcode\nlocal tree = premake.tree\nfunc"
	.ascii	"tion xcode.buildprjtree(prj)\nlocal tr = premake.project.bui"
	.ascii	"ldsourcetree(prj, true)\ntr.configs = {}\nfor _, cfgname in "
	.ascii	"ipairs(prj.solution.configurations) do\nfor _, platform in i"
	.ascii	"pairs(prj.solution.xcode.platforms) do\nlocal cfg = premake."
	.ascii	"getconfig(prj, cfgname, platform)\ncfg.xcode = {}\ncfg.xcode"
	.ascii	".targetid = xcode.newid(prj.xcode.projectnode, \"tgt:\"..pla"
	.ascii	"tform..cfgname)\ncfg.xcode.projectid = xcode.newid(tr, \"prj"
	.ascii	":\"..platform..cfgname)\ntable.insert(tr.configs, cfg)\nend\n"
	.ascii	"end\ntree.traverse(tr, {\nonbranch = function(node)\nif path"
	.ascii	".getextension(node.name) == \".lproj\" then\nlocal lang = pa"
	.ascii	"th.getbasename(node.name)  -- \"English\", \"French\", etc.\n"
	.ascii	"for _, filenode in ipairs(node.children) do\nlocal grpnode ="
	.ascii	" node.parent.children[filenode.name]\nif not grpnode then\ng"
	.ascii	"rpnode = tree.insert(node.parent, tree.new(filenode.name))\n"
	.ascii	"grpnode.kind = \"vgroup\"\nend\nfilenode.name = path.getbase"
	.ascii	"name(lang)\ntree.insert(grpnode, filenode)\nend\ntree.remove"
	.ascii	"(node)\nend\nend\n})\ntree.traverse(tr, {\nonbranch = functi"
	.ascii	"on(node)\nif path.getextension(node.name) == \".xcassets\" t"
	.ascii	"hen\nnode.children = {}\nend\nend\n})\ntr.frameworks = tree."
	.ascii	"new(\"Frameworks\")\nfor cfg in premake.eachconfig(prj) do\n"
	.ascii	"for _, link in ipairs(premake.getlinks(cfg, \"system\", \"fu"
	.ascii	"llpath\")) do\nlocal name = path.getname(link)\nif xcode.isf"
	.ascii	"ramework(name) and not tr.frameworks.children[name] then\nno"
	.ascii	"de = tree.insert(tr.frameworks, tree.new(name))\nnode.path ="
	.ascii	" link\nend\nend\nend\nif #tr.frameworks.children > 0 then\nt"
	.ascii	"ree.insert(tr, tr.frameworks)\nend\ntr.products = tree.inser"
	.ascii	"t(tr, tree.new(\"Products\"))\ntr.projects = tree.new(\"Proj"
	.ascii	"ects\")\nfor _, dep in ipairs(premake.getdependencies(prj, \""
	.ascii	"sibling\", \"object\")) do\nlocal xcpath = xcode.getxcodepro"
	.ascii	"jname(dep)\nlocal xcnode = tree.insert(tr.projects, tree.new"
	.ascii	"(path.getname(xcpath)))\nxcnode.path = xcpath\nxcnode.projec"
	.ascii	"t = dep\nxcnode.productgroupid = xcode.newid(xcnode, \"prodg"
	.ascii	"rp\")\nxcnode.productproxyid = xcode.newid(xcnode, \"prodpro"
	.ascii	"x\")\nxcnode.targetproxyid  = xcode.newid(xcnode,"
	.ascii	" \"targprox\")\nxcnode.targetdependid = xcode.newid(xcnode, "
	.ascii	"\"targdep\")\nlocal cfg = premake.getconfig(dep, prj.configu"
	.ascii	"rations[1])\nnode = tree.insert(xcnode, tree.new(cfg.linktar"
	.ascii	"get.name))\nnode.path = cfg.linktarget.fullpath\nnode.cfg = "
	.ascii	"cfg\nend\nif #tr.projects.children > 0 then\ntree.insert(tr,"
	.ascii	" tr.projects)\nend\ntree.traverse(tr, {\nonbranchexit = func"
	.ascii	"tion(node)\nfor _, child in ipairs(node.children) do\nif (ch"
	.ascii	"ild.location) then\nif (node.location) then\nwhile (not stri"
	.ascii	"ng.startswith(child.location, node.location)) do\nnode.locat"
	.ascii	"ion = path.getdirectory(node.location)\nend\nelse\nnode.loca"
	.ascii	"tion = path.getdirectory(child.location)\nend\nend\nend\nend"
	.ascii	",\nonleaf = function(node)\nif (node.cfg) then\nnode.locatio"
	.ascii	"n = node.cfg.name\nend\nend\n}, true)\ntree.traverse(tr, {\n"
	.ascii	"onbranchexit = function(node, depth)\nif (node.location and "
	.ascii	"node.parent and node.parent.location) then\nnode.location = "
	.ascii	"path.getrelative(node.parent.location, node.location)\nend\n"
	.ascii	"end,\nonleaf = function(node, depth)\nif (node.location and "
	.ascii	"node.parent and node.parent.location) then\nnode.location = "
	.ascii	"path.getrelative(node.parent.location, node.location)\nend\n"
	.ascii	"end\n}, true)\ntree.traverse(tr, {\nonnode = function(node)\n"
	.ascii	"node.id = xcode.newid(node)\nif xcode.getbuildcategory(node)"
	.ascii	" then\nnode.buildid = xcode.newid(node, \"build\")\nend\nif "
	.ascii	"string.endswith(node.name, \"Info.plist\") then\ntr.infoplis"
	.ascii	"t = node\nend\nif string.endswith(node.name, \".entitlements"
	.ascii	"\") then\ntr.entitlements = node\nend\nend\n}, true)\nnode ="
	.ascii	" tree.insert(tr.products, prj.xcode.project"
	.string	"node)\nnode.kind = \"product\"\nnode.path = node.cfg.buildtarget.fullpath\nnode.cfgsection = xcode.newid(node, \"cfg\")\nnode.resstageid = xcode.newid(node, \"rez\")\nnode.sourcesid  = xcode.newid(node, \"src\")\nnode.fxstageid  = xcode.newid(node, \"fxs\")\nreturn tr\nend\n"
	.align 8
.LC52:
	.ascii	"local premake = premake\nlocal xcode   = premake.xcode\nloca"
	.ascii	"l function buildableref(indent, prj, cfg)\ncfg = cfg or prem"
	.ascii	"ake.eachconfig(prj)()\n_p(indent + 0, '<BuildableReference')"
	.ascii	"\n_p(indent + 1, 'BuildableIdentifier = \"primary\"')\n_p(in"
	.ascii	"dent + 1, 'BlueprintIdentifier = \"%s\"', prj.xcode.projectn"
	.ascii	"ode.targetid)\n_p(indent + 1, 'BuildableName = \"%s\"', cfg."
	.ascii	"buildtarget.name)\n_p(indent + 1, 'BlueprintName = \"%s\"', "
	.ascii	"prj.name)\n_p(indent + 1, 'ReferencedContainer = \"container"
	.ascii	":%s.xcodeproj\">', prj.name)\n_p(indent + 0, '</BuildableRef"
	.ascii	"erence>')\nend\nlocal function cmdlineargs(indent, cfg)\nif "
	.ascii	"#cfg.debugargs > 0 then\n_p(indent, '<CommandLineArguments>'"
	.ascii	")\nfor _, arg in ipairs(cfg.debugargs) do\n_p(indent + 1, '<"
	.ascii	"CommandLineArgument')\n_p(indent + 2, 'argument = \"%s\"', a"
	.ascii	"rg)\n_p(indent + 2, 'isEnabled = \"YES\">')\n_p(indent + 1, "
	.ascii	"'</CommandLineArgument>')\nend\n_p(indent, '</CommandLineArg"
	.ascii	"uments>')\nend\nend\nlocal function envvars(indent, cfg)\nif"
	.ascii	" #cfg.debugenvs > 0 then\n_p(indent, '<EnvironmentVariables>"
	.ascii	"')\nfor _, arg in ipairs(cfg.debugenvs) do\nlocal eq = arg:f"
	.ascii	"ind(\"=\")\nlocal k = arg:sub(1, eq)\nlocal v = arg:sub(eq +"
	.ascii	" 1)\n_p(indent + 1, '<EnvironmentVariable')\n_p(indent + 2, "
	.ascii	"'key = \"%s\"', arg:sub(1, eq))\n_p(indent + 2, 'value = \"%"
	.ascii	"s\"', arg:sub(eq))\n_p(indent + 2, 'isEnabled = \"YES\">')\n"
	.ascii	"_p(indent + 1, '</EnvironmentVariable>')\nend\n_p(indent, '<"
	.ascii	"/EnvironmentVariables>')\nend\nend\nlocal function workingdi"
	.ascii	"r(dir)\nif not path.isabsolute(dir) then\ndir = \"$PROJECT_D"
	.ascii	"IR/\" .. dir\nend\nreturn dir\nend\nlocal function bestconfi"
	.ascii	"g(prj, fordebug)\nlocal bestcfg = nil\nlocal bestscore = -1\n"
	.ascii	"for cfg in premake.eachconfig(prj) do\nlocal score = 0\nif c"
	.ascii	"fg.platform == \"Native\" then\nscore = score + 10\nend\nif "
	.ascii	"fordebug and cfg.name == \"Debug\" then\nscore = score + 1\n"
	.ascii	"end\nif not fordebug and cfg.name == \"Release\" then\nscore"
	.ascii	" = score + 1\nend\nif score > bestscore then\nbestcfg = cfg\n"
	.ascii	"bestscore = score\nend\nend\nreturn bestcfg\nend\nfunction x"
	.ascii	"code.scheme(tobuild, primary, schemecfg)\n_p('<?xml version="
	.ascii	"\"1.0\" encoding=\"UTF-8\"?>')\n_p('<Scheme')\n_p(1, 'LastUp"
	.ascii	"gr"
	.ascii	"adeVersion = \"0940\"')\n_p(1, 'version = \"1.3\">')\n_p(1, "
	.ascii	"'<BuildAction')\n_p(2, 'parallelizeBuildables = \"YES\"')\n_"
	.ascii	"p(2, 'buildImplicitDependencies = \"YES\">')\n_p(2, '<BuildA"
	.ascii	"ctionEntries>')\nfor _, prj in ipairs(tobuild) do\n_p(3, '<B"
	.ascii	"uildActionEntry')\n_p(4, 'buildForTesting = \"YES\"')\n_p(4,"
	.ascii	" 'buildForRunning = \"YES\"')\n_p(4, 'buildForProfiling = \""
	.ascii	"YES\"')\n_p(4, 'buildForArchiving = \"YES\"')\n_p(4, 'buildF"
	.ascii	"orAnalyzing = \"YES\">')\nbuildableref(4, prj)\n_p(3, '</Bui"
	.ascii	"ldActionEntry>')\nend\nlocal debugcfg    = schemecfg or best"
	.ascii	"config(primary, true)\nlocal releasecfg  = schemecfg or best"
	.ascii	"config(primary, false)\nlocal debugname   = xcode.getconfign"
	.ascii	"ame(debugcfg)\nlocal releasename = xcode.getconfigname(relea"
	.ascii	"secfg)\n_p(2, '</BuildActionEntries>')\n_p(1, '</BuildAction"
	.ascii	">')\n_p(1, '<TestAction')\n_p(2, 'buildConfiguration = \"%s\""
	.ascii	"', debugname)\n_p(2, 'selectedDebuggerIdentifier = \"Xcode.D"
	.ascii	"ebuggerFoundation.Debugger.LLDB\"')\n_p(2, 'selectedLauncher"
	.ascii	"Identifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"')\n_"
	.ascii	"p(2, 'shouldUseLaunchSchemeArgsEnv = \"YES\">')\n_p(2, '<Tes"
	.ascii	"tables>')\n_p(2, '</Testables>')\n_p(2, '<MacroExpansion>')\n"
	.ascii	"buildableref(3, primary, debugcfg)\n_p(2, '</MacroExpansion>"
	.ascii	"')\n_p(2, '<AdditionalOptions>')\n_p(2, '</AdditionalOptions"
	.ascii	">')\n_p(1, '</TestAction>')\n_p(1, '<LaunchAction')\n_p(2, '"
	.ascii	"buildConfiguration = \"%s\"', debugname)\n_p(2, 'selectedDeb"
	.ascii	"uggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\""
	.ascii	"')\n_p(2, 'selectedLauncherIdentifier = \"Xcode.DebuggerFoun"
	.ascii	"dation.Launcher.LLDB\"')\n_p(2, 'launchStyle = \"0\"')\nif d"
	.ascii	"ebugcfg.debugdir then\n_p(2, 'useCustomWorkingDirectory = \""
	.ascii	"YES\"')\n_p(2, 'customWorkingDirectory = \"%s\"', workingdir"
	.ascii	"(debugcfg.debugdir))\nelse\n_p(2, 'useCustomWorkingDirectory"
	.ascii	" = \"NO\"')\nend\n_p(2, 'ignoresPersistentStateOnLaunch = \""
	.ascii	"NO\"')\n_p(2, 'debugDocumentVersioning = \"YES\"')\n_p(2, 'd"
	.ascii	"ebugServiceExtension = \"internal\"')\n_p(2, 'allowLocationS"
	.ascii	"imulation = \"YES\">')\nif debugcfg.debugcmd then\n_p(2, '<P"
	.ascii	"athRunnable')\n_p(3, 'runnableDebuggingMode = \"0\"')\n_p(3,"
	.ascii	" 'FilePath = \"%s\">', debugcfg.debugcmd)\n_p(2, '</PathRunn"
	.ascii	"able"
	.ascii	">')\nelse\n_p(2, '<BuildableProductRunnable')\n_p(3, 'runnab"
	.ascii	"leDebuggingMode = \"0\">')\nbuildableref(3, primary, debugcf"
	.ascii	"g)\n_p(2, '</BuildableProductRunnable>')\nend\ncmdlineargs(2"
	.ascii	", debugcfg)\nenvvars(2, debugcfg)\n_p(2, '<AdditionalOptions"
	.ascii	">')\n_p(2, '</AdditionalOptions>')\n_p(1, '</LaunchAction>')"
	.ascii	"\n_p(1, '<ProfileAction')\n_p(2, 'buildConfiguration = \"%s\""
	.ascii	"', releasename)\n_p(2, 'shouldUseLaunchSchemeArgsEnv = \"YES"
	.ascii	"\"')\n_p(2, 'savedToolIdentifier = \"\"')\nif releasecfg.deb"
	.ascii	"ugdir then\n_p(2, 'useCustomWorkingDirectory = \"YES\"')\n_p"
	.ascii	"(2, 'customWorkingDirectory = \"%s\"', workingdir(releasecfg"
	.ascii	".debugdir))\nelse\n_p(2, 'useCustomWorkingDirectory = \"NO\""
	.ascii	"')\nend\n_p(2, 'debugDocumentVersioning = \"YES\">')\n_p(2, "
	.ascii	"'<BuildableProductRunnable')\n_p(3, 'runnableDebuggingMode ="
	.ascii	" \"0\">')\nbuildableref(3, primary, releasecfg)\n_p(2, '</Bu"
	.ascii	"ildableProductRunnable>')\ncmdlineargs(2, releasecfg)\nenvva"
	.ascii	"rs(2, releasecfg)\n_p(1, '</ProfileAction>')\n_p(1, '<Analyz"
	.ascii	"eAction')\n_p(2, 'buildConfiguration = \"%s\">', debugname)\n"
	.ascii	"_p(1, '</AnalyzeAction>')\n_p(1, '<ArchiveAction')\n_p(2, 'b"
	.ascii	"uildConfiguration = \"%s\"', releasename)\n_p(2, 'revealArch"
	.ascii	"iveInOrganizer = \"YES\">')\n_p(1, '</ArchiveAction>')\n_p('"
	.ascii	"</Scheme>')\nend\nfunction xcode.generate_schemes(prj, base_"
	.ascii	"path)\nif (prj.kind == \"ConsoleApp\" or prj.kind == \"Windo"
	.ascii	"wedApp\") or (prj.options and prj.options.XcodeLibraryScheme"
	.ascii	"s) then\nif prj.options and prj.options.XcodeSchemeNoConfigs"
	.ascii	" then\npremake.generate(prj, path.join(b"
	.string	"ase_path, \"%%.xcscheme\"),\nfunction(prj) xcode.scheme({prj}, prj) end)\nelse\nfor cfg in premake.eachconfig(prj) do\npremake.generate(prj, path.join(base_path, \"%% \" .. cfg.name .. \".xcscheme\"),\nfunction(prj) xcode.scheme({prj}, prj, cfg) end)\nend\nend\nend\nend\n"
	.align 8
.LC53:
	.ascii	"local premake = premake\nlocal xcode = premake.xcode\nxcode."
	.ascii	"allscheme = false\nfunction xcode.workspace_head()\n_p('<?xm"
	.ascii	"l version=\"1.0\" encoding=\"UTF-8\"?>')\n_p('<Workspace')\n"
	.ascii	"_p(1,'version = \"1.0\">')\nend\nfunction xcode.workspace_ta"
	.ascii	"il()\n_p('</Workspace>')\nend\nfunction xcode.workspace_file"
	.ascii	"_ref(prj, indent)\nlocal projpath = path.getrelative(prj.sol"
	.ascii	"ution.location, prj.location)\nif projpath == '.' then projp"
	.ascii	"ath = ''\nelse projpath = projpath ..'/'\nend\n_p(indent, '<"
	.ascii	"FileRef')\n_p(indent + 1, 'location = \"group:%s\">', projpa"
	.ascii	"th .. prj.name .. '.xcodeproj')\n_p(indent, '</FileRef>')\ne"
	.ascii	"nd\nfunction xcode.workspace_group(grp, indent)\n_p(indent, "
	.ascii	"'<Group')\n_p(indent + 1, 'location = \"container:\"')\n_p(i"
	.ascii	"ndent + 1, 'name = \"%s\">', grp.name)\nlocal function compa"
	.ascii	"renames(a, b)\nreturn a.name < b.name\nend\nlocal groups = t"
	.ascii	"able.join(grp.groups)\nlocal projects = table.join(grp.proje"
	.ascii	"cts)\ntable.sort(groups, comparenames)\ntable.sort(projects,"
	.ascii	" comparenames)\nfor _, child in ipairs(groups) do\nxcode.wor"
	.ascii	"kspace_group(child, indent + 1)\nend\nfor _, prj in ipairs(p"
	.ascii	"rojects) do\nxcode.workspace_file_ref(prj, indent + 1)\nend\n"
	.ascii	"_p(indent, '</Group>')\nend\nfunction xcode.workspace_genera"
	.ascii	"te(sln)\nxcode.preparesolution(sln)\nxcode.workspace_head()\n"
	.ascii	"xcode.reorderProjects(sln)\nfor grp in premake.solution.each"
	.ascii	"group(sln) do\nif grp.parent == nil then\nxcode.workspace_gr"
	.ascii	"oup(grp, 1)\nend\nend\nfor prj in premake.solution.eachproje"
	.ascii	"ct(sln) do\nif prj.group == nil then\nxcode.workspace_file_r"
	.ascii	"ef(prj, 1)\nend\nend\nxcode.workspace_tail()\nend\nfunction "
	.ascii	"xcode.workspace_scheme(sln)\nif not xcode.allscheme then\nre"
	.ascii	"turn false\nend\nlocal projects = {}\nlocal primary = nil\nf"
	.ascii	"or prj in premake.solution.eachproject(sln) do\nif not prima"
	.ascii	"ry or (sln.startproject == prj.name) then\nprimary = prj\nen"
	.ascii	"d\ntable.insert(projects, prj)\nend\nxcode.scheme(projects, "
	.ascii	"primary)\nend\nfunction xcode.workspace_settings(sln)\n_p('<"
	.ascii	"?xml version=\"1.0\" encoding=\"UTF-8\"?>')\n_p('<!DOCTYPE p"
	.ascii	"list PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.app"
	.ascii	"le.com/DTDs/PropertyList-1.0.dtd\">')\n_p('<plist "
	.ascii	"version=\"1.0\">')\n_p('<dict>')\n_p(1, '<key>IDEWorkspaceSh"
	.ascii	"aredSettings_AutocreateContextsIfNeeded</key>')\n_p(1, '<fal"
	.ascii	"se/>')\n_p('</dict>')\n_p('</plist>')\nend\nfunction xcode.r"
	.ascii	"eorderProjects(sln)\nif sln.startproject then\nfor i, prj in"
	.ascii	" ipairs(sln.projects) do\nif sln.startproject == prj.name th"
	.ascii	"en\nlocal cur = prj.group\nwhile "
	.string	"cur ~= nil do\nfor j, group in ipairs(sln.groups) do\nif group == cur then\ntable.remove(sln.groups, j)\nbreak\nend\nend\ntable.insert(sln.groups, 1, cur)\ncur = cur.parent\nend\ntable.remove(sln.projects, i)\ntable.insert(sln.projects, 1, prj)\nbreak\nend\nend\nend\nend\n"
	.align 8
.LC54:
	.ascii	"local premake = premake\npremake.xcode8 = { }\nlocal xcode  "
	.ascii	"= premake.xcode\nlocal xcode8 = premake.xcode8\nfunction xco"
	.ascii	"de8.XCBuildConfiguration_Target(tr, target, cfg)\nlocal cfgn"
	.ascii	"ame = xcode.getconfigname(cfg)\nlocal installpaths = {\nCons"
	.ascii	"oleApp = \"/usr/local/bin\",\nWindowedApp = \"$(HOME)/Applic"
	.ascii	"ations\",\nSharedLib = \"/usr/local/lib\",\nStaticLib = \"/u"
	.ascii	"sr/local/lib\",\nBundle    = \"$(LOCAL_LIBRARY_DIR)/Bundles\""
	.ascii	",\n}\nlocal options = {\nALWAYS_SEARCH_USER_PATHS = \"NO\",\n"
	.ascii	"GCC_DYNAMIC_NO_PIC = \"NO\",\nGCC_MODEL_TUNING = \"G5\",\nIN"
	.ascii	"STALL_PATH = installpaths[cfg.kind],\nPRODUCT_NAME = cfg.bui"
	.ascii	"ldtarget.basename,\n}\nif not cfg.flags.Symbols then\noption"
	.ascii	"s.DEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\"\nend\nif cf"
	.ascii	"g.kind ~= \"StaticLib\" and cfg.buildtarget.prefix ~= \"\" t"
	.ascii	"hen\noptions.EXECUTABLE_PREFIX = cfg.buildtarget.prefix\nend"
	.ascii	"\nif cfg.targetextension then\nlocal ext = cfg.targetextensi"
	.ascii	"on\noptions.EXECUTABLE_EXTENSION = iif(ext:startswith(\".\")"
	.ascii	", ext:sub(2), ext)\nend\nif cfg.flags.ObjcARC then\noptions."
	.ascii	"CLANG_ENABLE_OBJC_ARC = \"YES\"\nend\nlocal outdir = path.ge"
	.ascii	"tdirectory(cfg.buildtarget.bundlepath)\nif outdir ~= \".\" t"
	.ascii	"hen\noptions.CONFIGURATION_BUILD_DIR = outdir\nend\nif tr.in"
	.ascii	"foplist then\noptions.INFOPLIST_FILE = tr.infoplist.cfg.name"
	.ascii	"\nend\nlocal infoplist_file = nil\nfor _, v in ipairs(cfg.fi"
	.ascii	"les) do\nif (string.find (string.lower (v), 'info.plist') ~="
	.ascii	" nil) then\ninfoplist_file = string.format('$(SRCROOT)/%s', "
	.ascii	"v)\nend\nend\nif infoplist_file ~= nil then\noptions.INFOPLI"
	.ascii	"ST_FILE = infoplist_file\nend\nlocal action = premake.action"
	.ascii	".current()\nlocal get_opt = function(opt, def)\nreturn (opt "
	.ascii	"and #opt > 0) and opt or def\nend\nlocal iosversion = get_op"
	.ascii	"t(cfg.iostargetplatformversion, action.xcode.iOSTargetPlatfo"
	.ascii	"rmVersion)\nlocal macosversion = get_opt(cfg.macostargetplat"
	.ascii	"formversion, action.xcode.macOSTargetPlatformVersion)\nlocal"
	.ascii	" tvosversion = get_opt(cfg.tvostargetplatformversion, action"
	.ascii	".xcode.tvOSTargetPlatformVersion)\nif iosversion then\noptio"
	.ascii	"ns.IPHONEOS_DEPLOYMENT_TARGET = iosversion\nelseif macosvers"
	.ascii	"ion then\noptions.MACOSX_DEPLOYMENT_TARGET = "
	.ascii	"macosversion\nelseif tvosversion then\noptions.TVOS_DEPLOYME"
	.ascii	"NT_TARGET = tvosversion\nend\nif cfg.kind == \"Bundle\" and "
	.ascii	"not cfg.options.SkipBundling then\noptions.PRODUCT_BUNDLE_ID"
	.ascii	"ENTIFIER = \"genie.\" .. cfg.buildtarget.basename:gsub(\"%s+"
	.ascii	"\", \".\") --replace spaces with .\nlocal ext = cfg.targetex"
	.ascii	"tension\nif ext then\noptions.WRAPPER_EXTENSION = iif(ext:st"
	.ascii	"artswith(\".\"), ext:sub(2), ext)\nelse\noptions.WRAPPER_EXT"
	.ascii	"ENSION = \"bundle\"\nend\nend\nreturn options\nend\nfunction"
	.ascii	" xcode8.XCBuildConfiguration_Project(tr, prj, cfg)\nlocal cf"
	.ascii	"gname = xcode.getconfigname(cfg)\nlocal archs = {\nNative   "
	.ascii	"   = nil,\nx32         = \"i386\",\nx64         = \"x86_64\""
	.ascii	",\nUniversal32 = \"$(ARCHS_STANDARD_32_BIT)\",\nUniversal64 "
	.ascii	"= \"$(ARCHS_STANDARD_64_BIT)\",\nUniversal   = \"$(ARCHS_STA"
	.ascii	"NDARD_32_64_BIT)\",\n}\nlocal checks = {\n[\"-ffast-math\"] "
	.ascii	"         = cfg.flags.FloatFast,\n[\"-ffloat-store\"]        "
	.ascii	"= cfg.flags.FloatStrict,\n[\"-fomit-frame-pointer\"] = cfg.f"
	.ascii	"lags.NoFramePointer,\n}\nlocal cflags = { }\nfor flag, check"
	.ascii	" in pairs(checks) do\nif check then\ntable.insert(cflags, fl"
	.ascii	"ag)\nend\nend\nlocal ldflags = { }\nfor _, lib in ipairs(pre"
	.ascii	"make.getlinks(cfg, \"system\")) do\nif not xcode.isframework"
	.ascii	"(lib) then\ntable.insert(ldflags, \"-l\" .. lib)\nend\nend\n"
	.ascii	"local options = {\nARCHS                              = arch"
	.ascii	"s[cfg.platform],\nCLANG_WARN__DUPLICATE_METHOD_MATCH = \"YES"
	.ascii	"\",\nCLANG_WARN_BOOL_CONVERSION         = \"YES\",\nCLANG_WA"
	.ascii	"RN_CONSTANT_CONVERSION     = \"YES\",\nCLANG_WARN_EMPTY_BODY"
	.ascii	"              = \"YES\",\nCLANG_WARN_ENUM_CONVERSION        "
	.ascii	" = \"YES\",\nCLANG_WARN_INFINITE_RECURSION      = \"YES\",\n"
	.ascii	"CLANG_WARN_INT_CONVERSION          = \"YES\",\nCLANG_WARN_SU"
	.ascii	"SPICIOUS_MOVE         = \"YES\",\nCLANG_WARN_UNREACHABLE_COD"
	.ascii	"E        = \"YES\",\nCONFIGURATION_TEMP_DIR             = \""
	.ascii	"$(OBJROOT)\",\nENABLE_STRICT_OBJC_MSGSEND         = \"YES\","
	.ascii	"\nENABLE_TESTABILITY                 = \"YES\",\nGCC_C_LANGU"
	.ascii	"AGE_STANDARD            = \"gnu99\",\nGCC_NO_COMMON_BLOCKS  "
	.ascii	"             = \"YES\",\nGCC_PREPROCESSOR_DEFINITIONS       "
	.ascii	"= cfg.defines,\nGCC_SYMBOLS_PRIVATE_EXTERN         = \"NO\","
	.ascii	"\nGCC_WARN_64_TO_32_BI"
	.ascii	"T_CONVERSION   = \"YES\",\nGCC_WARN_ABOUT_RETURN_TYPE       "
	.ascii	"  = \"YES\",\nGCC_WARN_UNDECLARED_SELECTOR       = \"YES\",\n"
	.ascii	"GCC_WARN_UNINITIALIZED_AUTOS       = \"YES\",\nGCC_WARN_UNUS"
	.ascii	"ED_FUNCTION           = \"YES\",\nGCC_WARN_UNUSED_VARIABLE  "
	.ascii	"         = \"YES\",\nHEADER_SEARCH_PATHS                = ta"
	.ascii	"ble.join(cfg.includedirs, cfg.systemincludedirs),\nLIBRARY_S"
	.ascii	"EARCH_PATHS               = cfg.libdirs,\nOBJROOT           "
	.ascii	"                 = cfg.objectsdir,\nONLY_ACTIVE_ARCH        "
	.ascii	"           = \"YES\",\nOTHER_CFLAGS                       = "
	.ascii	"table.join(cflags, cfg.buildoptions, cfg.buildoptions_c),\nO"
	.ascii	"THER_CPLUSPLUSFLAGS               = table.join(cflags, cfg.b"
	.ascii	"uildoptions, cfg.buildoptions_cpp),\nOTHER_LDFLAGS          "
	.ascii	"            = table.join(ldflags, cfg.linkoptions),\nSDKROOT"
	.ascii	"                            = xcode.toolset,\nUSER_HEADER_SE"
	.ascii	"ARCH_PATHS           = cfg.userincludedirs,\n}\nif tr.entitl"
	.ascii	"ements then\noptions.CODE_SIGN_ENTITLEMENTS = tr.entitlement"
	.ascii	"s.cfg.name\nend\nlocal targetdir = path.getdirectory(cfg.bui"
	.ascii	"ldtarget.bundlepath)\nif targetdir ~= \".\" then\noptions.CO"
	.ascii	"NFIGURATION_BUILD_DIR = \"$(SYMROOT)\"\noptions.SYMROOT = ta"
	.ascii	"rgetdir\nend\nif cfg.flags.Symbols then\noptions.COPY_PHASE_"
	.ascii	"STRIP = \"NO\"\nend\nlocal excluded = xcode.cfg_excluded_fil"
	.ascii	"es(prj, cfg)\nif #excluded > 0 then\noptions.EXCLUDED_SOURCE"
	.ascii	"_FILE_NAMES = excluded\nend\nif cfg.flags.NoExceptions then\n"
	.ascii	"options.GCC_ENABLE_CPP_EXCEPTIONS = \"NO\"\nend\nif cfg.flag"
	.ascii	"s.NoRTTI then\noptions.GCC_ENABLE_CPP_RTTI = \"NO\"\nend\nif"
	.ascii	" cfg.flags.Symbols and not cfg.flags.NoEditAndContinue then\n"
	.ascii	"options.GCC_ENABLE_FIX_AND_CONTINUE = \"YES\"\nend\nif cfg.f"
	.ascii	"lags.NoExceptions then\noptions.GCC_ENABLE_OBJC_EXCEPTIONS ="
	.ascii	" \"NO\"\nend\nif cfg.flags.Optimize or cfg.flags.OptimizeSiz"
	.ascii	"e then\noptions.GCC_OPTIMIZATION_LEVEL = \"s\"\nelseif cfg.f"
	.ascii	"lags.OptimizeSpeed then\noptions.GCC_OPTIMIZATION_LEVEL = 3\n"
	.ascii	"else\noptions.GCC_OPTIMIZATION_LEVEL = 0\nend\nif cfg.pchhea"
	.ascii	"der and not cfg.flags.NoPCH then\noptions.GCC_PRECOMPILE_PRE"
	.ascii	"FIX_HEADER = \"YES\"\nlocal pch = cfg.pchheader\nfor _, incd"
	.ascii	"ir in ipairs(cfg.includedirs) do\nlocal ab"
	.ascii	"spath = path.getabsolute(path.join(cfg.project.location, inc"
	.ascii	"dir))\nlocal testname = path.join(abspath, pch)\nif os.isfil"
	.ascii	"e(testname) then\npch = path.getrelative(cfg.location, testn"
	.ascii	"ame)\nbreak\nend\nend\noptions.GCC_PREFIX_HEADER = pch\nend\n"
	.ascii	"if cfg.flags.FatalWarnings then\noptions.GCC_TREAT_WARNINGS_"
	.ascii	"AS_ERRORS = \"YES\"\nend\nif cfg.kind == \"Bundle\" then\nop"
	.ascii	"tions.MACH_O_TYPE = \"mh_bundle\"\nend\nif cfg.flags.StaticR"
	.ascii	"untime then\noptions.STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = \"s"
	.ascii	"tatic\"\nend\nif cfg.flags.PedanticWarnings or cfg.flags.Ext"
	.ascii	"raWarnings then\noptions.WARNING_CFLAGS = \"-Wall\"\nend\nif"
	.ascii	" cfg.flags.Cpp11 then\noptions.CLANG_CXX_LANGUAGE_STANDARD ="
	.ascii	" \"c++11\"\nelseif cfg.flags.Cpp14 or cfg.flags.CppLatest th"
	.ascii	"en\noptions.CLANG_CXX_LANGUAGE_STANDARD = \"c++14\"\nelseif "
	.ascii	"cfg.flags.Cpp17 then\nif premake.action.current() == premake"
	.ascii	".action.get(\"xcode8\") then\nerror(\"XCode8 does not suppor"
	.ascii	"t C++17.\")\nend\nend\nfor _, val in ipairs(premake.xcode.pa"
	.ascii	"rameters) do\nlocal eqpos = string.find(val, \"=\")\nif eqpo"
	.ascii	"s ~= nil then\nlocal key = string.trim(string.sub(val, 1, eq"
	.ascii	"pos - 1))\nlocal value = string.trim(string.sub(val, eqpos +"
	.ascii	" 1))\noptions[key] = value\nend\nend\nreturn options\nend\nf"
	.ascii	"unction xcode8.project(prj)\nlocal tr = xcode.buildprjtree(p"
	.ascii	"rj)\nxcode.Header(tr, 48)\nxcode.PBXBuildFile(tr)\nxcode.PBX"
	.ascii	"ContainerItemProxy(tr)\nxcode.PBXFileReference(tr,prj)\nxcod"
	.ascii	"e.PBXFrameworksBuildPhase(tr)\nxcode.PBXGroup(tr)\nxcode.PBX"
	.ascii	"NativeTarget(tr)\nxcode.PBXProject(tr, \"8.0\")\nxcode.PBXRe"
	.ascii	"ferenceProxy(tr)\nxcode.PBXResourcesBuildPhase(tr)\nxcode.PB"
	.ascii	"XShellScriptBuildPhase(tr)\nxcode.PBXCopyFilesBuildPhase(tr)"
	.ascii	"\nxcode.PBXSourcesBuildPhase(tr,prj)\nxcode.PBXVariantGroup("
	.ascii	"tr)\nxcode.PBXTargetDependency(tr)\nxcode.XCBuildConfigurati"
	.ascii	"on(tr, prj, {\nontarget = xcode8.XCBuildConfiguration_Target"
	.ascii	",\nonproject = xcode8.XCBuildConfiguration_Project,\n})\nxco"
	.ascii	"de.XCBuildConfigurationList(tr)\nxcode.Footer(tr)\nend\nnewa"
	.ascii	"ction\n{\ntrigger         = \"xcode8\",\nshortname       = \""
	.ascii	"Xcode 8\",\ndescription     = \"Generate Apple Xcode 8 proje"
	.ascii	"ct files\",\nos              = \"macosx\",\nvalid_kinds   "
	.ascii	"  = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\", \"Shar"
	.ascii	"edLib\", \"Bundle\" },\nvalid_languages = { \"C\", \"C++\" }"
	.ascii	",\nvalid_tools     = {\ncc     = { \"gcc\" },\n},\nvalid_pla"
	.ascii	"tforms = {\nNative = \"Native\",\nx32 = \"Native 32-bit\",\n"
	.ascii	"x64 = \"Native 64-bit\",\nUniversal = \"Universal\",\n},\nde"
	.ascii	"fault_platform = \"Native\",\nonsolution = function(sln)\npr"
	.ascii	"emake.generate(sln, \"%%.xcworkspace/contents.xcworkspacedat"
	.ascii	"a\", xcode.workspace_generate)\npremake.generate(sln, \"%%.x"
	.ascii	"cworkspace/xcshareddata/WorkspaceSettings.xcsettings\", xcod"
	.ascii	"e.workspace_settings)\npremake.generate(sln, \"%%.xcworkspac"
	.ascii	"e/xcshareddata/xcschemes/-ALL-.xcscheme\", xcode.workspace_s"
	.ascii	"cheme)\nend,\nonproject = function(prj)\npremake.generate(pr"
	.ascii	"j, \"%%.xcodeproj/project.pbxproj\", xcode8.project)\nxcode."
	.ascii	"generate_schemes(prj, \"%%.xcodeproj/xcshareddata/xcschemes\""
	.ascii	")\nend,\noncleanproject = functi"
	.string	"on(prj)\npremake.clean.directory(prj, \"%%.xcodeproj\")\npremake.clean.directory(prj, \"%%.xcworkspace\")\nend,\noncheckproject = xcode.checkproject,\nxcode = {\niOSTargetPlatformVersion = nil,\nmacOSTargetPlatformVersion = nil,\ntvOSTargetPlatformVersion = nil,\n},\n}\n"
	.align 8
.LC55:
	.ascii	"local premake = premake\npremake.xcode9 = { }\nlocal xcode  "
	.ascii	"= premake.xcode\nlocal xcode8 = premake.xcode8\nlocal xcode9"
	.ascii	" = premake.xcode9\nfunction xcode9.XCBuildConfiguration_Proj"
	.ascii	"ect(tr, prj, cfg)\nlocal options = xcode8.XCBuildConfigurati"
	.ascii	"on_Project(tr, prj, cfg)\nif cfg.flags.Cpp17 or cfg.flags.Cp"
	.ascii	"pLatest then\noptions.CLANG_CXX_LANGUAGE_STANDARD = \"c++17\""
	.ascii	"\nend\nreturn table.merge(options, {\nCLANG_WARN_BLOCK_CAPTU"
	.ascii	"RE_AUTORELEASING = \"YES\",\nCLANG_WARN_COMMA = \"YES\",\nCL"
	.ascii	"ANG_WARN_NON_LITERAL_NULL_CONVERSION = \"YES\",\nCLANG_WARN_"
	.ascii	"OBJC_LITERAL_CONVERSION = \"YES\",\nCLANG_WARN_RANGE_LOOP_AN"
	.ascii	"ALYSIS = \"YES\",\nCLANG_WARN_STRICT_PROTOTYPES = \"YES\",\n"
	.ascii	"})\nend\nfunction xcode9.project(prj)\nlocal tr = xcode.buil"
	.ascii	"dprjtree(prj)\nxcode.Header(tr, 48)\nxcode.PBXBuildFile(tr)\n"
	.ascii	"xcode.PBXContainerItemProxy(tr)\nxcode.PBXFileReference(tr,p"
	.ascii	"rj)\nxcode.PBXFrameworksBuildPhase(tr)\nxcode.PBXGroup(tr)\n"
	.ascii	"xcode.PBXNativeTarget(tr)\nxcode.PBXProject(tr, \"8.0\")\nxc"
	.ascii	"ode.PBXReferenceProxy(tr)\nxcode.PBXResourcesBuildPhase(tr)\n"
	.ascii	"xcode.PBXShellScriptBuildPhase(tr)\nxcode.PBXCopyFilesBuildP"
	.ascii	"hase(tr)\nxcode.PBXSourcesBuildPhase(tr,prj)\nxcode.PBXVaria"
	.ascii	"ntGroup(tr)\nxcode.PBXTargetDependency(tr)\nxcode.XCBuildCon"
	.ascii	"figuration(tr, prj, {\nontarget = xcode8.XCBuildConfiguratio"
	.ascii	"n_Target,\nonproject = xcode9.XCBuildConfiguration_Project,\n"
	.ascii	"})\nxcode.XCBuildConfigurationList(tr)\nxcode.Footer(tr)\nen"
	.ascii	"d\nnewaction\n{\ntrigger         = \"xcode9\",\nshortname   "
	.ascii	"    = \"Xcode 9\",\ndescription     = \"Generate Apple Xcode"
	.ascii	" 9 project files\",\nos              = \"macosx\",\nvalid_ki"
	.ascii	"nds     = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\", "
	.ascii	"\"SharedLib\", \"Bundle\" },\nvalid_languages = { \"C\", \"C"
	.ascii	"++\" },\nvalid_tools     = {\ncc     = { \"gcc\" },\n},\nval"
	.ascii	"id_platforms = {\nNative = \"Native\",\nx32 = \"Native 32-bi"
	.ascii	"t\",\nx64 = \"Native 64-bit\",\nUniversal = \"Universal\",\n"
	.ascii	"},\ndefault_platform = \"Native\",\nonsolution = function(sl"
	.ascii	"n)\npremake.generate(sln, \"%%.xcworkspace/contents.xcworksp"
	.ascii	"acedata\", xcode.workspace_generate)\npremake.generate(sln, "
	.ascii	"\"%%.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings\""
	.ascii	", xcode.works"
	.ascii	"pace_settings)\npremake.generate(sln, \"%%.xcworkspace/xcsha"
	.ascii	"reddata/xcschemes/-ALL-.xcscheme\", xcode.workspace_scheme)\n"
	.ascii	"end,\nonproject = function(prj)\npremake.generate(prj, \"%%."
	.ascii	"xcodeproj/project.pbxproj\", xcode9.project)\nxcode.generate"
	.ascii	"_schemes(prj, \"%%.xcodeproj/xcshareddata/xcschemes\")\nend,"
	.ascii	"\noncleanproject = functi"
	.string	"on(prj)\npremake.clean.directory(prj, \"%%.xcodeproj\")\npremake.clean.directory(prj, \"%%.xcworkspace\")\nend,\noncheckproject = xcode.checkproject,\nxcode = {\niOSTargetPlatformVersion = nil,\nmacOSTargetPlatformVersion = nil,\ntvOSTargetPlatformVersion = nil,\n},\n}\n"
	.align 8
.LC56:
	.ascii	"local premake = premake\npremake.xcode10 = { }\nlocal xcode "
	.ascii	" = premake.xcode\nlocal xcode8 = premake.xcode8\nlocal xcode"
	.ascii	"9 = premake.xcode9\nlocal xcode10 = premake.xcode10\nfunctio"
	.ascii	"n xcode10.XCBuildConfiguration_Project(tr, prj, cfg)\nlocal "
	.ascii	"options = xcode9.XCBuildConfiguration_Project(tr, prj, cfg)\n"
	.ascii	"return table.merge(options, {\nCLANG_WARN_DEPRECATED_OBJC_IM"
	.ascii	"PLEMENTATIONS = \"YES\",\nCLANG_WARN_OBJC_IMPLICIT_RETAIN_SE"
	.ascii	"LF = \"YES\",\nCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = \"YE"
	.ascii	"S\",\nCLANG_WARN_COMMA = \"YES\",\nCLANG_WARN_NON_LITERAL_NU"
	.ascii	"LL_CONVERSION = \"YES\",\nCLANG_WARN_OBJC_LITERAL_CONVERSION"
	.ascii	" = \"YES\",\nCLANG_WARN_RANGE_LOOP_ANALYSIS = \"YES\",\nCLAN"
	.ascii	"G_WARN_STRICT_PROTOTYPES = \"YES\",\n})\nend\nfunction xcode"
	.ascii	"10.XCBuildConfiguration_Target(tr, target, cfg)\nlocal optio"
	.ascii	"ns = xcode8.XCBuildConfiguration_Target(tr, target, cfg)\nif"
	.ascii	" not cfg.flags.ObjcARC then\noptions.CLANG_ENABLE_OBJC_WEAK "
	.ascii	"= \"YES\"\nend\nreturn options\nend\nfunction xcode10.projec"
	.ascii	"t(prj)\nlocal tr = xcode.buildprjtree(prj)\nxcode.Header(tr,"
	.ascii	" 48)\nxcode.PBXBuildFile(tr)\nxcode.PBXContainerItemProxy(tr"
	.ascii	")\nxcode.PBXFileReference(tr,prj)\nxcode.PBXFrameworksBuildP"
	.ascii	"hase(tr)\nxcode.PBXGroup(tr)\nxcode.PBXNativeTarget(tr)\nxco"
	.ascii	"de.PBXProject(tr, \"8.0\")\nxcode.PBXReferenceProxy(tr)\nxco"
	.ascii	"de.PBXResourcesBuildPhase(tr)\nxcode.PBXShellScriptBuildPhas"
	.ascii	"e(tr)\nxcode.PBXCopyFilesBuildPhase(tr)\nxcode.PBXSourcesBui"
	.ascii	"ldPhase(tr,prj)\nxcode.PBXVariantGroup(tr)\nxcode.PBXTargetD"
	.ascii	"ependency(tr)\nxcode.XCBuildConfiguration(tr, prj, {\nontarg"
	.ascii	"et = xcode10.XCBuildConfiguration_Target,\nonproject = xcode"
	.ascii	"10.XCBuildConfiguration_Project,\n})\nxcode.XCBuildConfigura"
	.ascii	"tionList(tr)\nxcode.Footer(tr)\nend\nnewaction\n{\ntrigger  "
	.ascii	"       = \"xcode10\",\nshortname       = \"Xcode 10\",\ndesc"
	.ascii	"ription     = \"Generate Apple Xcode 10 project files (exper"
	.ascii	"imental)\",\nos              = \"macosx\",\nvalid_kinds     "
	.ascii	"= { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\", \"Shared"
	.ascii	"Lib\", \"Bundle\" },\nvalid_languages = { \"C\", \"C++\" },\n"
	.ascii	"valid_tools     = {\ncc     = { \"gcc\" },\n},\nvalid_platfo"
	.ascii	"rms = {\nNative = \"Native\",\nx32 = \"Native 32-bit\",\nx64"
	.ascii	" = \"Native"
	.ascii	" 64-bit\",\nUniversal = \"Universal\",\n},\ndefault_platform"
	.ascii	" = \"Native\",\nonsolution = function(sln)\npremake.generate"
	.ascii	"(sln, \"%%.xcworkspace/contents.xcworkspacedata\", xcode.wor"
	.ascii	"kspace_generate)\npremake.generate(sln, \"%%.xcworkspace/xcs"
	.ascii	"hareddata/WorkspaceSettings.xcsettings\", xcode.workspace_se"
	.ascii	"ttings)\npremake.generate(sln, \"%%.xcworkspace/xcshareddata"
	.ascii	"/xcschemes/-ALL-.xcscheme\", xcode.workspace_scheme)\nend,\n"
	.ascii	"onproject = function(prj)\npremake.generate(prj, \"%%.xcodep"
	.ascii	"roj/project.pbxproj\", xcode10.project)\nxcode.generate_sche"
	.ascii	"mes(prj, \"%%.xcodeproj/xcshareddata/xcschemes\")\nend,\nonc"
	.ascii	"leanproject = functi"
	.string	"on(prj)\npremake.clean.directory(prj, \"%%.xcodeproj\")\npremake.clean.directory(prj, \"%%.xcworkspace\")\nend,\noncheckproject = xcode.checkproject,\nxcode = {\niOSTargetPlatformVersion = nil,\nmacOSTargetPlatformVersion = nil,\ntvOSTargetPlatformVersion = nil,\n},\n}\n"
	.align 8
.LC57:
	.ascii	"premake.fastbuild = { }\nlocal fastbuild = premake.fastbuild"
	.ascii	"\nnewaction\n{\ntrigger = \"vs2015-fastbuild\",\nshortname ="
	.ascii	" \"FASTBuild VS2015\",\ndescription = \"Generate FASTBuild c"
	.ascii	"onfiguration files for Visual Studio 2015.\",\nvalid_kinds ="
	.ascii	" {\n\"ConsoleApp\",\n\"WindowedApp\",\n\"StaticLib\",\n\"Sha"
	.ascii	"redLib\",\n\"Bundle\",\n},\nvalid_languages = {\n\"C\",\n\"C"
	.ascii	"++\"\n},\nvalid_tools = {\ncc = {\n\"msc\"\n},\n},\nonsoluti"
	.ascii	"on = function(sln)\npremake.generate(sln, \"fbuild.bff\", pr"
	.ascii	"emake.fastbui"
	.string	"ld.solution)\nend,\nonproject = function(prj)\npremake.generate(prj, \"%%.bff\", premake.fastbuild.project)\nend,\noncleansolution = function(sln)\npremake.clean.file(sln, \"fbuild.bff\")\nend,\noncleanproject  = function(prj)\npremake.clean.file(prj, \"%%.bff\")\nend,\n}\n"
	.align 8
.LC58:
	.ascii	"-- Generates a FASTBuild config file for a project.\nlocal f"
	.ascii	"unction add_trailing_backslash(dir)\nif dir:len() > 0 and di"
	.ascii	"r:sub(-1) ~= \"\\\\\" then\nreturn dir..\"\\\\\"\nend\nretur"
	.ascii	"n dir\nend\nlocal function compile(indentlevel, prj, cfg, co"
	.ascii	"mmonbasepath)\nlocal firstflag = true\nfor _, cfgexclude in "
	.ascii	"ipairs(cfg.excludes) do\nif path.issourcefile(cfgexclude) th"
	.ascii	"en\nif firstflag then\n_p(indentlevel, '// Excluded files:')"
	.ascii	"\nfirstflag = false\nend\n_p(indentlevel, \".CompilerInputFi"
	.ascii	"les - '%s'\", cfgexclude)\nend\nend\nif not firstflag then\n"
	.ascii	"_p('')\nend\n_p(indentlevel, \".CompilerOutputPath = '%s'\","
	.ascii	" add_trailing_backslash(cfg.objectsdir))\n_p(indentlevel, \""
	.ascii	".Defines = ''\")\nfor _, define in ipairs(cfg.defines) do\n_"
	.ascii	"p(indentlevel+1, \"+ ' /D%s'\", define)\nend\nif cfg.kind =="
	.ascii	" 'SharedLib' then\n_p(indentlevel+1, \"+ ' /D_WINDLL'\")\nen"
	.ascii	"d\n_p(indentlevel, \".IncludeDirs = ''\")\nlocal sortedincdi"
	.ascii	"rs = table.join(cfg.userincludedirs, cfg.includedirs, cfg.sy"
	.ascii	"stemincludedirs)\nlocal function getpathnodecount(p)\nlocal "
	.ascii	"nodefinder = string.gmatch(p, \"[^\\\\/]+\")\nlocal result ="
	.ascii	" 0\nlocal node = nodefinder()\nwhile node do\nresult = resul"
	.ascii	"t + ((node ~= '.' and 1) or 0)\nnode = nodefinder()\nend\nre"
	.ascii	"turn result\nend\nlocal stepsfrombase = {}\nfor _, includedi"
	.ascii	"r in ipairs(sortedincdirs) do\nstepsfrombase[includedir] = g"
	.ascii	"etpathnodecount(path.getrelative(commonbasepath, includedir)"
	.ascii	")\nend\nlocal function includesort(a, b)\nif stepsfrombase[a"
	.ascii	"] == stepsfrombase[b] then\nreturn a < b\nelse\nreturn steps"
	.ascii	"frombase[a] < stepsfrombase[b]\nend\nend\ntable.sort(sortedi"
	.ascii	"ncdirs, includesort)\nfor _, includedir in ipairs(sortedincd"
	.ascii	"irs) do\n_p(indentlevel+1, \"+ ' /I\\\"%s\\\"'\", includedir"
	.ascii	")\nend\n_p(indentlevel+1, \"+ .MSVCIncludes\")\nlocal compil"
	.ascii	"eroptions = {\n'\"%1\"',\n'/nologo',\n'/c',\n'/Gm-',\n'/Zc:i"
	.ascii	"nline',\n'/errorReport:prompt',\n'/FS',\n}\nif cfg.options.F"
	.ascii	"orceCPP then\ntable.insert(compileroptions, '/TP')\nend\nif "
	.ascii	"cfg.flags.PedanticWarnings\nor cfg.flags.ExtraWarnings\nthen"
	.ascii	"\ntable.insert(compileroptions, '/W4')\nend\nif (cfg.flags.N"
	.ascii	"ativeWChar == false or\ncfg.flags.NoNativeWChar) then\ntable"
	.ascii	".insert(co"
	.ascii	"mpileroptions, '/Zc:wchar_t-')\nend\nif (cfg.flags.EnableMin"
	.ascii	"imalRebuild or\ncfg.flags.NoMultiProcessorCompilation) then\n"
	.ascii	"end\nif cfg.flags.FloatFast then\ntable.insert(compileroptio"
	.ascii	"ns, '/fp:fast')\nelseif cfg.flags.FloatStrict then\ntable.in"
	.ascii	"sert(compileroptions, '/fp:strict')\nelse\ntable.insert(comp"
	.ascii	"ileroptions, '/fp:precise')\nend\nif cfg.flags.FastCall then"
	.ascii	"\ntable.insert(compileroptions, '/Gr')\nelseif cfg.flags.Std"
	.ascii	"Call then\ntable.insert(compileroptions, '/Gd')\nend\nif cfg"
	.ascii	".flags.UnsignedChar then\ntable.insert(compileroptions, '/J'"
	.ascii	")\nend\nif premake.config.isdebugbuild(cfg) then\nif cfg.fla"
	.ascii	"gs.StaticRuntime then\ntable.insert(compileroptions, '/MTd')"
	.ascii	"\nelse\ntable.insert(compileroptions, '/MDd')\nend\nelse\nif"
	.ascii	" cfg.flags.StaticRuntime then\ntable.insert(compileroptions,"
	.ascii	" '/MT')\nelse\ntable.insert(compileroptions, '/MD')\nend\nen"
	.ascii	"d\nif cfg.flags.Symbols then\nif (cfg.flags.C7DebugInfo) the"
	.ascii	"n\ntable.insert(compileroptions, '/Z7')\nelse\nif premake.co"
	.ascii	"nfig.iseditandcontinue(cfg) then\ntable.insert(compileroptio"
	.ascii	"ns, '/ZI')\nelse\ntable.insert(compileroptions, '/Zi')\nend\n"
	.ascii	"local targetdir = add_trailing_backslash(cfg.buildtarget.dir"
	.ascii	"ectory)\ntable.insert(compileroptions, string.format(\"/Fd\\"
	.ascii	"\"%s%s.pdb\\\"\", targetdir, cfg.buildtarget.basename))\nend"
	.ascii	"\nend\nlocal isoptimised = true\nif (cfg.flags.Optimize) the"
	.ascii	"n\ntable.insert(compileroptions, '/Ox')\nelseif (cfg.flags.O"
	.ascii	"ptimizeSize) then\ntable.insert(compileroptions, '/O1')\nels"
	.ascii	"eif (cfg.flags.OptimizeSpeed) then\ntable.insert(compileropt"
	.ascii	"ions, '/O2')\nelse\nisoptimised = false\nend\nif isoptimised"
	.ascii	" then\nif cfg.flags.NoOptimizeLink and cfg.flags.NoEditAndCo"
	.ascii	"ntinue then\ntable.insert(compileroptions, '/GF-')\ntable.in"
	.ascii	"sert(compileroptions, '/Gy-')\nelse\ntable.insert(compilerop"
	.ascii	"tions, '/GF')\ntable.insert(compileroptions, '/Gy')\nend\nel"
	.ascii	"se\ntable.insert(compileroptions, '/Gy')\ntable.insert(compi"
	.ascii	"leroptions, '/Od')\ntable.insert(compileroptions, '/RTC1')\n"
	.ascii	"end\nif cfg.flags.FatalWarnings then\ntable.insert(compilero"
	.ascii	"ptions, '/WX')\nelse\ntable.insert(compileroptions, '/WX-')\n"
	.ascii	"end\nif cfg.platform == 'x32' then\nif"
	.ascii	" cfg.flags.EnableSSE2 then\ntable.insert(compileroptions, '/"
	.ascii	"arch:SSE2')\nelseif cfg.flags.EnableSSE then\ntable.insert(c"
	.ascii	"ompileroptions, '/arch:SSE')\nend\nend\nif cfg.flags.NoExcep"
	.ascii	"tions then\nelse\nif cfg.flags.SEH then\ntable.insert(compil"
	.ascii	"eroptions, '/EHa')\nelse\ntable.insert(compileroptions, '/EH"
	.ascii	"sc')\nend\nend\nif cfg.flags.NoRTTI then\ntable.insert(compi"
	.ascii	"leroptions, '/GR-')\nelse\ntable.insert(compileroptions, '/G"
	.ascii	"R')\nend\nif cfg.flags.NoFramePointer then\ntable.insert(com"
	.ascii	"pileroptions, '/Oy-')\nelse\ntable.insert(compileroptions, '"
	.ascii	"/Oy')\nend\nfor _, addloption in ipairs(cfg.buildoptions) do"
	.ascii	"\ntable.insert(compileroptions, addloption)\nend\n_p(indentl"
	.ascii	"evel, \".CompilerOptions = ''\")\nfor _, option in ipairs(co"
	.ascii	"mpileroptions) do\n_p(indentlevel+1, \"+ ' %s'\", option)\ne"
	.ascii	"nd\n_p(indentlevel+1, \"+ .IncludeDirs\")\n_p(indentlevel+1,"
	.ascii	" \"+ .Defines\")\nif not cfg.flags.NoPCH and cfg.pchheader t"
	.ascii	"hen\n_p(indentlevel, \".CompilerInputFiles - '%s'\", cfg.pch"
	.ascii	"source)\n_p(indentlevel, \".PCHInputFile = '%s'\", cfg.pchso"
	.ascii	"urce)\n_p(indentlevel, \".PCHOutputFile = .CompilerOutputPat"
	.ascii	"h + '%s.pch'\", prj.name)\n_p(indentlevel, \".CompilerOption"
	.ascii	"s + ' /Fp\\\"' + .CompilerOutputPath + '%s.pch\\\"'\", prj.n"
	.ascii	"ame)\n_p(indentlevel, \".PCHOptions = .CompilerOptions\")\n_"
	.ascii	"p(indentlevel+1, \"+ ' /Yc\\\"%s\\\"'\", cfg.pchheader)\n_p("
	.ascii	"indentlevel+1, \"+ ' /Fo\\\"%%3\\\"'\")\n_p(indentlevel, \"."
	.ascii	"CompilerOptions + ' /Yu\\\"%s\\\"'\", cfg.pchheader)\nend\n_"
	.ascii	"p(indentlevel+1, \"+ ' /Fo\\\"%%2\\\"'\") -- make sure the p"
	.ascii	"revious property is .CompilerOptions\nend\nlocal function li"
	.ascii	"brary(prj, cfg, useconfig, commonbasepath)\n_p(1, \"Library("
	.ascii	"'%s-%s-%s')\", prj.name, cfg.name, cfg.platform)\n_p(1, '{')"
	.ascii	"\nuseconfig(2)\ncompile(2, prj, cfg, commonbasepath)\nlocal "
	.ascii	"librarianoptions = {\n'\"%1\"',\n'/OUT:\"%2\"',\n'/NOLOGO',\n"
	.ascii	"}\nif cfg.platform == 'x64' then\ntable.insert(librarianopti"
	.ascii	"ons, '/MACHINE:X64')\nelse\ntable.insert(librarianoptions, '"
	.ascii	"/MACHINE:X86')\nend\n_p(2, \".LibrarianOptions = ''\")\nfor "
	.ascii	"_, option in ipairs(librarianoptions) do\n_p(3, \"+ ' %s'\","
	.ascii	" option)\nend\n_p(2, \".LibrarianOutput = '%s'\", cfg.buildt"
	.ascii	"arget.fullpath)\n_p(1,"
	.ascii	" '}')\n_p('')\nend\nlocal function binary(prj, cfg, useconfi"
	.ascii	"g, bintype, commonbasepath)\n_p(1, \"ObjectList('%s_obj-%s-%"
	.ascii	"s')\", prj.name, cfg.name, cfg.platform)\n_p(1, '{')\nusecon"
	.ascii	"fig(2)\ncompile(2, prj, cfg, commonbasepath)\n_p(1, '}')\n_p"
	.ascii	"('')\n_p(1, \"%s('%s-%s-%s')\", bintype, prj.name, cfg.name,"
	.ascii	" cfg.platform)\n_p(1, '{')\nuseconfig(2)\n_p(2, '.Libraries "
	.ascii	"= {')\n_p(3, \"'%s_obj-%s-%s',\", prj.name, cfg.name, cfg.pl"
	.ascii	"atform) -- Refer to the ObjectList\nlocal sorteddeplibs = {}"
	.ascii	"\nfor _, deplib in ipairs(premake.getlinks(cfg, \"dependenci"
	.ascii	"es\", \"basename\")) do\ntable.insert(sorteddeplibs, string."
	.ascii	"format(\"'%s-%s-%s',\", deplib, cfg.name, cfg.platform))\nen"
	.ascii	"d\ntable.sort(sorteddeplibs)\nfor _, deplib in ipairs(sorted"
	.ascii	"deplibs) do\n_p(3, deplib)\nend\n_p(3, '}')\n_p(2, '.LinkerL"
	.ascii	"inkObjects = false')\nlocal linkeroptions = {\n'\"%1\"',\n'/"
	.ascii	"OUT:\"%2\"',\n'/NOLOGO',\n'/errorReport:prompt',\n}\nlocal s"
	.ascii	"ubsystemversion = '\",5.02\"'\nif cfg.platform == 'x32' then"
	.ascii	"\nsubsystemversion = '\",5.01\"'\nend\nif cfg.kind == 'Conso"
	.ascii	"leApp' then\ntable.insert(linkeroptions, '/SUBSYSTEM:CONSOLE"
	.ascii	"'..subsystemversion)\nelse\ntable.insert(linkeroptions, '/SU"
	.ascii	"BSYSTEM:WINDOWS'..subsystemversion)\nend\nif cfg.kind == 'Sh"
	.ascii	"aredLib' then\ntable.insert(linkeroptions, '/DLL')\nend\nif "
	.ascii	"cfg.platform == 'x64' then\ntable.insert(linkeroptions, '/MA"
	.ascii	"CHINE:X64')\nelse\ntable.insert(linkeroptions, '/MACHINE:X86"
	.ascii	"')\nend\nfor _, libdir in ipairs(cfg.libdirs) do\ntable.inse"
	.ascii	"rt(linkeroptions, string.format('/LIBPATH:%s', path.translat"
	.ascii	"e(libdir, '\\\\')))\nend\nif not cfg.flags.WinMain and (cfg."
	.ascii	"kind == 'ConsoleApp' or cfg.kind == 'WindowedApp') then\nif "
	.ascii	"cfg.flags.Unicode then\ntable.insert(linkeroptions, '/ENTRY:"
	.ascii	"wmainCRTStartup')\nelse\ntable.insert(linkeroptions, '/ENTRY"
	.ascii	":mainCRTStartup')\nend\nend\nlocal deffile = premake.findfil"
	.ascii	"e(cfg, \".def\")\nif deffile then\ntable.insert(linkeroption"
	.ascii	"s, '/DEF:%s', deffile)\nend\nif (cfg.flags.Symbols ~= nil) t"
	.ascii	"hen\ntable.insert(linkeroptions, '/DEBUG')\nend\nif premake."
	.ascii	"config.islinkeroptimizedbuild(cfg.flags) then\ntable.insert("
	.ascii	"linkeroptions, '/OPT:REF')\ntable.insert(linkeropti"
	.ascii	"ons, '/OPT:ICF')\nend\ntable.insert(linkeroptions, '/INCREME"
	.ascii	"NTAL'..((premake.config.isincrementallink(cfg) and '') or ':"
	.ascii	"NO'))\nfor _, addloption in ipairs(cfg.linkoptions) do\ntabl"
	.ascii	"e.insert(linkeroptions, addloption)\nend\nlocal linklibs = p"
	.ascii	"remake.getlinks(cfg, \"all\", \"fullpath\")\nfor _, linklib "
	.ascii	"in ipairs(linklibs) do\ntable.insert(linkeroptions, path.get"
	.ascii	"name(linklib))\nend\ntable.sort(linkeroptions)\n_p(2, \".Lin"
	.ascii	"kerOptions = ''\")\nfor _, option in ipairs(linkeroptions) d"
	.ascii	"o\n_p(3, \"+ ' %s'\", option)\nend\n_p(3, \"+ .MSVCLibPaths\""
	.ascii	")\n_p(2, \".LinkerOutput = '%s'\", cfg.buildtarget.fullpath)"
	.ascii	"\n_p(1, '}')\n_p('')\nend\nlocal function executable(prj, cf"
	.ascii	"g, useconfig, commonbasepath)\nbinary(prj, cfg, useconfig, '"
	.ascii	"Executable', commonbasepath)\nend\nlocal function dll(prj, c"
	.ascii	"fg, useconfig, commonbasepath)\nbinary(prj, cfg, useconfig, "
	.ascii	"'DLL', commonbasepath)\nend\nlocal function alias(prj, cfg, "
	.ascii	"target)\n_p(1, \"Alias('%s-%s-%s')\", prj.name, cfg.name, cf"
	.ascii	"g.platform)\n_p(1, '{')\n_p(2, \".Targets = '%s'\", target)\n"
	.ascii	"_p(1, '}')\n_p('')\nend\nfunction premake.fastbuild.project("
	.ascii	"prj)\nio.indent = '    '\n_p('// FASTBuild project configura"
	.ascii	"tion file autogenerated by GENie.')\n_p('')\n_p('{')\nlocal "
	.ascii	"cppfiles = {}\nfor file in premake.project.eachfile(prj) do\n"
	.ascii	"if path.issourcefile(file.name) then\ntable.insert(cppfiles,"
	.ascii	" file.name)\nend\nend\nlocal commonbasepath = cppfiles[1]\nf"
	.ascii	"or _, file in ipairs(cppfiles) do\ncommonbasepath = path.get"
	.ascii	"commonbasedir(commonbasepath..'/', file)\nend\n_p(1, \".Comp"
	.ascii	"ilerInputFilesRoot = '%s/'\", commonbasepath)\n_p(1, '.Compi"
	.ascii	"lerInputFiles = {')\nfor _, file in ipairs(cppfiles) do\n_p("
	.ascii	"2, \"'%s',\", file)\nend\n_p(1, '}')\n_p('')\nlocal targetki"
	.ascii	"ndmap = {\nConsoleApp = executable,\nWindowedApp = executabl"
	.ascii	"e,\nSharedLib = dll,\nStaticLib = library,\n}\nlocal useconf"
	.ascii	"igmap = {\nx32 = function(indentlevel)\n_p(indentlevel, 'Usi"
	.ascii	"ng(.MSVCx86Config)')\n_p('')\nend,\nx64 = function(indentlev"
	.ascii	"el)\n_p(indentlevel, 'Using(.MSVCx64Config)')\n_p('')\nend,\n"
	.ascii	"}\nlocal nativeplatform = (os.is64bit() and 'x64') or 'x32'\n"
	.ascii	"for _, platform in ipairs(prj.solution.platform"
	.ascii	"s) do\nfor cfg in "
	.string	"premake.eachconfig(prj, platform) do\nif cfg.platform == 'Native' then\nalias(prj, cfg, string.format('%s-%s-%s', prj.name, cfg.name, nativeplatform))\nelse\ntargetkindmap[prj.kind](prj, cfg, useconfigmap[cfg.platform], commonbasepath)\nend\nend\nend\n_p('}')\nend\n"
	.align 8
.LC59:
	.ascii	"-- Generates a FASTBuild config file for a solution.\nfuncti"
	.ascii	"on premake.fastbuild.solution(sln)\nio.indent = '    '\n_p('"
	.ascii	"// FastBuild solution configuration file.  Generated by GENi"
	.ascii	"e.')\n_p('//------------------------------------------------"
	.ascii	"------------------------------------')\n_p('// %s', sln.name"
	.ascii	")\n_p('//---------------------------------------------------"
	.ascii	"---------------------------------')\n_p('#import VS140COMNTO"
	.ascii	"OLS')\nlocal is64bit = os.is64bit()\nlocal target64 = (is64b"
	.ascii	"it and ' amd64') or ' x86_amd64'\nlocal target32 = (is64bit "
	.ascii	"and ' amd64_x86') or ''\nlocal getvcvarscontent = [[\n@set I"
	.ascii	"NCLUDE=\n@set LIB=\n@set CommandPromptType=\n@set PreferredT"
	.ascii	"oolArchitecture=\n@set Platform=\n@set Path=%SystemRoot%\\Sy"
	.ascii	"stem32;%SystemRoot%;%SystemRoot%\\System32\\wbem\n@call \"%V"
	.ascii	"S140COMNTOOLS%..\\..\\VC\\vcvarsall.bat\" %1\n@echo %INCLUDE"
	.ascii	"%\n@echo %LIB%\n@echo %CommandPromptType%\n@echo %PreferredT"
	.ascii	"oolArchitecture%\n@echo %Platform%\n@echo %Path%\n]]\nlocal "
	.ascii	"getvcvarsfilepath = os.getenv('TEMP')..'\\\\getvcvars.bat'\n"
	.ascii	"local getvcvarsfile = assert(io.open(getvcvarsfilepath, 'w')"
	.ascii	")\ngetvcvarsfile:write(getvcvarscontent)\ngetvcvarsfile:clos"
	.ascii	"e()\nlocal vcvarsrawx86 = os.outputof(string.format('call \""
	.ascii	"%s\"%s', getvcvarsfilepath, target32))\nlocal vcvarsrawx64 ="
	.ascii	" os.outputof(string.format('call \"%s\"%s', getvcvarsfilepat"
	.ascii	"h, target64))\nos.remove(getvcvarsfilepath)\nlocal msvcvars "
	.ascii	"= {}\nmsvcvars.x32 = {}\nmsvcvars.x64 = {}\nlocal includesli"
	.ascii	"bssplitter = string.gmatch(vcvarsrawx64, \"[^\\n]+\")\nmsvcv"
	.ascii	"ars.x64.includesraw = includeslibssplitter()\nmsvcvars.x64.l"
	.ascii	"ibpathsraw = includeslibssplitter()\nmsvcvars.x64.commandpro"
	.ascii	"mpttype = includeslibssplitter()\nmsvcvars.x64.preferredtool"
	.ascii	"architecture = includeslibssplitter()\nmsvcvars.x64.platform"
	.ascii	" = includeslibssplitter()\nmsvcvars.x64.pathraw = includesli"
	.ascii	"bssplitter()\nincludeslibssplitter = string.gmatch(vcvarsraw"
	.ascii	"x86, \"[^\\n]+\")\nmsvcvars.x32.includesraw = includeslibssp"
	.ascii	"litter()\nmsvcvars.x32.libpathsraw = includeslibssplitter()\n"
	.ascii	"msvcvars.x32.commandprompttype = includeslibssplitter()\nmsv"
	.ascii	"cvars.x32.preferredtoolarc"
	.ascii	"hitecture = includeslibssplitter()\nmsvcvars.x32.platform = "
	.ascii	"includeslibssplitter()\nmsvcvars.x32.pathraw = includeslibss"
	.ascii	"plitter()\nlocal function printincludes(includesraw)\n_p(1, "
	.ascii	"\".MSVCIncludes = ''\")\nfor i in string.gmatch(includesraw,"
	.ascii	" \"[^;]+\") do\n_p(2, \"+ ' /I\\\"%s\\\"'\", i)\nend\nend\nl"
	.ascii	"ocal function printlibpaths(libpathsraw)\n_p(1, \".MSVCLibPa"
	.ascii	"ths = ''\")\nfor i in string.gmatch(libpathsraw, \"[^;]+\") "
	.ascii	"do\n_p(2, \"+ ' /LIBPATH:\\\"%s\\\"'\", i)\nend\nend\nif is6"
	.ascii	"4bit then\n_p('.MSVCx64Config =')\n_p('[')\n_p(1, \".Compile"
	.ascii	"r  = '$VS140COMNTOOLS$..\\\\..\\\\VC\\\\bin\\\\amd64\\\\cl.e"
	.ascii	"xe'\")\n_p(1, \".Librarian = '$VS140COMNTOOLS$..\\\\..\\\\VC"
	.ascii	"\\\\bin\\\\amd64\\\\lib.exe'\")\n_p(1, \".Linker    = '$VS14"
	.ascii	"0COMNTOOLS$..\\\\..\\\\VC\\\\bin\\\\amd64\\\\link.exe'\")\np"
	.ascii	"rintincludes(msvcvars.x64.includesraw)\nprintlibpaths(msvcva"
	.ascii	"rs.x64.libpathsraw)\n_p(']')\n_p('')\n_p('.MSVCx86Config =')"
	.ascii	"\n_p('[')\n_p(1, \".Compiler  = '$VS140COMNTOOLS$..\\\\..\\\\"
	.ascii	"VC\\\\bin\\\\amd64_x86\\\\cl.exe'\")\n_p(1, \".Librarian = '"
	.ascii	"$VS140COMNTOOLS$..\\\\..\\\\VC\\\\bin\\\\amd64_x86\\\\lib.ex"
	.ascii	"e'\")\n_p(1, \".Linker    = '$VS140COMNTOOLS$..\\\\..\\\\VC\\"
	.ascii	"\\bin\\\\amd64_x86\\\\link.exe'\")\nprintincludes(msvcvars.x"
	.ascii	"32.includesraw)\nprintlibpaths(msvcvars.x32.libpathsraw)\n_p"
	.ascii	"(']')\n_p('')\nelse\n_p('.MSVCx64Config =')\n_p('[')\n_p(1, "
	.ascii	"\".Compiler  = '$VS140COMNTOOLS$..\\\\..\\\\VC\\\\bin\\\\x86"
	.ascii	"_amd64\\\\cl.exe'\")\n_p(1, \".Librarian = '$VS140COMNTOOLS$"
	.ascii	"..\\\\..\\\\VC\\\\bin\\\\x86_amd64\\\\lib.exe'\")\n_p(1, \"."
	.ascii	"Linker    = '$VS140COMNTOOLS$..\\\\..\\\\VC\\\\bin\\\\x86_am"
	.ascii	"d64\\\\link.exe'\")\nprintincludes(msvcvars.x64.includesraw)"
	.ascii	"\nprintlibpaths(msvcvars.x64.libpathsraw)\n_p(']')\n_p('')\n"
	.ascii	"_p('.MSVCx86Config =')\n_p('[')\n_p(1, \".Compiler  = '$VS14"
	.ascii	"0COMNTOOLS$..\\\\..\\\\VC\\\\bin\\\\cl.exe'\")\n_p(1, \".Lib"
	.ascii	"rarian = '$VS140COMNTOOLS$..\\\\..\\\\VC\\\\bin\\\\lib.exe'\""
	.ascii	")\n_p(1, \".Linker    = '$VS140COMNTOOLS$..\\\\..\\\\VC\\\\b"
	.ascii	"in\\\\link.exe'\")\nprintincludes(msvcvars.x32.includesraw)\n"
	.ascii	"printlibpaths(msvcvars.x32.libpathsraw)\n_p(']')\n_p('')\nen"
	.ascii	"d\nlocal msvcbin = '$VS140COMNTOOLS$..\\\\..\\\\VC\\\\bin' ."
	.ascii	". ((is64bit and '\\\\amd64') or '')\n_p('#import Path')\n_p("
	.ascii	"'#import TMP')\n_p('#import SystemRoot')\n_p('')\n_p('Settin"
	.ascii	"g"
	.ascii	"s')\n_p('{')\n_p(1, '.Environment = {')\n_p(2, \"'Path=%s;$P"
	.ascii	"ath$',\", msvcbin)\n_p(2, \"'TMP=$TMP$',\")\n_p(2, \"'System"
	.ascii	"Root=$SystemRoot$',\")\n_p(2, '}')\n_p('}')\n_p('')\nlocal f"
	.ascii	"unction projkindsort(a, b)\nlocal projvaluemap = {\nConsoleA"
	.ascii	"pp  = 3,\nWindowedApp = 3,\nSharedLib   = 2,\nStaticLib   = "
	.ascii	"1,\n}\nif projvaluemap[a.kind] == projvaluemap[b.kind] then\n"
	.ascii	"return a.name < b.name\nelse\nreturn projvaluemap[a.kind] < "
	.ascii	"projvaluemap[b.kind]\nend\nend\nlocal sortedprojs = {}\nfor "
	.ascii	"prj in premake.solution.eachproject(sln) do\ntable.insert(so"
	.ascii	"rtedprojs, prj)\nend\ntable.sort(sortedprojs, projkindsort)\n"
	.ascii	"for _, prj in ipairs(sortedprojs) do\nlocal fname = premake."
	.ascii	"project.getbasename(prj.name, '%%.bff')\nfname = path.join(p"
	.ascii	"rj.location, fname)\nfname = path.getrelative(sln.location, "
	.ascii	"fname)\n_p('#include \"%s\"', fname)\nend\n_p('')\n_p('.Proj"
	.ascii	"ectVariants = {')\nfor _, plat in ipairs(sln.platforms) do\n"
	.ascii	"for _, cfg in ipairs(sln.configurations) do\n_p(1, \"'%s-%s'"
	.ascii	",\", cfg, "
	.string	"plat)\nend\nend\n_p('}')\n_p('')\n_p('ForEach(.Variant in .ProjectVariants)')\n_p('{')\n_p(1, \"Alias('all-$Variant$')\")\n_p(1, '{')\n_p(2, '.Targets = {')\nfor _, prj in ipairs(sortedprojs) do\n_p(3, \"'%s-$Variant$',\", prj.name)\nend\n_p(2, '}')\n_p(1, '}')\n_p('}')\nend\n"
	.align 8
.LC60:
	.ascii	"premake.ninja = { }\nlocal p = premake\nnewaction\n{\ntrigge"
	.ascii	"r     = \"ninja\",\nshortname   = \"ninja\",\ndescription = "
	.ascii	"\"Generate Ninja build files\",\nmodule      = \"ninja\",\nv"
	.ascii	"alid_kinds     = {\"ConsoleApp\", \"WindowedApp\", \"StaticL"
	.ascii	"ib\", \"SharedLib\", \"Bundle\"},\nvalid_languages = {\"C\","
	.ascii	" \"C++\", \"Swift\"},\nvalid_tools     = {\ncc    = { \"gcc\""
	.ascii	" },\nswift = { \"swift\" },\n},\nonsolution = function(sln)\n"
	.ascii	"io.eol    = \"\\r\\n\"\nio.indent = \"\\t\"\nio.escaper(p.ni"
	.ascii	"nja.esc)\np.generate(sln, \"Makefile\", p.ninja.generate_sol"
	.ascii	"ution)\nio.indent = \"  \"\np.ninja.generate_ninja_builds(sl"
	.ascii	"n)\nend,\nonproject = function(prj)\nio.eol    = \"\\r\\n\"\n"
	.ascii	"io.indent = \"  \"\nio.escaper(p.ninja.esc)"
	.string	"\np.ninja.generate_project(prj)\nend,\noncleansolution = function(sln)\nfor _,name in ipairs(sln.configurations) do\npremake.clean.file(sln, p.ninja.get_solution_name(sln, name))\nend\nend,\noncleanproject = function(prj)\nend,\noncleantarget = function(prj)\nend,\n}\n"
	.align 8
.LC61:
	.ascii	"local ninja = premake.ninja\nfunction ninja.esc(value)\nif v"
	.ascii	"alue then\nvalue = string.gsub(value, \"%$\", \"$$\") -- TOD"
	.ascii	"O maybe there is better way\nvalue = string.gsub(value, \":\""
	.ascii	", \"$:\")\nvalue = string.gsub(value, \"\\n\", \"$\\n\")\nva"
	.ascii	"lue = string.gsub(value, \" \", \"$ \")\nend\nreturn value\n"
	.ascii	"end\nfunction ninja.shesc(value)\nif type(value) == \"table\""
	.ascii	" then\nlocal result = {}\nlocal n = #value\nfor i = 1, n do\n"
	.ascii	"table.insert(result, ninja.shesc(value[i]))\nend\nreturn res"
	.ascii	"ult\nend\nif value:find(\" \") then\nreturn \"\\\"\" .. valu"
	.ascii	"e .. \"\\\"\"\nend\nreturn value\nend\nfunction ninja.list(v"
	.ascii	"alue)\nif #value > 0 then\nreturn \" \" .. table.concat(valu"
	.ascii	"e, \" \")\nelse\nreturn \"\"\nend\nend\nfunction ninja.argli"
	.ascii	"st(arg, value)\nif #value > 0 then\nlocal args = {}\nfor _, "
	.ascii	"val in ipairs(value) do\ntable.insert(args, string.format(\""
	.ascii	"%s %s\", arg, val))\nend\nreturn table.concat(args, \" \")\n"
	.ascii	"else\nreturn \"\"\nend\nend\nfunction ninja.generate_project"
	.ascii	"(prj)\nif prj.language == \"Swift\" then\nninja.generate_swi"
	.ascii	"ft(prj)\nelse\nninja.generate_cpp(prj)\nend\nend\nlocal func"
	.ascii	"tion innerget(self, key)\nreturn rawget(getmetatable(self), "
	.ascii	"key) or self.__inner[key]\nend\nlocal prj_proxy = { __index "
	.ascii	"= innerget }\nlocal cfg_proxy = { __index = innerget }\nfunc"
	.ascii	"tion new_prj_proxy(prj)\nprj = prj.project or prj\nlocal v ="
	.ascii	" { __inner = prj }\nlocal __configs = {}\nfor key, cfg in pa"
	.ascii	"irs(prj.__configs) do\nif key ~= \"\" then\n__configs[key] ="
	.ascii	" ninja.get_proxy(\"cfg\", cfg)\nelse\n__configs[key] = cfg\n"
	.ascii	"end\nend\nv.__configs = __configs\nreturn setmetatable(v, pr"
	.ascii	"j_proxy)\nend\nlocal function rebasekeys(t, keys, old, new)\n"
	.ascii	"for _,key in ipairs(keys) do\nt[key] = path.rebase(t[key], o"
	.ascii	"ld, new)\nend\nreturn t\nend\nlocal function rebasearray(t, "
	.ascii	"old, new)\nlocal res = { }\nfor _,f in ipairs(t) do\ntable.i"
	.ascii	"nsert(res, path.rebase(f, old, new))\nend\nreturn res\nend\n"
	.ascii	"function new_cfg_proxy(cfg)\nlocal keys = { \"directory\", \""
	.ascii	"fullpath\", \"bundlepath\" }\nlocal old = cfg.location\nloca"
	.ascii	"l new = path.join(cfg.location, cfg.shortname)\nlocal v = {\n"
	.ascii	"__inner     = cfg,\nlocation    = new,\nobjectsdir  = path.r"
	.ascii	"ebase(cfg.objectsdir, old, new),\nbui"
	.ascii	"ldtarget = rebasekeys(table.deepcopy(cfg.buildtarget), keys,"
	.ascii	" old, new),\nlinktarget  = rebasekeys(table.deepcopy(cfg.lin"
	.ascii	"ktarget), keys, old, new),\n}\nv.files             = rebasea"
	.ascii	"rray(cfg.files, old, new)\nv.includedirs       = rebasearray"
	.ascii	"(cfg.includedirs, old, new)\nv.libdirs       = rebasearray(c"
	.ascii	"fg.libdirs, old, new)\nv.userincludedirs   = rebasearray(cfg"
	.ascii	".userincludedirs, old, new)\nv.systemincludedirs = rebasearr"
	.ascii	"ay(cfg.systemincludedirs, old, new)\nv.swiftmodulemaps   = r"
	.ascii	"ebasearray(cfg.swiftmodulemaps, old, new)\nreturn setmetatab"
	.ascii	"le(v, cfg_proxy)\nend\nfunction cfg_proxy:getprojectfilename"
	.ascii	"(fullpath)\nlocal name = self.project.name .. \".ninja\"\nif"
	.ascii	" fullpath ~= nil then\nreturn path.join(self.location, name)"
	.ascii	"\nend\nreturn name\nend\nfunction cfg_proxy:getoutputfilenam"
	.ascii	"e()\nreturn path.join(self.buildtarget.directory, self.build"
	.ascii	"target.name)\nend\nlocal proxy_cache = { \nprj = { new = new"
	.ascii	"_prj_proxy }, \ncfg = { new = new_cfg_pro"
	.string	"xy },\n}\nfunction get_proxy(cache, obj)\nif not cache[obj] then\ncache[obj] = cache.new(obj)\nend\nreturn cache[obj]\nend\nfunction ninja.get_proxy(typ, obj)\nif not proxy_cache[typ] then\nerror(\"invalid proxy type\")\nend\nreturn get_proxy(proxy_cache[typ], obj)\nend\n"
	.align 8
.LC62:
	.ascii	"local ninja = premake.ninja\nlocal p = premake\nlocal soluti"
	.ascii	"on = p.solution\nfunction ninja.generate_solution(sln)\nloca"
	.ascii	"l cc = premake[_OPTIONS.cc]\nlocal platforms = premake.filte"
	.ascii	"rplatforms(sln, cc.platforms, \"Native\")\n_p('# %s solution"
	.ascii	" makefile autogenerated by GENie', premake.action.current()."
	.ascii	"shortname)\n_p('# Type \"make help\" for usage help')\n_p(''"
	.ascii	")\n_p('NINJA=ninja')\n_p('ifndef config')\n_p('  config=%s',"
	.ascii	" _MAKE.esc(premake.getconfigname(sln.configurations[1], plat"
	.ascii	"forms[1], true)))\n_p('endif')\n_p('')\nlocal projects = tab"
	.ascii	"le.extract(sln.projects, \"name\")\ntable.sort(projects)\n_p"
	.ascii	"('')\n_p('.PHONY: all clean help $(PROJECTS)')\n_p('')\n_p('"
	.ascii	"all:')\nif (not sln.messageskip) or (not table.contains(sln."
	.ascii	"messageskip, \"SkipBuildingMessage\")) then\n_p(1, '@echo \""
	.ascii	"==== Building all ($(config)) ====\"')\nend\n_p(1, '@${NINJA"
	.ascii	"} -C ${config} all')\n_p('')\nfor _, prj in ipairs(sln.proje"
	.ascii	"cts) do\nlocal prjx = ninja.get_proxy(\"prj\", prj)\n_p('%s:"
	.ascii	"', _MAKE.esc(prj.name))\nif (not sln.messageskip) or (not ta"
	.ascii	"ble.contains(sln.messageskip, \"SkipBuildingMessage\")) then"
	.ascii	"\n_p(1, '@echo \"==== Building %s ($(config)) ====\"', prj.n"
	.ascii	"ame)\nend\n_p(1, '@${NINJA} -C ${config} %s', prj.name)\n_p("
	.ascii	"'')\nend\n_p('clean:')\n_p(1, '@${NINJA} -C ${config} -t cle"
	.ascii	"an')\n_p('')\n_p('help:')\n_p(1,'@echo \"Usage: make [config"
	.ascii	"=name] [target]\"')\n_p(1,'@echo \"\"')\n_p(1,'@echo \"CONFI"
	.ascii	"GURATIONS:\"')\nlocal cfgpairs = { }\nfor _, platform in ipa"
	.ascii	"irs(platforms) do\nfor _, cfgname in ipairs(sln.configuratio"
	.ascii	"ns) do\n_p(1,'@echo \"   %s\"', premake.getconfigname(cfgnam"
	.ascii	"e, platform, true))\nend\nend\n_p(1,'@echo \"\"')\n_p(1,'@ec"
	.ascii	"ho \"TARGETS:\"')\n_p(1,'@echo \"   all (default)\"')\n_p(1,"
	.ascii	"'@echo \"   clean\"')\nfor _, prj in ipairs(sln.projects) do"
	.ascii	"\n_p(1,'@echo \"   %s\"', prj.name)\nend\n_p(1,'@echo \"\"')"
	.ascii	"\n_p(1,'@echo \"For more information, see https://github.com"
	.ascii	"/bkaradzic/genie\"')\nend\nlocal generate\nlocal function ge"
	.ascii	"tconfigs(sln, name, plat)\nlocal cfgs = {}\nfor prj in solut"
	.ascii	"ion.eachproject(sln) do\nprj = ninja.get_proxy(\"prj\", prj)"
	.ascii	"\nfor cfg in p.eachconfig(prj, plat) do\nif cfg.name == name"
	.ascii	" th"
	.ascii	"en\ntable.insert(cfgs, cfg)\nend\nend\nend\nreturn cfgs\nend"
	.ascii	"\nfunction ninja.generate_ninja_builds(sln)\nlocal cc = prem"
	.ascii	"ake[_OPTIONS.cc]\nsln.getlocation = function(cfg, plat)\nret"
	.ascii	"urn path.join(sln.location, premake.getconfigname(cfg, plat,"
	.ascii	" true))\nend\nlocal platforms = premake.filterplatforms(sln,"
	.ascii	" cc.platforms, \"Native\")\nfor _,plat in ipairs(platforms) "
	.ascii	"do\nfor _,name in ipairs(sln.configurations) do\np.generate("
	.ascii	"sln, ninja.get_solution_name(sln, name, plat), function(sln)"
	.ascii	"\ngenerate(getconfigs(sln, name, plat))\nend)\nend\nend\nend"
	.ascii	"\nfunction ninja.get_solution_name(sln, cfg, plat)\nreturn p"
	.ascii	"ath.join(sln.getlocation(cfg, plat), \"build.ninja\")\nend\n"
	.ascii	"function generate(prjcfgs)\nlocal cfgs          = {}\nlocal "
	.ascii	"cfg_start     = nil\nlocal cfg_first     = nil\nlocal cfg_fi"
	.ascii	"rst_lib = nil\n_p(\"# solution build file\")\n_p(\"# generat"
	.ascii	"ed with GENie ninja\")\n_p(\"\")\n_p(\"# build projects\")\n"
	.ascii	"for _,cfg in ipairs(prjcfgs) do\nlocal key  = cfg.project.na"
	.ascii	"me\nif not cfgs[key] then cfgs[key] = \"\" end\ncfgs[key] = "
	.ascii	"cfg:getoutputfilename() .. \" \"\nif not cfgs[\"all\"] then "
	.ascii	"cfgs[\"all\"] = \"\" end\ncfgs[\"all\"] = cfgs[\"all\"] .. c"
	.ascii	"fg:getoutputfilename() .. \" \"\nif (cfg_start == nil) and ("
	.ascii	"cfg.solution.startproject == key) then\ncfg_start = key\nend"
	.ascii	"\nif (cfg_first == nil) and (cfg.kind == \"ConsoleApp\" or c"
	.ascii	"fg.kind == \"WindowedApp\") then\ncfg_first = key\nend\nif ("
	.ascii	"cfg_first_lib == nil) and (cfg.kind == \"StaticLib\" or cfg."
	.ascii	"kind == \"SharedLib\") then\ncfg_first_lib = key\nend\n_p(\""
	.ascii	"subnin"
	.string	"ja \" .. cfg:getprojectfilename())\nend\n_p(\"\")\n_p(\"# targets\")\nfor cfg, outputs in iter.sortByKeys(cfgs) do\n_p(\"build \" .. cfg .. \": phony \" .. outputs)\nend\n_p(\"\")\n_p(\"# default target\")\n_p(\"default \" .. (cfg_start or cfg_first or cfg_first_lib))\n_p(\"\")\nend\n"
	.align 8
.LC63:
	.ascii	"premake.ninja.cpp = { }\nlocal ninja = premake.ninja\nlocal "
	.ascii	"cpp   = premake.ninja.cpp\nlocal p     = premake\nlocal func"
	.ascii	"tion wrap_ninja_cmd(c)\nif os.is(\"windows\") then\nreturn '"
	.ascii	"cmd /c \"' .. c .. '\"'\nelse\nreturn c\nend\nend\nfunction "
	.ascii	"ninja.generate_cpp(prj)\nlocal pxy = ninja.get_proxy(\"prj\""
	.ascii	", prj)\nlocal tool = premake.gettool(prj)\nlocal platforms ="
	.ascii	" premake.filterplatforms(prj.solution, tool.platforms, \"Nat"
	.ascii	"ive\")\nfor _, platform in ipairs(platforms) do\nfor cfg in "
	.ascii	"p.eachconfig(pxy, platform) do\np.generate(cfg, cfg:getproje"
	.ascii	"ctfilename(), function() cpp.generate_config(prj, cfg) end)\n"
	.ascii	"end\nend\nend\nfunction cpp.generate_config(prj, cfg)\nlocal"
	.ascii	" tool = premake.gettool(prj)\n_p('# Ninja build project file"
	.ascii	" autogenerated by GENie')\n_p('# https://github.com/bkaradzi"
	.ascii	"c/GENie')\n_p(\"\")\n_p(\"ninja_required_version = 1.7\")\n_"
	.ascii	"p(\"\")\nlocal flags = {\ndefines   = ninja.list(tool.getdef"
	.ascii	"ines(cfg.defines)),\nincludes  = ninja.list(table.join(tool."
	.ascii	"getincludedirs(cfg.includedirs), tool.getquoteincludedirs(cf"
	.ascii	"g.userincludedirs), tool.getsystemincludedirs(cfg.systemincl"
	.ascii	"udedirs))),\ncppflags  = ninja.list(tool.getcppflags(cfg)),\n"
	.ascii	"asmflags  = ninja.list(table.join(tool.getcflags(cfg), cfg.b"
	.ascii	"uildoptions, cfg.buildoptions_asm)),\ncflags    = ninja.list"
	.ascii	"(table.join(tool.getcflags(cfg), cfg.buildoptions, cfg.build"
	.ascii	"options_c)),\ncxxflags  = ninja.list(table.join(tool.getcfla"
	.ascii	"gs(cfg), tool.getcxxflags(cfg), cfg.buildoptions, cfg.buildo"
	.ascii	"ptions_cpp)),\nobjcflags = ninja.list(table.join(tool.getcfl"
	.ascii	"ags(cfg), tool.getcxxflags(cfg), cfg.buildoptions, cfg.build"
	.ascii	"options_objc)),\n}\n_p(\"\")\n_p(\"# core rules for \" .. cf"
	.ascii	"g.name)\n_p(\"rule cc\")\n_p(\"  command     = \" .. wrap_ni"
	.ascii	"nja_cmd(tool.cc .. \" $defines $includes $flags -MMD -MF $ou"
	.ascii	"t.d -c -o $out $in\"))\n_p(\"  description = cc $out\")\n_p("
	.ascii	"\"  depfile     = $out.d\")\n_p(\"  deps        = gcc\")\n_p"
	.ascii	"(\"\")\n_p(\"rule cxx\")\n_p(\"  command     = \" .. wrap_ni"
	.ascii	"nja_cmd(tool.cxx .. \" $defines $includes $flags -MMD -MF $o"
	.ascii	"ut.d -c -o $out $in\"))\n_p(\"  description = cxx $out\")\n_"
	.ascii	"p(\"  depfile     = $out.d\")\n_p(\"  deps        "
	.ascii	"= gcc\")\n_p(\"\")\n_p(\"rule ar\")\n_p(\"  command         "
	.ascii	"= \" .. wrap_ninja_cmd(tool.ar .. \" $flags $out @$out.rsp \""
	.ascii	" .. (os.is(\"MacOSX\") and \" 2>&1 > /dev/null | sed -e '/.o"
	.ascii	") has no symbols$$/d'\" or \"\")))\n_p(\"  description     ="
	.ascii	" ar $out\")\n_p(\"  rspfile         = $out.rsp\")\n_p(\"  rs"
	.ascii	"pfile_content = $in $libs\")\n_p(\"\")\nlocal link = iif(cfg"
	.ascii	".language == \"C\", tool.cc, tool.cxx)\n_p(\"rule link\")\nl"
	.ascii	"ocal startgroup = ''\nlocal endgroup = ''\nif (cfg.flags.Lin"
	.ascii	"kSupportCircularDependencies) then\nstartgroup = '-Wl,--star"
	.ascii	"t-group'\nendgroup = '-Wl,--end-group'\nend\n_p(\"  command "
	.ascii	"        = \" .. wrap_ninja_cmd(\"$pre_link \" .. link .. \" "
	.ascii	"-o $out @$out.rsp $all_ldflags $post_build\"))\n_p(\"  descr"
	.ascii	"iption     = link $out\")\n_p(\"  rspfile         = $out.rsp"
	.ascii	"\")\n_p(\"  rspfile_content = $all_outputfiles $walibs\" .. "
	.ascii	"string.format(\"%s $libs %s\", startgroup, endgroup))\n_p(\""
	.ascii	"\")\n_p(\"rule exec\")\n_p(\"  command     = \" .. wrap_ninj"
	.ascii	"a_cmd(\"$command\"))\n_p(\"  description = Run $type command"
	.ascii	"s\")\n_p(\"\")\nif #cfg.prebuildcommands > 0 then\n_p(\"buil"
	.ascii	"d __prebuildcommands_\" .. premake.esc(prj.name) .. \": exec"
	.ascii	"\")\n_p(1, \"command = \" .. wrap_ninja_cmd(\"echo Running p"
	.ascii	"re-build commands && \" .. table.implode(cfg.prebuildcommand"
	.ascii	"s, \"\", \"\", \" && \")))\n_p(1, \"type    = pre-build\")\n"
	.ascii	"_p(\"\")\nend\ncfg.pchheader_full = cfg.pchheader\nfor _, in"
	.ascii	"cdir in ipairs(cfg.includedirs) do\nlocal abspath = path.get"
	.ascii	"absolute(path.join(cfg.project.location, cfg.shortname, incd"
	.ascii	"ir))\nlocal testname = path.join(abspath, cfg.pchheader_full"
	.ascii	")\nif os.isfile(testname) then\ncfg.pchheader_full = path.ge"
	.ascii	"trelative(cfg.location, testname)\nbreak\nend\nend\ncpp.cust"
	.ascii	"ombuildtask(prj, cfg)\ncpp.dependencyRules(prj, cfg)\ncpp.fi"
	.ascii	"le_rules(prj, cfg, flags)\nlocal objfiles = {}\nfor _, file "
	.ascii	"in ipairs(cfg.files) do\nif path.issourcefile(file) then\nta"
	.ascii	"ble.insert(objfiles, cpp.objectname(cfg, file))\nend\nend\n_"
	.ascii	"p('')\ncpp.linker(prj, cfg, objfiles, tool, flags)\n_p(\"\")"
	.ascii	"\nend\nfunction cpp.custombuildtask(prj, cfg)\nlocal cmd_ind"
	.ascii	"ex = 1\nlocal seen_commands = {}\nlocal command_by_name = {}"
	.ascii	"\nlocal command_files = {}\nlo"
	.ascii	"cal prebuildsuffix = #cfg.prebuildcommands > 0 and \"||__pre"
	.ascii	"buildcommands_\" .. premake.esc(prj.name) or \"\"\nfor _, cu"
	.ascii	"stombuildtask in ipairs(prj.custombuildtask or {}) do\nfor _"
	.ascii	", buildtask in ipairs(custombuildtask or {}) do\nfor _, cmd "
	.ascii	"in ipairs(buildtask[4] or {}) do\nlocal num = 1\nfor _, depd"
	.ascii	"ata in ipairs(buildtask[3] or {}) do\ncmd = string.gsub(cmd,"
	.ascii	"\"%$%(\" .. num ..\"%)\", string.format(\"%s \", path.getrel"
	.ascii	"ative(cfg.location, depdata)))\nnum = num + 1\nend\ncmd = st"
	.ascii	"ring.gsub(cmd, '%$%(<%)', '$in')\ncmd = string.gsub(cmd, '%$"
	.ascii	"%(@%)', '$out')\nlocal cmd_name -- shortened command name\ni"
	.ascii	"f seen_commands[cmd] == nil then\nlocal _, _, name = string."
	.ascii	"find(cmd, '([.%w]+)%s')\nname = 'cmd' .. cmd_index .. '_' .."
	.ascii	" string.gsub(name, '[^%w]', '_')\nseen_commands[cmd] = {\nna"
	.ascii	"me = name,\nindex = cmd_index,\n}\ncmd_index = cmd_index + 1"
	.ascii	"\ncmd_name = name\nelse\ncmd_name = seen_commands[cmd].name\n"
	.ascii	"end\nlocal index = seen_commands[cmd].index\nif command_file"
	.ascii	"s[index] == nil then\ncommand_files[index] = {}\nend\nlocal "
	.ascii	"cmd_set = command_files[index]\ntable.insert(cmd_set, {\nbui"
	.ascii	"ldtask[1],\nbuildtask[2],\nbuildtask[3],\nseen_commands[cmd]"
	.ascii	".name,\n})\ncommand_files[index] = cmd_set\ncommand_by_name["
	.ascii	"cmd_name] = cmd\nend\nend\nend\n_p(\"# custom build rules\")"
	.ascii	"\nfor command, details in pairs(seen_commands) do\n_p(\"rule"
	.ascii	" \" .. details.name)\n_p(1, \"command = \" .. wrap_ninja_cmd"
	.ascii	"(command))\nend\nfor cmd_index, cmdsets in ipairs(command_fi"
	.ascii	"les) do\nfor _, cmdset in ipairs(cmdsets) do\nlocal file_in "
	.ascii	"= path.getrelative(cfg.location, cmdset[1])\nlocal file_out "
	.ascii	"= path.getrelative(cfg.location, cmdset[2])\nlocal deps = ''"
	.ascii	"\nfor i, dep in ipairs(cmdset[3]) do\ndeps = deps .. path.ge"
	.ascii	"trelative(cfg.location, dep) .. ' '\nend\n_p(\"build \" .. f"
	.ascii	"ile_out .. ': ' .. cmdset[4] .. ' ' .. file_in .. ' | ' .. d"
	.ascii	"eps .. prebuildsuffix)\n_p(\"\")\nend\nend\nend\nfunction cp"
	.ascii	"p.dependencyRules(prj, cfg)\nlocal extra_deps = {}\nlocal or"
	.ascii	"der_deps = {}\nlocal extra_flags = {}\nfor _, dependency in "
	.ascii	"ipairs(prj.dependency or {}) do\nfor _, dep in ipairs(depend"
	.ascii	"ency or {}) do\nlocal objfilename = cpp.obj"
	.ascii	"ectname(cfg, path.getrelative(prj.location, dep[1]))\nlocal "
	.ascii	"dependency = path.getrelative(cfg.location, dep[2])\nif extr"
	.ascii	"a_deps[objfilename] == nil then\nextra_deps[objfilename] = {"
	.ascii	"}\nend\ntable.insert(extra_deps[objfilename], dependency)\ne"
	.ascii	"nd\nend\nlocal pchfilename = cfg.pchheader_full and cpp.pchn"
	.ascii	"ame(cfg, cfg.pchheader_full) or ''\nfor _, file in ipairs(cf"
	.ascii	"g.files) do\nlocal objfilename = file == cfg.pchheader and c"
	.ascii	"pp.pchname(cfg, file) or cpp.objectname(cfg, file)\nif path."
	.ascii	"issourcefile(file) or file == cfg.pchheader then\nif #cfg.pr"
	.ascii	"ebuildcommands > 0 then\nif order_deps[objfilename] == nil t"
	.ascii	"hen\norder_deps[objfilename] = {}\nend\ntable.insert(order_d"
	.ascii	"eps[objfilename], '__prebuildcommands_' .. premake.esc(prj.n"
	.ascii	"ame))\nend\nend\nif path.issourcefile(file) then\nif cfg.pch"
	.ascii	"header_full and not cfg.flags.NoPCH then\nlocal nopch = tabl"
	.ascii	"e.icontains(prj.nopch, file)\nif not nopch then\nlocal suffi"
	.ascii	"x = path.isobjcfile(file) and '_objc' or ''\nif extra_deps[o"
	.ascii	"bjfilename] == nil then\nextra_deps[objfilename] = {}\nend\n"
	.ascii	"table.insert(extra_deps[objfilename], pchfilename .. suffix "
	.ascii	".. \".gch\")\nif extra_flags[objfilename] == nil then\nextra"
	.ascii	"_flags[objfilename] = {}\nend\ntable.insert(extra_flags[objf"
	.ascii	"ilename], '-include ' .. pchfilename .. suffix)\nend\nend\ne"
	.ascii	"nd\nend\ncfg.extra_deps = extra_deps\ncfg.order_deps = order"
	.ascii	"_deps\ncfg.extra_flags = extra_flags\nend\nfunction cpp.obje"
	.ascii	"ctname(cfg, file)\nreturn path.join(cfg.objectsdir, path.tri"
	.ascii	"mdots(path.removeext(file)) .. \".o\")\nend\nfunction cpp.pc"
	.ascii	"hname(cfg, file)\nreturn path.join(cfg.objectsdir, path.trim"
	.ascii	"dots(file))\nend\nfunction cpp.file_rules(prj,cfg, flags)\n_"
	.ascii	"p(\"# build files\")\nfor _, file in ipairs(cfg.files) do\n_"
	.ascii	"p(\"# FILE: \" .. file)\nif cfg.pchheader_full == file then\n"
	.ascii	"local pchfilename = cpp.pchname(cfg, file)\nlocal extra_deps"
	.ascii	" = #cfg.extra_deps and '| ' .. table.concat(cfg.extra_deps[p"
	.ascii	"chfilename] or {}, ' ') or ''\nlocal order_deps = #cfg.order"
	.ascii	"_deps and '|| ' .. table.concat(cfg.order_deps[pchfilename] "
	.ascii	"or {}, ' ') or ''\nlocal extra_flags = #cfg.extra_flags and "
	.ascii	"' ' .. table.concat(c"
	.ascii	"fg.extra_flags[pchfilename] or {}, ' ') or ''\n_p(\"build \""
	.ascii	" .. pchfilename .. \".gch : cxx \" .. file .. extra_deps .. "
	.ascii	"order_deps)\n_p(1, \"flags    = \" .. flags['cxxflags'] .. e"
	.ascii	"xtra_flags .. iif(prj.language == \"C\", \"-x c-header\", \""
	.ascii	"-x c++-header\"))\n_p(1, \"includes = \" .. flags.includes)\n"
	.ascii	"_p(1, \"defines  = \" .. flags.defines)\n_p(\"build \" .. pc"
	.ascii	"hfilename .. \"_objc.gch : cxx \" .. file .. extra_deps .. o"
	.ascii	"rder_deps)\n_p(1, \"flags    = \" .. flags['objcflags'] .. e"
	.ascii	"xtra_flags .. iif(prj.language == \"C\", \"-x objective-c-he"
	.ascii	"ader\", \"-x objective-c++-header\"))\n_p(1, \"includes = \""
	.ascii	" .. flags.includes)\n_p(1, \"defines  = \" .. flags.defines)"
	.ascii	"\nelseif path.issourcefile(file) then\nlocal objfilename = c"
	.ascii	"pp.objectname(cfg, file)\nlocal extra_deps = #cfg.extra_deps"
	.ascii	" and '| ' .. table.concat(cfg.extra_deps[objfilename] or {},"
	.ascii	" ' ') or ''\nlocal order_deps = #cfg.order_deps and '|| ' .."
	.ascii	" table.concat(cfg.order_deps[objfilename] or {}, ' ') or ''\n"
	.ascii	"local extra_flags = #cfg.extra_flags and ' ' .. table.concat"
	.ascii	"(cfg.extra_flags[objfilename] or {}, ' ') or ''\nlocal cflag"
	.ascii	"s = \"cflags\"\nif path.isobjcfile(file) then\n_p(\"build \""
	.ascii	" .. objfilename .. \": cxx \" .. file .. extra_deps .. order"
	.ascii	"_deps)\ncflags = \"objcflags\"\nelseif path.isasmfile(file) "
	.ascii	"then\n_p(\"build \" .. objfilename .. \": cc \" .. file .. e"
	.ascii	"xtra_deps .. order_deps)\ncflags = \"asmflags\"\nelseif path"
	.ascii	".iscfile(file) and not cfg.options.ForceCPP then\n_p(\"build"
	.ascii	" \" .. objfilename .. \": cc \" .. file .. extra_deps .. ord"
	.ascii	"er_deps)\nelse\n_p(\"build \" .. objfilename .. \": cxx \" ."
	.ascii	". file .. extra_deps .. order_deps)\ncflags = \"cxxflags\"\n"
	.ascii	"end\n_p(1, \"flags    = \" .. flags[cflags] .. extra_flags)\n"
	.ascii	"_p(1, \"includes = \" .. flags.includes)\n_p(1, \"defines  ="
	.ascii	" \" .. flags.defines)\nelseif path.isresourcefile(file) then"
	.ascii	"\nend\nend\n_p(\"\")\nend\nfunction cpp.linker(prj, cfg, obj"
	.ascii	"files, tool)\nlocal all_ldflags    = ninja.list(table.join(t"
	.ascii	"ool.getlibdirflags(cfg), tool.getldflags(cfg), cfg.linkoptio"
	.ascii	"ns))\nlocal prebuildsuffix = #cfg.prebuildcommands > 0 and \""
	.ascii	"||__prebuildcommands\" or \"\"\nlocal libs           = {}\nl"
	.ascii	"oca"
	.ascii	"l walibs         = {}\nlocal lddeps         = {}\nif #cfg.wh"
	.ascii	"olearchive > 0 then\nfor _, linkcfg in ipairs(premake.getlin"
	.ascii	"ks(cfg, \"siblings\", \"object\")) do\nlocal linkpath = path"
	.ascii	".rebase(linkcfg.linktarget.fullpath, linkcfg.location, cfg.l"
	.ascii	"ocation)\ntable.insert(lddeps, linkpath)\nif table.icontains"
	.ascii	"(cfg.wholearchive, linkcfg.project.name) then\ntable.insert("
	.ascii	"walibs, table.concat(tool.wholearchive(linkpath), ' '))\nels"
	.ascii	"e\ntable.insert(libs, linkpath)\nend\nend\nelse\nlddeps = pr"
	.ascii	"emake.getlinks(cfg, \"siblings\", \"fullpath\")\nlibs   = ld"
	.ascii	"deps\nend\nlddeps               = ninja.list(lddeps)\nlibs  "
	.ascii	"               = ninja.list(libs) .. \" \" .. ninja.list(too"
	.ascii	"l.getlinkflags(cfg))\nwalibs               = ninja.list(wali"
	.ascii	"bs)\nlocal function writevars()\n_p(1, \"all_ldflags     = \""
	.ascii	" .. all_ldflags)\n_p(1, \"libs            = \" .. libs)\n_p("
	.ascii	"1, \"walibs          = \" .. walibs)\n_p(1, \"all_outputfile"
	.ascii	"s = \" .. table.concat(objfiles, \" \"))\nif #cfg.prelinkcom"
	.ascii	"mands > 0 then\n_p(1, 'pre_link        = echo Running pre-li"
	.ascii	"nk commands && ' .. table.implode(cfg.prelinkcommands, \"\","
	.ascii	" \"\", \" && \") .. \" && \")\nend\nif #cfg.postbuildcommand"
	.ascii	"s > 0 then\n_p(1, 'post_build      = && echo Running post-bu"
	.ascii	"ild commands && ' .. table.implode(cfg.postbuildcommands, \""
	.ascii	"\", \"\", \" && \"))\nend\nend\nif cfg.kind == \"StaticLib\""
	.ascii	" then\nlocal ar_flags = ninja.list(tool.getarchiveflags(cfg,"
	.ascii	" cfg, false))\n_p(\"# link static lib\")\n_p(\"build \" .. c"
	.ascii	"fg:getoutputfilename() .. \": ar \" .. table.concat(objfiles"
	.ascii	", \" \") .. \" | \" .. lddeps .. prebuildsuffix)\n_p(1, \"fl"
	.ascii	"ags = \" .. ninja.list(tool.getarchiveflags(cfg, cfg, false)"
	.ascii	"))\n_p(1, \"all_outputfiles = \" .. table.concat(objfiles, \""
	.ascii	" \"))\nelseif cfg.kind == \"SharedLib\" or cfg.kind == \"Bun"
	.ascii	"dle\" then\nlocal output = cfg:getoutputfilename()\n_p(\"# l"
	.ascii	"ink shared lib\")\n_p(\"build \" .. output .. \": link \" .."
	.ascii	" table.concat(objfiles, \" \") .. \" | \" .. lddeps .. prebu"
	.ascii	"ildsuffix)\nwritevars()\nelseif (cfg.kind == \"ConsoleApp\")"
	.ascii	" or (cfg.kind == \"WindowedApp\") then\n_p(\"# link executab"
	.ascii	"le\")\n_p(\"build \" .. cfg:getoutputfilename() .. \": link "
	.ascii	"\" .. table.concat"
	.string	"(objfiles, \" \") .. \" | \" .. lddeps .. prebuildsuffix)\nwritevars()\nelse\np.error(\"ninja action doesn't support this kind of target \" .. cfg.kind)\nend\nend\n"
	.align 8
.LC64:
	.ascii	"local ninja = premake.ninja\nlocal swift = {}\nlocal p     ="
	.ascii	" premake\nfunction ninja.generate_swift(prj)\nlocal pxy = ni"
	.ascii	"nja.get_proxy(\"prj\", prj)\nlocal tool = premake.gettool(pr"
	.ascii	"j)\nlocal platforms = premake.filterplatforms(prj.solution, "
	.ascii	"tool.platforms, \"Native\")\nfor _, platform in ipairs(platf"
	.ascii	"orms) do\nfor cfg in p.eachconfig(pxy, platform) do\np.gener"
	.ascii	"ate(cfg, cfg:getprojectfilename(), function() swift.generate"
	.ascii	"_config(prj, cfg) end)\nend\nend\nend\nfunction swift.genera"
	.ascii	"te_config(prj, cfg)\nlocal tool = premake.gettool(prj)\nloca"
	.ascii	"l flags = {\nswiftcflags    = ninja.list(tool.getswiftcflags"
	.ascii	"(cfg)),\nswiftlinkflags = ninja.list(tool.getswiftlinkflags("
	.ascii	"cfg)),\n}\n_p(\"# Swift project build file\")\n_p(\"# genera"
	.ascii	"ted with GENie ninja\")\n_p(\"\")\n_p(\"ninja_required_versi"
	.ascii	"on = 1.7\")\n_p(\"\")\n_p(\"out_dir = %s\", cfg.buildtarget."
	.ascii	"directory)\n_p(\"obj_dir = %s\", path.join(cfg.objectsdir, p"
	.ascii	"rj.name .. \".build\"))\n_p(\"target = $out_dir/%s\", cfg.bu"
	.ascii	"ildtarget.name)\n_p(\"module_name = %s\", prj.name)\n_p(\"mo"
	.ascii	"dule_maps = %s\", ninja.list(tool.getmodulemaps(cfg)))\n_p(\""
	.ascii	"swiftc_flags = %s\", flags.swiftcflags)\n_p(\"swiftlink_flag"
	.ascii	"s = %s\", flags.swiftlinkflags)\n_p(\"ar_flags = %s\", ninja"
	.ascii	".list(tool.getarchiveflags(cfg, cfg, false)))\n_p(\"ld_flags"
	.ascii	" = %s\", ninja.list(tool.getldflags(cfg)))\nif cfg.flags.Sym"
	.ascii	"bols then\n_p(\"symbols = $target.dSYM\")\nsymbols_command ="
	.ascii	" string.format(\"&& %s $target -o $symbols\", tool.dsymutil)"
	.ascii	"\nelse\n_p(\"symbols = \")\nsymbols_command = \"\"\nend\nloc"
	.ascii	"al sdk = tool.get_sdk_path(cfg)\nif sdk then\n_p(\"toolchain"
	.ascii	"_path = %s\", tool.get_toolchain_path(cfg))\n_p(\"sdk_path ="
	.ascii	" %s\", sdk)\n_p(\"platform_path = %s\", tool.get_sdk_platfor"
	.ascii	"m_path(cfg))\n_p(\"sdk = -sdk $sdk_path\")\nelse\n_p(\"sdk_p"
	.ascii	"ath =\")\n_p(\"sdk =\")\nend\n_p(\"\")\n_p(\"# core rules fo"
	.ascii	"r %s\", cfg.name)\n_p(\"rule swiftc\")\n_p(1, \"command = %s"
	.ascii	" -frontend -c $in -enable-objc-interop $sdk -I $out_dir $swi"
	.ascii	"ftc_flags -module-cache-path $out_dir/ModuleCache -D SWIFT_P"
	.ascii	"ACKAGE $module_maps -emit-module-doc-path $out_dir/$module_n"
	.ascii	"ame.swiftdoc -module-name $module_name -emit-module-path $ou"
	.ascii	"t_dir/$module"
	.ascii	"_name.swiftmodule -num-threads 8 $obj_files\", tool.swift)\n"
	.ascii	"_p(1, \"description = compile $out\")\n_p(\"\")\n_p(\"rule s"
	.ascii	"wiftlink\")\n_p(1, \"command = %s $sdk -L $out_dir -o $out $"
	.ascii	"swiftlink_flags $ld_flags $in %s\", tool.swiftc, symbols_com"
	.ascii	"mand)\n_p(1, \"description = create executable\")\n_p(\"\")\n"
	.ascii	"_p(\"rule ar\")\n_p(1, \"command = %s cr $ar_flags $out $in "
	.ascii	"%s\", tool.ar, (os.is(\"MacOSX\") and \" 2>&1 > /dev/null | "
	.ascii	"sed -e '/.o) has no symbols$$/d'\" or \"\"))\n_p(1, \"descri"
	.ascii	"ption = ar $out\")\n_p(\"\")\nlocal objfiles = {}\nfor _, fi"
	.ascii	"le in ipairs(cfg.files) do\nif path.isswiftfile(file) then\n"
	.ascii	"table.insert(objfiles, swift.objectname(cfg, file))\nend\nen"
	.ascii	"d\nswift.file_rules(cfg, objfiles)\n_p(\"\")\nswift.linker(p"
	.ascii	"rj, cfg, objfiles, tool)\nend\nfunction swift.objectname(cfg"
	.ascii	", file)\nreturn path.join(\"$obj_dir\", path.getname(file).."
	.ascii	"\".o\")\nend\nfunction swift.file_rules(cfg, objfiles)\n_p(\""
	.ascii	"build %s: swiftc %s\", ninja.list(objfiles), ninja.list(cfg."
	.ascii	"files))\n_p(1, \"obj_files = %s\", ninja.arglist(\"-o\", obj"
	.ascii	"files))\nend\nfunction swift.linker(prj, cfg, objfiles, tool"
	.ascii	")\nlocal lddeps = ninja.list(premake.getlinks(cfg, \"sibling"
	.ascii	"s\", \"fullpat"
	.string	"h\")) \nif cfg.kind == \"StaticLib\" then\n_p(\"build $target: ar %s | %s \", ninja.list(objfiles), lddeps)\nelse\nlocal lddeps = ninja.list(premake.getlinks(cfg, \"siblings\", \"fullpath\"))\n_p(\"build $target: swiftlink %s | %s\", ninja.list(objfiles), lddeps)\nend\nend\n"
	.align 8
.LC65:
	.ascii	"local ninja = premake.ninja\nlocal swift = { }\nlocal p     "
	.ascii	"= premake\nfunction ninja.generate_swift_incremental(prj)\nl"
	.ascii	"ocal pxy = ninja.get_proxy(\"prj\", prj)\nlocal tool = prema"
	.ascii	"ke.gettool(prj)\nlocal platforms = premake.filterplatforms(p"
	.ascii	"rj.solution, tool.platforms, \"Native\")\nfor _, platform in"
	.ascii	" ipairs(platforms) do\nfor cfg in p.eachconfig(pxy, platform"
	.ascii	") do\np.generate(cfg, cfg:getprojectfilename(), function() s"
	.ascii	"wift.generate_config(prj, cfg) end)\nend\nend\nend\nfunction"
	.ascii	" swift.generate_config(prj, cfg)\nlocal tool = premake.getto"
	.ascii	"ol(prj)\nlocal flags = {\nswiftcflags = ninja.list(table.joi"
	.ascii	"n(tool.getswiftcflags(cfg), cfg.buildoptions_swiftc)),\n}\n_"
	.ascii	"p(\"# Swift project build file\")\n_p(\"# generated with GEN"
	.ascii	"ie ninja\")\n_p(\"\")\n_p(\"ninja_required_version = 1.7\")\n"
	.ascii	"_p(\"\")\n_p(\"out_dir = %s\", cfg.buildtarget.directory)\n_"
	.ascii	"p(\"obj_dir = %s\", path.join(cfg.objectsdir, prj.name .. \""
	.ascii	".build\"))\n_p(\"module_name = %s\", prj.name)\n_p(\"module_"
	.ascii	"maps = %s\", ninja.list(tool.getmodulemaps(cfg)))\n_p(\"swif"
	.ascii	"tc_flags = %s\", flags.swiftcflags)\n_p(\"swiftlink_flags = "
	.ascii	"%s\", flags.swiftlinkflags)\n_p(\"ar_flags = %s\", ninja.lis"
	.ascii	"t(tool.getarchiveflags(cfg, cfg, false)))\nlocal sdk = tool."
	.ascii	"get_sdk_path(cfg)\nif sdk then\n_p(\"toolchain_path = %s\", "
	.ascii	"tool.get_toolchain_path(cfg))\n_p(\"sdk_path = %s\", sdk)\n_"
	.ascii	"p(\"platform_path = %s\", tool.get_sdk_platform_path(cfg))\n"
	.ascii	"_p(\"sdk = -sdk $sdk_path\")\n_p(\"ld_baseflags = -force_loa"
	.ascii	"d $toolchain_path/usr/lib/arc/libarclite_macosx.a -L $out_di"
	.ascii	"r -F $platform_path/Developer/Library/Frameworks -syslibroot"
	.ascii	" $sdk_path -lobjc -lSystem -L $toolchain_path/usr/lib/swift/"
	.ascii	"macosx -rpath $toolchain_path/usr/lib/swift/macosx -macosx_v"
	.ascii	"ersion_min 10.10.0 -no_objc_category_merging\")\nelse\n_p(\""
	.ascii	"sdk_path =\")\n_p(\"sdk =\")\n_p(\"ld_baseflags =\")\nend\n_"
	.ascii	"p(\"\")\n_p(\"# core rules for %s\", cfg.name)\n_p(\"rule sw"
	.ascii	"iftc\")\n_p(1, \"command = %s -frontend -c -primary-file $in"
	.ascii	" $files $target -enable-objc-interop $sdk -I $out_dir -enabl"
	.ascii	"e-testing -module-cache-path $out_dir/ModuleCache -D SWIFT_P"
	.ascii	"ACKAGE $module_maps -emit-module-doc-path $out_doc_name s"
	.ascii	"wiftc_flags -module-name $module_name -emit-module-path $out"
	.ascii	"_module_name -emit-dependencies-path $out.d -emit-reference-"
	.ascii	"dependencies-path $obj_dir/$basename.swiftdeps -o $out\", to"
	.ascii	"ol.swiftc)\n_p(1, \"description = compile $out\")\n_p(\"\")\n"
	.ascii	"_p(\"rule swiftm\")\n_p(1, \"command = %s -frontend -emit-mo"
	.ascii	"dule $in $parse_as_library swiftc_flags $target -enable-objc"
	.ascii	"-interop $sdk -I $out_dir -F $platform_path/Developer/Librar"
	.ascii	"y/Frameworks -enable-testing -module-cache-path $out_dir/Mod"
	.ascii	"uleCache -D SWIFT_PACKAGE $module_maps -emit-module-doc-path"
	.ascii	" $out_dir/$module_name.swiftdoc -module-name $module_name -o"
	.ascii	" $out\", tool.swift)\n_p(1, \"description = generate module\""
	.ascii	")\n_p(\"\")\n_p(\"rule swiftlink\")\n_p(1, \"command = %s $t"
	.ascii	"arget $sdk $swiftlink_flags -L $out_dir -o $out_dir/$module_"
	.ascii	"name -F $platform_path/Developer/Library/Frameworks $in\", t"
	.ascii	"ool.swiftc)\n_p(1, \"description = linking $target\")\n_p(\""
	.ascii	"\")\n_p(\"rule ar\")\n_p(1, \"command = %s cr $ar_flags $out"
	.ascii	" $in $libs %s\", tool.ar, (os.is(\"MacOSX\") and \" 2>&1 > /"
	.ascii	"dev/null | sed -e '/.o) has no symbols$$/d'\" or \"\"))\n_p("
	.ascii	"1, \"description = ar $out\")\n_p(\"\")\n_p(\"rule link\")\n"
	.ascii	"_p(\"  command = %s $in $ld_baseflags $all_ldflags $libs -o "
	.ascii	"$out\", tool.ld)\n_p(\"  description = link $out\")\n_p(\"\""
	.ascii	")\nswift.file_rules(cfg, flags)\nlocal objfiles = {}\nlocal "
	.ascii	"modfiles = {}\nlocal docfiles = {}\nfor _, file in ipairs(cf"
	.ascii	"g.files) do\nif path.issourcefile(file) then\ntable.insert(o"
	.ascii	"bjfiles, swift.objectname(cfg, file))\ntable.insert(modfiles"
	.ascii	", swift.modulename(cfg, file))\ntable.insert(docfiles, swift"
	.ascii	".docname(cfg, file))\nend\nend\n_p(\"\")\nswift.linker(prj, "
	.ascii	"cfg, {objfiles, modfiles, docfiles}, tool, flags)\n_p(\"\")\n"
	.ascii	"end\nfunction swift.objectname(cfg, file)\nreturn path.join("
	.ascii	"\"$obj_dir\", path.getname(file)..\".o\")\nend\nfunction swi"
	.ascii	"ft.modulename(cfg, file)\nreturn path.join(\"$obj_dir\", pat"
	.ascii	"h.getname(file)..\".o.swiftmodule\")\nend\nfunction swift.do"
	.ascii	"cname(cfg, file)\nreturn path.join(\"$obj_dir\", path.getnam"
	.ascii	"e(file)..\".o.swiftdoc\")\nend\nfunction swift.file_rules(cf"
	.ascii	"g, flags)\n_p(\"# build files\")\nlocal sfiles = Set(cfg.fil"
	.ascii	"es)"
	.ascii	"\nfor _, file in ipairs(cfg.files) do\nif path.issourcefile("
	.ascii	"file) then\nif path.isswiftfile(file) then\nlocal objn = swi"
	.ascii	"ft.objectname(cfg, file)\nlocal modn = swift.modulename(cfg,"
	.ascii	" file)\nlocal docn = swift.docname(cfg, file)\n_p(\"build %s"
	.ascii	" | %s %s: swiftc %s\", objn, modn, docn, file)\n_p(1, \"out_"
	.ascii	"module_name = %s\", modn)\n_p(1, \"out_doc_name = %s\", docn"
	.ascii	")\n_p(1, \"files = \".. ninja.list(sfiles - {file}))\nbuild_"
	.ascii	"flags = \"swiftcflags\"\nend\n_p(1, \"flags    = \" .. flags"
	.ascii	"[build_flags])\nelseif path.isresourcefile(file) then\nend\n"
	.ascii	"end\n_p(\"\")\nend\nfunction swift.linker(prj, cfg, depfiles"
	.ascii	", tool)\nlocal all_ldflags = ninja.list(table.join(tool.getl"
	.ascii	"ibdirflags(cfg), tool.getldflags(cfg), cfg.linkoptions))\nlo"
	.ascii	"cal lddeps      = ninja.list(premake.getlinks(cfg, \"sibling"
	.ascii	"s\", \"fullpath\")) \nlocal libs        = lddeps .. \" \" .."
	.ascii	" ninja.list(tool.getlinkflags(cfg))\nlocal function writevar"
	.ascii	"s()\n_p(1, \"all_ldflags = \" .. all_ldflags)\n_p(1, \"libs "
	.ascii	"       = \" .. libs)\nend\nlocal objfiles, modfiles, docfile"
	.ascii	"s = table.unpack(depfiles)\n_p(\"build $out_dir/$module_name"
	.ascii	".swiftmodule | $out_dir/$module_name.swiftdoc: swiftm %s | %"
	.ascii	"s\", table.concat(modfiles, \" \"), table.concat(docfiles, \""
	.ascii	" \"))\n_p(\"\")\nlocal output = cfg:getoutputfilename()\nif "
	.ascii	"cfg.kind == \"StaticLib\" then\nlocal ar_flags = ninja.list("
	.ascii	"tool.getarchiveflags(cfg, cfg, false))\n_p(\"build %s: ar %s"
	.ascii	" | %s $out_dir/$module_name.swiftmodule $out_dir/$module_nam"
	.ascii	"e.swiftdoc\", output, table.concat(objfiles, \" \"), lddeps)"
	.ascii	"\n_p(1, \"flags = %s\", ninja.list(tool.getarchiveflags(cfg,"
	.ascii	" cfg, false)))\nelseif cfg.kind == \"SharedLib\" then\n_p(\""
	.ascii	"build %s : swiftlink %s | %s $out_dir/$module_name.swiftmodu"
	.ascii	"le $out_dir/$module_name.swiftdoc\", output, table.concat(ob"
	.ascii	"jfiles, \" \"), libs)\nwritevars()\nelseif (cfg.kind == \"Co"
	.ascii	"nsoleApp\") or (cfg.ki"
	.string	"nd == \"WindowedApp\") then\n_p(\"build %s: swiftlink %s | %s $out_dir/$module_name.swiftmodule $out_dir/$module_name.swiftdoc\", output, table.concat(objfiles, \" \"), lddeps)\nelse\np.error(\"ninja action doesn't support this kind of target \" .. cfg.kind)\nend\nend\n"
	.align 8
.LC66:
	.ascii	"premake.qbs = { }\nlocal qbs = premake.qbs\nnewaction\n{\ntr"
	.ascii	"igger     = \"qbs\",\nshortname   = \"qbs\",\ndescription = "
	.ascii	"\"Generate QBS build files\",\nmodule      = \"qbs\",\nvalid"
	.ascii	"_kinds     = {\"ConsoleApp\", \"WindowedApp\", \"StaticLib\""
	.ascii	", \"SharedLib\", \"Bundle\"},\nvalid_languages = {\"C\", \"C"
	.ascii	"++\"},\nvalid_tools     = {\ncc = { \"gcc\", \"msc\" },\n},\n"
	.ascii	"onsolution = function(sln)\nio.eol    = \"\\n\"\nio.indent ="
	.ascii	" \"\\t\"\nio.escaper(qbs.esc)\npremake.generate(sln, sln.nam"
	.ascii	"e .. \".creator.qbs\",      qbs.generate_"
	.string	"solution)\nio.indent = \" \"\npremake.generate(sln, sln.name .. \".creator.qbs.user\", qbs.generate_user)\nend,\nonproject = function(prj)\nio.eol    = \"\\n\"\nio.indent = \"\\t\"\nio.escaper(qbs.esc)\npremake.generate(prj, prj.name .. \".qbs\", qbs.generate_project)\nend,\n}\n"
	.align 8
.LC67:
	.string	"function premake.qbs.list(indent, name, table)\nif #table > 0 then\n_p(indent, '%s: [', name)\nfor _, item in ipairs(table) do\n_p(indent+1, '\"%s\",', item:gsub('\"', '\\\\\"'))\nend\n_p(indent+1, ']')\nend\nend"
	.align 8
.LC68:
	.ascii	"local qbs = premake.qbs\nfunction qbs.generate_solution(sln)"
	.ascii	"\n_p('/*')\n_p(' * QBS project file autogenerated by GENie')"
	.ascii	"\n_p(' * https://github.com/bkaradzic/GENie')\n_p(' */')\n_p"
	.ascii	"('')\n_p('import qbs')\n_p('')\n_p(0, 'Project {')\n_p(1, 'r"
	.ascii	"eferences: [')\nfor prj in premake.solution.eachproject(sln)"
	.ascii	" do\n_p(2, '\"' .. prj.name .. '.qbs\",')\nend\n_p(1, ']')\n"
	.ascii	"_p(0, '}')\nend\nlocal function is_app(kind)\nif kind == \"C"
	.ascii	"onsoleApp\" or kind == \"WindowedApp\" then\nreturn true\nen"
	.ascii	"d\nreturn false\nend\nfunction qbs.generate_user(sln)\n_p(0,"
	.ascii	" '<?xml version=\"1.0\" encoding=\"UTF-8\"?>')\n_p(0, '<!DOC"
	.ascii	"TYPE QtCreatorProject>')\n_p(0, '<!-- QBS project file autog"
	.ascii	"enerated by GENie https://github.com/bkaradzic/GENie -->')\n"
	.ascii	"_p(0, '<qtcreator>')\nlocal startProject = 0\nlocal idx = 0\n"
	.ascii	"for prj in premake.solution.eachproject(sln) do\nif is_app(p"
	.ascii	"rj.kind) then\nif sln.startproject == prj.name then\nstartPr"
	.ascii	"oject = idx\nend\nidx = idx + 1\nend\nend\n_p(1, '<data>')\n"
	.ascii	"_p(2, '<variable>ProjectExplorer.Project.Target.0</variable>"
	.ascii	"')\n_p(2, '<valuemap type=\"QVariantMap\">')\n_p(3, '<value "
	.ascii	"type=\"QString\" key=\"ProjectExplorer.ProjectConfiguration."
	.ascii	"DefaultDisplayName\">Desktop</value>')\n_p(3, '<value type=\""
	.ascii	"QString\" key=\"ProjectExplorer.ProjectConfiguration.Display"
	.ascii	"Name\">Desktop</value>')\nlocal qbsguid    = \"\"\nlocal qbs"
	.ascii	"profile = \"\"\nlocal qtcreatordir = \"\"\nif _OS == \"windo"
	.ascii	"ws\" then\nqtcreatordir = path.join(os.getenv(\"APPDATA\"), "
	.ascii	"\"QtProject/qtcreator\")\nelse\nqtcreatordir = path.join(os."
	.ascii	"getenv(\"HOME\"), \".config/QtProject/qtcreator\")\nend\nloc"
	.ascii	"al file = io.open(path.join(qtcreatordir, \"qbs.conf\"))\nif"
	.ascii	" file == nil then\nfile = io.open(path.join(qtcreatordir, \""
	.ascii	"qbs/1.6.0/qbs.conf\"))\nend\nif file ~= nil then\nfor line i"
	.ascii	"n file:lines() do\nif line == \"[org]\" then\nlocal str = 'q"
	.ascii	"t-project\\\\qbs\\\\preferences\\\\qtcreator\\\\kit\\\\%'\nl"
	.ascii	"ocal index = string.len(str)+1\nfor line in file:lines() do\n"
	.ascii	"if index == string.find(line, '7B', index) then\nline = stri"
	.ascii	"ng.sub(line, index+2)\nqbsguid    = string.sub(line, 1, 36)\n"
	.ascii	"qbsprofile = string.sub(line, 41)\nbreak\nend\nend\nelse\nlo"
	.ascii	"cal str = '\\t<key"
	.ascii	">org.qt-project.qbs.preferences.qtcreator.kit.'\nlocal index"
	.ascii	" = string.len(str)+1\nfor line in file:lines() do\nif qbsgui"
	.ascii	"d == \"\" and index == string.find(line, '{', index) then\nl"
	.ascii	"ine = string.sub(line, index+1)\nqbsguid = string.sub(line, "
	.ascii	"1, 36)\nelseif qbsguid ~= \"\" then\nqbsprofile = string.sub"
	.ascii	"(line, 10, 29)\nbreak\nend\nend\nend\nbreak\nend\nio.close(f"
	.ascii	"ile)\nend\n_p(3, '<value type=\"QString\" key=\"ProjectExplo"
	.ascii	"rer.ProjectConfiguration.Id\">{%s}</value>', qbsguid)\n_p(3,"
	.ascii	" '<value type=\"int\" key=\"ProjectExplorer.Target.ActiveBui"
	.ascii	"ldConfiguration\">0</value>')\n_p(3, '<value type=\"int\" ke"
	.ascii	"y=\"ProjectExplorer.Target.ActiveDeployConfiguration\">0</va"
	.ascii	"lue>')\n_p(3, '<value type=\"int\" key=\"ProjectExplorer.Tar"
	.ascii	"get.ActiveRunConfiguration\">%d</value>', startProject)\nidx"
	.ascii	" = 0\nfor _, cfgname in ipairs(sln.configurations) do\n_p(3,"
	.ascii	" '<valuemap type=\"QVariantMap\" key=\"ProjectExplorer.Targe"
	.ascii	"t.BuildConfiguration.%d\">', idx)\n_p(4, '<value type=\"QStr"
	.ascii	"ing\" key=\"ProjectExplorer.BuildConfiguration.BuildDirector"
	.ascii	"y\">build</value>')\n_p(4, '<valuemap type=\"QVariantMap\" k"
	.ascii	"ey=\"ProjectExplorer.BuildConfiguration.BuildStepList.0\">')"
	.ascii	"\n_p(5, '<valuemap type=\"QVariantMap\" key=\"ProjectExplore"
	.ascii	"r.BuildStepList.Step.0\">')\n_p(6, '<value type=\"bool\" key"
	.ascii	"=\"ProjectExplorer.BuildStep.Enabled\">true</value>')\n_p(6,"
	.ascii	" '<value type=\"QString\" key=\"ProjectExplorer.ProjectConfi"
	.ascii	"guration.DefaultDisplayName\"></value>')\n_p(6, '<value type"
	.ascii	"=\"QString\" key=\"ProjectExplorer.ProjectConfiguration.Disp"
	.ascii	"layName\">Qbs Build</value>')\n_p(6, '<value type=\"QString\""
	.ascii	" key=\"ProjectExplorer.ProjectConfiguration.Id\">Qbs.BuildSt"
	.ascii	"ep</value>')\n_p(6, '<value type=\"bool\" key=\"Qbs.CleanIns"
	.ascii	"tallRoot\">false</value>')\n_p(6, '<valuemap type=\"QVariant"
	.ascii	"Map\" key=\"Qbs.Configuration\">')\n_p(7, '<value type=\"QSt"
	.ascii	"ring\" key=\"qbs.buildVariant\">%s</value>', cfgname:lower()"
	.ascii	")\n_p(7, '<value type=\"QString\" key=\"qbs.profile\">%s</va"
	.ascii	"lue>', qbsprofile)\n_p(6, '</valuemap>')\n_p(5, '</valuemap>"
	.ascii	"')\n_p(5, '<value type=\"int\" key=\"ProjectExplorer.BuildSt"
	.ascii	"epList.StepsCount\">1</value>')\n_p(5, '<value type=\"QStrin"
	.ascii	"g\" key=\"P"
	.ascii	"rojectExplorer.ProjectConfiguration.DefaultDisplayName\">Bui"
	.ascii	"ld</value>')\n_p(5, '<value type=\"QString\" key=\"ProjectEx"
	.ascii	"plorer.ProjectConfiguration.DisplayName\"></value>')\n_p(5, "
	.ascii	"'<value type=\"QString\" key=\"ProjectExplorer.ProjectConfig"
	.ascii	"uration.Id\">ProjectExplorer.BuildSteps.Build</value>')\n_p("
	.ascii	"4, '</valuemap>')\n_p(4, '<valuemap type=\"QVariantMap\" key"
	.ascii	"=\"ProjectExplorer.BuildConfiguration.BuildStepList.1\">')\n"
	.ascii	"_p(5, '<valuemap type=\"QVariantMap\" key=\"ProjectExplorer."
	.ascii	"BuildStepList.Step.0\">')\n_p(6, '<value type=\"bool\" key=\""
	.ascii	"ProjectExplorer.BuildStep.Enabled\">true</value>')\n_p(6, '<"
	.ascii	"value type=\"QString\" key=\"ProjectExplorer.ProjectConfigur"
	.ascii	"ation.DefaultDisplayName\"></value>')\n_p(6, '<value type=\""
	.ascii	"QString\" key=\"ProjectExplorer.ProjectConfiguration.Display"
	.ascii	"Name\">Qbs Clean</value>')\n_p(6, '<value type=\"QString\" k"
	.ascii	"ey=\"ProjectExplorer.ProjectConfiguration.Id\">Qbs.CleanStep"
	.ascii	"</value>')\n_p(6, '<value type=\"bool\" key=\"Qbs.CleanAll\""
	.ascii	">true</value>')\n_p(6, '<value type=\"bool\" key=\"Qbs.DryKe"
	.ascii	"epGoing\">false</value>')\n_p(6, '<value type=\"bool\" key=\""
	.ascii	"Qbs.DryRun\">false</value>')\n_p(5, '</valuemap>')\n_p(5, '<"
	.ascii	"value type=\"int\" key=\"ProjectExplorer.BuildStepList.Steps"
	.ascii	"Count\">1</value>')\n_p(5, '<value type=\"QString\" key=\"Pr"
	.ascii	"ojectExplorer.ProjectConfiguration.DefaultDisplayName\">Clea"
	.ascii	"n</value>')\n_p(5, '<value type=\"QString\" key=\"ProjectExp"
	.ascii	"lorer.ProjectConfiguration.DisplayName\"></value>')\n_p(5, '"
	.ascii	"<value type=\"QString\" key=\"ProjectExplorer.ProjectConfigu"
	.ascii	"ration.Id\">ProjectExplorer.BuildSteps.Clean</value>')\n_p(4"
	.ascii	", '</valuemap>')\n_p(4, '<value type=\"int\" key=\"ProjectEx"
	.ascii	"plorer.BuildConfiguration.BuildStepListCount\">2</value>')\n"
	.ascii	"_p(4, '<value type=\"bool\" key=\"ProjectExplorer.BuildConfi"
	.ascii	"guration.ClearSystemEnvironment\">false</value>')\n_p(4, '<v"
	.ascii	"aluelist type=\"QVariantList\" key=\"ProjectExplorer.BuildCo"
	.ascii	"nfiguration.UserEnvironmentChanges\"/>')\n_p(4, '<value type"
	.ascii	"=\"QString\" key=\"ProjectExplorer.ProjectConfiguration.Defa"
	.ascii	"ultDisplayName\">%s</value>', cfgname)\n_p(4, '<value type=\""
	.ascii	"QString\" key=\"ProjectExplorer.ProjectConfiguration.Display"
	.ascii	"Name\"></value>')\n_p(4, '<value type=\"QString\" key=\"Proj"
	.ascii	"ectExplorer.ProjectConfiguration.Id\">Qbs.QbsBuildConfigurat"
	.ascii	"ion</value>')\n_p(3, '</valuemap>')\nidx = idx + 1\nend\n_p("
	.ascii	"3, '<value type=\"int\" key=\"ProjectExplorer.Target.BuildCo"
	.ascii	"nfigurationCount\">%d</value>', idx)\n_p(3, '<valuemap type="
	.ascii	"\"QVariantMap\" key=\"ProjectExplorer.Target.DeployConfigura"
	.ascii	"tion.0\">')\n_p(4, '<valuemap type=\"QVariantMap\" key=\"Pro"
	.ascii	"jectExplorer.BuildConfiguration.BuildStepList.0\">')\n_p(5, "
	.ascii	"'<value type=\"int\" key=\"ProjectExplorer.BuildStepList.Ste"
	.ascii	"psCount\">0</value>')\n_p(5, '<value type=\"QString\" key=\""
	.ascii	"ProjectExplorer.ProjectConfiguration.DefaultDisplayName\">De"
	.ascii	"ploy</value>')\n_p(5, '<value type=\"QString\" key=\"Project"
	.ascii	"Explorer.ProjectConfiguration.DisplayName\"></value>')\n_p(5"
	.ascii	", '<value type=\"QString\" key=\"ProjectExplorer.ProjectConf"
	.ascii	"iguration.Id\">ProjectExplorer.BuildSteps.Deploy</value>')\n"
	.ascii	"_p(4, '</valuemap>')\n_p(4, '<value type=\"int\" key=\"Proje"
	.ascii	"ctExplorer.BuildConfiguration.BuildStepListCount\">1</value>"
	.ascii	"')\n_p(4, '<value type=\"QString\" key=\"ProjectExplorer.Pro"
	.ascii	"jectConfiguration.DefaultDisplayName\">Deploy locally</value"
	.ascii	">')\n_p(4, '<value type=\"QString\" key=\"ProjectExplorer.Pr"
	.ascii	"ojectConfiguration.DisplayName\">Qbs Install</value>')\n_p(4"
	.ascii	", '<value type=\"QString\" key=\"ProjectExplorer.ProjectConf"
	.ascii	"iguration.Id\">Qbs.Deploy</value>')\n_p(3, '</valuemap>')\n_"
	.ascii	"p(3, '<value type=\"int\" key=\"ProjectExplorer.Target.Deplo"
	.ascii	"yConfigurationCount\">1</value>')\nidx = 0\nfor prj in prema"
	.ascii	"ke.solution.eachproject(sln) do\nif is_app(prj.kind) then\n_"
	.ascii	"p(3, '<valuemap type=\"QVariantMap\" key=\"ProjectExplorer.T"
	.ascii	"arget.RunConfiguration.%d\">', idx)\nif idx == startProject "
	.ascii	"then\n_p(4, '<value type=\"int\" key=\"PE.EnvironmentAspect."
	.ascii	"Base\">2</value>')\nelse\n_p(4, '<value type=\"int\" key=\"P"
	.ascii	"E.EnvironmentAspect.Base\">-1</value>')\nend\n_p(4, '<valuel"
	.ascii	"ist type=\"QVariantList\" key=\"PE.EnvironmentAspect.Changes"
	.ascii	"\"/>')\n_p(4, '<value type=\"QString\" key=\"ProjectExplorer"
	.ascii	".ProjectConfiguration.DefaultDisplayName\">%s</value>', prj."
	.ascii	"name)\n_p(4, '<value type=\"QString\" key=\"ProjectExplorer."
	.ascii	"Projec"
	.ascii	"tConfiguration.DisplayName\"></value>')\n_p(4, '<value type="
	.ascii	"\"QString\" key=\"ProjectExplorer.ProjectConfiguration.Id\">"
	.ascii	"Qbs.RunConfiguration:%s.%s---Qbs.RC.NameSeparator---%s</valu"
	.ascii	"e>', prj.name, qbsprofile, prj.name)\n_p(4, '<value type=\"Q"
	.ascii	"String\" key=\"Qbs.RunConfiguration.CommandLineArguments\"><"
	.ascii	"/value>')\nlocal cfg = premake.getconfig(prj, nil, nil)\nif "
	.ascii	"cfg.debugdir ~= nil then\n_p(4, '<value type=\"QString\" key"
	.ascii	"=\"Qbs.RunConfiguration.WorkingDirectory\">%s</value>', cfg."
	.ascii	"debugdir)\nelse\n_p(4, '<value type=\"QString\" key=\"Qbs.Ru"
	.ascii	"nConfiguration.WorkingDirectory\"></value>')\nend\n_p(3, '</"
	.ascii	"valuemap>')\nidx = idx + 1\nend\nend\n_p(3, '<value type=\"i"
	.ascii	"nt\" key=\"ProjectExplorer.Target.RunConfigurationCount\">%d"
	.ascii	"</value>', idx)\n_p(2, '</valuemap>')\n_p(1, '</data>')\n_p("
	.ascii	"1, '<data>')"
	.string	"\n_p(2, '<variable>ProjectExplorer.Project.TargetCount</variable>')\n_p(2, '<value type=\"int\">1</value>')\n_p(1, '</data>')\n_p(1, '<data>')\n_p(2, '<variable>Version</variable>')\n_p(2, '<value type=\"int\">18</value>')\n_p(1, '</data>')\n_p(0, '</qtcreator>')\nend\n"
	.align 8
.LC69:
	.ascii	"local qbs = premake.qbs\nlocal function is_excluded(prj, cfg"
	.ascii	", file)\nif table.icontains(prj.excludes, file) then\nreturn"
	.ascii	" true\nend\nif table.icontains(cfg.excludes, file) then\nret"
	.ascii	"urn true\nend\nreturn false\nend\nfunction qbs.generate_proj"
	.ascii	"ect(prj)\nlocal indent = 0\n_p(indent, '/*')\n_p(indent, ' *"
	.ascii	" QBS project file autogenerated by GENie')\n_p(indent, ' * h"
	.ascii	"ttps://github.com/bkaradzic/GENie')\n_p(indent, ' */')\n_p(i"
	.ascii	"ndent, '')\n_p(indent, 'import qbs 1.0')\n_p(indent, '')\nif"
	.ascii	" prj.kind == \"ConsoleApp\" then\n_p(indent, 'CppApplication"
	.ascii	" {')\n_p(indent + 1, 'consoleApplication: true')\nelseif prj"
	.ascii	".kind == \"WindowedApp\" then\n_p(indent, 'CppApplication {'"
	.ascii	")\n_p(indent + 1, 'consoleApplication: false')\nelseif prj.k"
	.ascii	"ind == \"StaticLib\" then\n_p(indent, 'StaticLibrary {')\nel"
	.ascii	"seif prj.kind == \"SharedLib\" then\n_p(indent, 'DynamicLibr"
	.ascii	"ary {')\nend\nindent = indent + 1\n_p(indent, 'name: \"' .. "
	.ascii	"prj.name .. '\"')\n_p(indent, 'Depends { name: \"cpp\" }')\n"
	.ascii	"local deps = premake.getdependencies(prj)\nif #deps > 0 then"
	.ascii	"\nfor _, depprj in ipairs(deps) do\n_p(indent, 'Depends { na"
	.ascii	"me: \"%s\" }', depprj.name)\nend\nend\nlocal cc = premake.ge"
	.ascii	"ttool(prj)\nlocal platforms = premake.filterplatforms(prj.so"
	.ascii	"lution, cc.platforms, \"Native\")\nfor _, platform in ipairs"
	.ascii	"(platforms) do\nfor cfg in premake.eachconfig(prj, platform)"
	.ascii	" do\nif cfg.platform ~= \"Native\" then\n_p('');\n_p(indent,"
	.ascii	" 'Properties { /* %s */', premake.getconfigname(cfg.name, cf"
	.ascii	"g.platform, true))\nindent = indent + 1\nlocal arch = \"\"\n"
	.ascii	"local linkerFlags = cfg.linkoptions\nif cfg.platform == \"x3"
	.ascii	"2\" then\narch = '&& qbs.architecture == \"x86\"'\nelseif cf"
	.ascii	"g.platform == \"x64\" then\narch = '&& qbs.architecture == \""
	.ascii	"x86_64\"'\nend\nif cfg.name == \"Debug\" then\n_p(indent, 'c"
	.ascii	"ondition: qbs.buildVariant == \"debug\" %s', arch)\nelse\n_p"
	.ascii	"(indent, 'condition: qbs.buildVariant == \"release\" %s', ar"
	.ascii	"ch)\nend\n_p(indent, 'targetName: \"%s\"', cfg.buildtarget.b"
	.ascii	"asename)\n_p(indent, 'destinationDirectory: \"%s\"', path.ge"
	.ascii	"tabsolute('projects/qbs/' .. cfg.buildtarget.directory) .. '"
	.ascii	"/')\nif cfg.flags.Cpp11 then\n_p(indent, 'cpp.cxxLanguageVe"
	.ascii	"rsion: \"c++11\"')\nelseif cfg.flags.Cpp14 then\n_p(indent, "
	.ascii	"'cpp.cxxLanguageVersion: \"c++14\"')\nelseif cfg.flags.Cpp17"
	.ascii	" then\n_p(indent, 'cpp.cxxLanguageVersion: \"c++17\"')\nelse"
	.ascii	"\n_p(indent, 'cpp.cxxLanguageVersion: \"c++98\"')\nend\nif o"
	.ascii	"s.is(\"windows\") then\nif not cfg.flags.WinMain and (cfg.ki"
	.ascii	"nd == 'ConsoleApp' or cfg.kind == 'WindowedApp') then\nif cf"
	.ascii	"g.flags.Unicode then\n_p(indent, 'cpp.entryPoint: \"wmainCRT"
	.ascii	"Startup\"')\nelse\n_p(indent, 'cpp.entryPoint: \"mainCRTStar"
	.ascii	"tup\"')\nend\nend\nend\nqbs.list(\n  indent\n, \"cpp.commonC"
	.ascii	"ompilerFlags\"\n, cfg.buildoptions\n)\nqbs.list(\n  indent\n"
	.ascii	", \"cpp.cFlags\"\n, cfg.buildoptions_c\n)\nqbs.list(\n  inde"
	.ascii	"nt\n, \"cpp.cxxFlags\"\n, cfg.buildoptions_cpp\n)\nqbs.list("
	.ascii	"\n  indent\n, \"cpp.objcFlags\"\n, cfg.buildoptions_objc\n)\n"
	.ascii	"qbs.list(\n  indent\n, \"cpp.objcxxFlags\"\n, cfg.buildoptio"
	.ascii	"ns_objc\n)\nif cfg.flags.StaticRuntime then\n_p(indent, 'cpp"
	.ascii	".runtimeLibrary: \"static\"')\nelse\n_p(indent, 'cpp.runtime"
	.ascii	"Library: \"dynamic\"')\nend\nif cfg.flags.PedanticWarnings\n"
	.ascii	"or cfg.flags.ExtraWarnings\nthen\n_p(indent, 'cpp.warningLev"
	.ascii	"el: \"all\"')\nelse\n_p(indent, 'cpp.warningLevel: \"default"
	.ascii	"\"')\nend\nif cfg.flags.FatalWarnings then\n_p(indent, 'cpp."
	.ascii	"treatWarningsAsErrors: true')\nelse\n_p(indent, 'cpp.treatWa"
	.ascii	"rningsAsErrors: false')\nend\nif cfg.flags.NoRTTI then\n_p(i"
	.ascii	"ndent, 'cpp.enableRtti: false')\nelse\n_p(indent, 'cpp.enabl"
	.ascii	"eRtti: true')\nend\nif cfg.flags.NoExceptions then\n_p(inden"
	.ascii	"t, 'cpp.enableExceptions: false')\nelse\n_p(indent, 'cpp.ena"
	.ascii	"bleExceptions: true')\nend\nif cfg.flags.Symbols then\n_p(in"
	.ascii	"dent, 'cpp.debugInformation: true')\nelse\n_p(indent, 'cpp.d"
	.ascii	"ebugInformation: false')\nend\nif cfg.flags.Unicode then\n_p"
	.ascii	"(indent, 'cpp.windowsApiCharacterSet: \"unicode\"')\nelse\n_"
	.ascii	"p(indent, 'cpp.windowsApiCharacterSet: \"\"')\nend\nif not c"
	.ascii	"fg.pchheader or cfg.flags.NoPCH then\n_p(indent, 'cpp.usePre"
	.ascii	"compiledHeader: false')\nelse\n_p(indent, 'cpp.usePrecompile"
	.ascii	"dHeader: true')\n_p(indent, 'Group {')\n_p(indent+1, 'name: "
	.ascii	"\"PCH\"')\n_p(indent+1, 'files: [\"' .. cfg.pchheader .. '\""
	.ascii	"]')\n_p(indent+1, 'fileTags: [\"cpp_pch_src\"]')\n_p(indent,"
	.ascii	" '}')\nend\nfor _, value in ip"
	.ascii	"airs(cfg.flags) do\nif (value == \"Optimize\") then\nelseif "
	.ascii	"(value == \"OptimizeSize\") then\n_p(indent, 'cpp.optimizati"
	.ascii	"on: \"small\"')\nelseif (value == \"OptimizeSpeed\") then\n_"
	.ascii	"p(indent, 'cpp.optimization: \"fast\"')\nend\nend\nqbs.list("
	.ascii	"\n  indent\n, \"cpp.defines\"\n, cfg.defines\n)\nlocal sorte"
	.ascii	"dincdirs = table.join(cfg.userincludedirs, cfg.includedirs, "
	.ascii	"cfg.systemincludedirs)\ntable.sort(sortedincdirs, includesor"
	.ascii	"t)\nqbs.list(\n  indent\n, \"cpp.includePaths\"\n, sortedinc"
	.ascii	"dirs\n)\nqbs.list(\n  indent\n, \"cpp.staticLibraries\"\n, p"
	.ascii	"remake.getlinks(cfg, \"system\", \"fullpath\")\n)\nqbs.list("
	.ascii	"\n  indent\n, \"cpp.libraryPaths\"\n, cfg.libdirs\n)\nqbs.li"
	.ascii	"st(\n  indent\n, \"cpp.linkerFlags\"\n, linkerFlags\n)\ntabl"
	.ascii	"e.sort(prj.files)\nif #prj.files > 0 then\n_p(indent, 'files"
	.ascii	": [')\nfor _, file in ipairs(prj.files) do\nif path.iscfile("
	.ascii	"file)\nor path.iscppfile(file)\nor path.isobjcfile(file)\nor"
	.ascii	" path.isresourcefile(file)\nor path.iscppheader(file) then\n"
	.ascii	"if not is_excluded(prj, cfg, file) then\n_p(indent+1, '\"%s\""
	.ascii	",', file)\nend\nend\nend\n_p(indent+1, ']')\nend\nif #prj.ex"
	.ascii	"cludes > 0 then\n_p(indent, 'exclu"
	.string	"deFiles: [')\ntable.sort(prj.excludes)\nfor _, file in ipairs(prj.excludes) do\nif path.issourcefile(file) then\n_p(indent+1, '\"%s\",', file)\nend\nend\n_p(indent+1, ']')\nend\nindent = indent - 1\n_p(indent, '}');\nend\nend\nend\nindent = indent - 1\n_p(indent, '}')\nend\n"
	.align 8
.LC70:
	.ascii	"_WORKING_DIR        = os.getcwd()\nlocal function injectplat"
	.ascii	"form(platform)\nif not platform then return true end\nplatfo"
	.ascii	"rm = premake.checkvalue(platform, premake.fields.platforms.a"
	.ascii	"llowed)\nfor sln in premake.solution.each() do\nlocal platfo"
	.ascii	"rms = sln.platforms or { }\nif #platforms == 0 then\ntable.i"
	.ascii	"nsert(platforms, \"Native\")\nend\nif not table.contains(pla"
	.ascii	"tforms, \"Native\") then\nreturn false, sln.name .. \" does "
	.ascii	"not target native platform\\nNative platform settings are re"
	.ascii	"quired for the --platform feature.\"\nend\nif not table.cont"
	.ascii	"ains(platforms, platform) then\ntable.insert(platforms, plat"
	.ascii	"form)\nend\nsln.platforms = platforms\nend\nreturn true\nend"
	.ascii	"\nfunction _premake_main(scriptpath)\nif (scriptpath) then\n"
	.ascii	"local scripts  = dofile(scriptpath .. \"/_manifest.lua\")\nf"
	.ascii	"or _,v in ipairs(scripts) do\ndofile(scriptpath .. \"/\" .. "
	.ascii	"v)\nend\nend\nlocal profiler = newProfiler()\nif (nil ~= _OP"
	.ascii	"TIONS[\"debug-profiler\"]) then\nprofiler:start()\nend\n_PRE"
	.ascii	"MAKE_COMMAND = path.getabsolute(_PREMAKE_COMMAND)\npremake.a"
	.ascii	"ction.set(_ACTION)\nmath.randomseed(os.time())\nif (nil ~= _"
	.ascii	"OPTIONS[\"file\"]) then\nlocal fname = _OPTIONS[\"file\"]\ni"
	.ascii	"f (os.isfile(fname)) then\ndofile(fname)\nelse\nerror(\"No g"
	.ascii	"enie script '\" .. fname .. \"' found!\", 2)\nend\nelse\nloc"
	.ascii	"al dir, name = premake.findDefaultScript(path.getabsolute(\""
	.ascii	"./\"))\nif dir ~= nil then\nlocal cwd = os.getcwd()\nos.chdi"
	.ascii	"r(dir)\ndofile(name)\nos.chdir(cwd)\nend\nend\nif (_OPTIONS["
	.ascii	"\"version\"] or _OPTIONS[\"help\"] or not _ACTION) then\npri"
	.ascii	"ntf(\"GENie - Project generator tool %s\", _GENIE_VERSION_ST"
	.ascii	"R)\nprintf(\"https://github.com/bkaradzic/GENie\")\nif (not "
	.ascii	"_OPTIONS[\"version\"]) then\npremake.showhelp()\nend\nreturn"
	.ascii	" 1\nend\naction = premake.action.current()\nif (not action) "
	.ascii	"then\nerror(\"Error: no such action '\" .. _ACTION .. \"'\","
	.ascii	" 0)\nend\nok, err = premake.option.validate(_OPTIONS)\nif (n"
	.ascii	"ot ok) then error(\"Error: \" .. err, 0) end\nok, err = prem"
	.ascii	"ake.checktools()\nif (not ok) then error(\"Error: \" .. err,"
	.ascii	" 0) end\nok, err = injectplatform(_OPTIONS[\"platform\"])\ni"
	.ascii	"f (not ok) then error(\"Error: \" .. err, 0) end\nprint(\"Bu"
	.ascii	"ilding config"
	.ascii	"urations...\")\npremake.bake.buildconfigs()\nok, err = prema"
	.ascii	"ke.checkprojects()\nif (not ok) then error(\"Error: \" .. er"
	.ascii	"r, 0) end\npremake.stats = { }\npremake.stats.num_generated "
	.ascii	"= 0\npremake.stats.num_skipped   = 0\nprintf(\"Running actio"
	.ascii	"n '%s'...\", action.trigger)\npremake.action.call(action.tri"
	.ascii	"gger)\nif (nil ~= _OPTIONS[\"debug-profiler\"]) then\nprofil"
	.ascii	"er:stop()\nlocal filePath = path.getabsolute(\"GENie-profile"
	.ascii	".txt\")\nprint(\"Writing debug-profile report to ''"
	.string	"\" .. filePath .. \"'.\")\nlocal outfile = io.open(filePath, \"w+\")\nprofiler:report(outfile, true)\noutfile:close()\nend\nprintf(\"Done. Generated %d/%d projects.\"\n, premake.stats.num_generated\n, premake.stats.num_generated+premake.stats.num_skipped\n)\nreturn 0\nend\n"
	.section	.data.rel.local,"aw"
	.align 32
	.type	builtin_scripts, @object
	.size	builtin_scripts, 576
builtin_scripts:
	.quad	.LC0
	.quad	.LC1
	.quad	.LC2
	.quad	.LC3
	.quad	.LC4
	.quad	.LC5
	.quad	.LC6
	.quad	.LC7
	.quad	.LC8
	.quad	.LC9
	.quad	.LC10
	.quad	.LC11
	.quad	.LC12
	.quad	.LC13
	.quad	.LC14
	.quad	.LC15
	.quad	.LC16
	.quad	.LC17
	.quad	.LC18
	.quad	.LC19
	.quad	.LC20
	.quad	.LC21
	.quad	.LC22
	.quad	.LC23
	.quad	.LC24
	.quad	.LC25
	.quad	.LC26
	.quad	.LC27
	.quad	.LC28
	.quad	.LC29
	.quad	.LC30
	.quad	.LC31
	.quad	.LC32
	.quad	.LC33
	.quad	.LC34
	.quad	.LC35
	.quad	.LC36
	.quad	.LC37
	.quad	.LC38
	.quad	.LC39
	.quad	.LC40
	.quad	.LC41
	.quad	.LC42
	.quad	.LC43
	.quad	.LC44
	.quad	.LC45
	.quad	.LC46
	.quad	.LC47
	.quad	.LC48
	.quad	.LC49
	.quad	.LC50
	.quad	.LC51
	.quad	.LC52
	.quad	.LC53
	.quad	.LC54
	.quad	.LC55
	.quad	.LC56
	.quad	.LC57
	.quad	.LC58
	.quad	.LC59
	.quad	.LC60
	.quad	.LC61
	.quad	.LC62
	.quad	.LC63
	.quad	.LC64
	.quad	.LC65
	.quad	.LC66
	.quad	.LC67
	.quad	.LC68
	.quad	.LC69
	.quad	.LC70
	.quad	0
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"45450472.c"
	.text
	.global	builtin_scripts
	.section	.rodata
	.align	2
.LC0:
	.ascii	"function os.executef(cmd, ...)\012local arg={...}\012"
	.ascii	"cmd = string.format(cmd, table.unpack(arg))\012retu"
	.ascii	"rn os.execute(cmd)\012end\012local function parse_l"
	.ascii	"d_so_conf(conf_file)\012local first, last\012local "
	.ascii	"dirs = { }\012local file = io.open(conf_file)\012if"
	.ascii	" file == nil then\012return dirs\012end\012for line"
	.ascii	" in file:lines() do\012first = line:find(\"#\", 1, "
	.ascii	"true)\012if first ~= nil then\012line = line:sub(1,"
	.ascii	" first - 1)\012end\012if line ~= \"\" then\012first"
	.ascii	", last = line:find(\"include%s+\")\012if first ~= n"
	.ascii	"il then\012local include_glob = line:sub(last + 1)\012"
	.ascii	"local includes = os.matchfiles(include_glob)\012for"
	.ascii	" _, v in ipairs(includes) do\012dirs = table.join(d"
	.ascii	"irs, parse_ld_so_conf(v))\012end\012else\012table.i"
	.ascii	"nsert(dirs, line)\012end\012end\012end\012return di"
	.ascii	"rs\012end\012function os.findlib(libname)\012local "
	.ascii	"path, formats\012if os.is(\"windows\") then\012form"
	.ascii	"ats = { \"%s.dll\", \"%s\" }\012path = os.getenv(\""
	.ascii	"PATH\")\012else\012if os.is(\"macosx\") then\012for"
	.ascii	"mats = { \"lib%s.dylib\", \"%s.dylib\" }\012path = "
	.ascii	"os.getenv(\"DYLD_LIBRARY_PATH\")\012else\012formats"
	.ascii	" = { \"lib%s.so\", \"%s.so\" }\012path = os.getenv("
	.ascii	"\"LD_LIBRARY_PATH\") or \"\"\012for _, v in ipairs("
	.ascii	"parse_ld_so_conf(\"/etc/ld.so.conf\")) do\012path ="
	.ascii	" path .. \":\" .. v\012end\012end\012table.insert(f"
	.ascii	"ormats, \"%s\")\012path = path or \"\"\012if os.is6"
	.ascii	"4bit() then\012path = path .. \":/lib64:/usr/lib64/"
	.ascii	":usr/local/lib64\"\012end\012path = path .. \":/lib"
	.ascii	":/usr/lib:/usr/local/lib\"\012end\012for _, fmt in "
	.ascii	"ipairs(formats) do\012local name = string.format(fm"
	.ascii	"t, libname)\012local result = os.pathsearch(name, p"
	.ascii	"ath)\012if result then return result end\012end\012"
	.ascii	"end\012function os.get()\012return _OPTIONS.os or _"
	.ascii	"OS\012end\012function os.is(id)\012return (os.get()"
	.ascii	":lower() == id:lower())\012end\012local _64BitHostT"
	.ascii	"ypes = {\012\"x86_64\",\012\"ia64\",\012\"amd64\",\012"
	.ascii	"\"ppc64\",\012\"powerpc64\",\012\"sparc64\"\012}\012"
	.ascii	"function os.is64bit()\012if (os._is64bit()) then\012"
	.ascii	"return true\012end\012local arch = \"\"\012if _OS ="
	.ascii	"= \"windows\" then\012arch = os.getenv(\"PROCESSOR_"
	.ascii	"ARCHITECTURE\")\012elseif _OS == \"macosx\" then\012"
	.ascii	"arch = os.outputof(\"echo $HOSTTYPE\")\012else\012a"
	.ascii	"rch = os.outputof(\"uname -m\")\012end\012if nil ~="
	.ascii	" arch then\012arch = arch:lower()\012for _, hosttyp"
	.ascii	"e in ipairs(_64BitHostTypes) do\012if arch:find(hos"
	.ascii	"ttype) then\012return true\012end\012en"
	.ascii	"d\012end\012return false\012end\012local function d"
	.ascii	"omatch(result, mask, wantfiles)\012if mask:startswi"
	.ascii	"th(\"./\") then\012mask = mask:sub(3)\012end\012loc"
	.ascii	"al basedir = mask\012local starpos = mask:find(\"%*"
	.ascii	"\")\012if starpos then\012basedir = basedir:sub(1, "
	.ascii	"starpos - 1)\012end\012basedir = path.getdirectory("
	.ascii	"basedir)\012if (basedir == \".\") then basedir = \""
	.ascii	"\" end\012local recurse = mask:find(\"**\", nil, tr"
	.ascii	"ue)\012mask = path.wildcards(mask)\012local functio"
	.ascii	"n matchwalker(basedir)\012local wildcard = path.joi"
	.ascii	"n(basedir, \"*\")\012local m = os.matchstart(wildca"
	.ascii	"rd)\012while (os.matchnext(m)) do\012local isfile ="
	.ascii	" os.matchisfile(m)\012if ((wantfiles and isfile) or"
	.ascii	" (not wantfiles and not isfile)) then\012local fnam"
	.ascii	"e = path.join(basedir, os.matchname(m))\012if fname"
	.ascii	":match(mask) == fname then\012table.insert(result, "
	.ascii	"fname)\012end\012end\012end\012os.matchdone(m)\012i"
	.ascii	"f recurse then\012m = os.matchstart(wildcard)\012wh"
	.ascii	"ile (os.matchnext(m)) do\012if not os.matchisfile(m"
	.ascii	") then\012local dirname = os.matchname(m)\012matchw"
	.ascii	"alker(path.join(basedir, dirname))\012end\012end\012"
	.ascii	"os.matchdone(m)\012end\012end\012matchwalker(basedi"
	.ascii	"r)\012end\012function os.matchdirs(...)\012local ar"
	.ascii	"g={...}\012local result = { }\012for _, mask in ipa"
	.ascii	"irs(arg) do\012domatch(result, mask, false)\012end\012"
	.ascii	"return result\012end\012function os.matchfiles(...)"
	.ascii	"\012local arg={...}\012local result = { }\012for _,"
	.ascii	" mask in ipairs(arg) do\012domatch(result, mask, tr"
	.ascii	"ue)\012end\012return result\012end\012local builtin"
	.ascii	"_mkdir = os.mkdir\012function os.mkdir(p)\012local "
	.ascii	"dir = iif(p:startswith(\"/\"), \"/\", \"\")\012for "
	.ascii	"part in p:gmatch(\"[^/]+\") do\012dir = dir .. part"
	.ascii	"\012if (part ~= \"\" and not path.isabsolute(part) "
	.ascii	"and not os.isdir(dir)) then\012local ok, err = buil"
	.ascii	"tin_mkdir(dir)\012if (not ok) then\012return nil, e"
	.ascii	"rr\012end\012end\012dir = dir .. \"/\"\012end\012re"
	.ascii	"turn true\012end\012function os.outputof(cmd)\012lo"
	.ascii	"cal pipe = io.popen(cmd)\012local result = pipe:rea"
	.ascii	"d('*a')\012pipe:close()\012return result\012end\012"
	.ascii	"local builtin_rmdir = os.rmdir\012function os.rmdir"
	.ascii	"(p)\012local dirs = os.matchdirs(p .. \"/*\")\012fo"
	.ascii	"r _, dname in ipairs(dirs) do\012os.rmdir(dname)\012"
	.ascii	"end\012local files = os.matchfiles(p .. \"/*\")\012"
	.ascii	"for _, fname in ipairs(files) do\012os.remove(fname"
	.ascii	")\012end\012builtin_rmdir(p)\012end\012\000"
	.align	2
.LC1:
	.ascii	"function path.getbasename(p)\012local name = path.g"
	.ascii	"etname(p)\012local i = name:findlast(\".\", true)\012"
	.ascii	"if (i) then\012return name:sub(1, i - 1)\012else\012"
	.ascii	"return name\012end\012end\012function path.removeex"
	.ascii	"t(name)\012local i = name:findlast(\".\", true)\012"
	.ascii	"if (i) then\012return name:sub(1, i - 1)\012else\012"
	.ascii	"return name\012end\012end\012function path.getdirec"
	.ascii	"tory(p)\012local i = p:findlast(\"/\", true)\012if "
	.ascii	"(i) then\012if i > 1 then i = i - 1 end\012return p"
	.ascii	":sub(1, i)\012else\012return \".\"\012end\012end\012"
	.ascii	"function path.getdrive(p)\012local ch1 = p:sub(1,1)"
	.ascii	"\012local ch2 = p:sub(2,2)\012if ch2 == \":\" then\012"
	.ascii	"return ch1\012end\012end\012function path.getextens"
	.ascii	"ion(p)\012local i = p:findlast(\".\", true)\012if ("
	.ascii	"i) then\012return p:sub(i)\012else\012return \"\"\012"
	.ascii	"end\012end\012function path.getname(p)\012local i ="
	.ascii	" p:findlast(\"[/\\\\]\")\012if (i) then\012return p"
	.ascii	":sub(i + 1)\012else\012return p\012end\012end\012fu"
	.ascii	"nction path.getcommonbasedir(a, b)\012a = path.getd"
	.ascii	"irectory(a)..'/'\012b = path.getdirectory(b)..'/'\012"
	.ascii	"local idx = 0\012while (true) do\012local tst = a:f"
	.ascii	"ind('/', idx + 1, true)\012if tst then\012if a:sub("
	.ascii	"1,tst) == b:sub(1,tst) then\012idx = tst\012else\012"
	.ascii	"break\012end\012else\012break\012end\012end\012loca"
	.ascii	"l result = ''\012if idx > 1 then\012result = a:sub("
	.ascii	"1, idx - 1)-- Remove the trailing slash to be consi"
	.ascii	"stent with other functions.\012end\012return result"
	.ascii	"\012end\012function path.hasextension(fname, extens"
	.ascii	"ions)\012local fext = path.getextension(fname):lowe"
	.ascii	"r()\012if type(extensions) == \"table\" then\012for"
	.ascii	" _, extension in pairs(extensions) do\012if fext =="
	.ascii	" extension then\012return true\012end\012end\012ret"
	.ascii	"urn false\012else\012return (fext == extensions)\012"
	.ascii	"end\012end\012function path.iscfile(fname)\012retur"
	.ascii	"n path.hasextension(fname, { \".c\", \".m\" })\012e"
	.ascii	"nd\012function path.iscppfile(fname)\012return path"
	.ascii	".hasextension(fname, { \".cc\", \".cpp\", \".cxx\","
	.ascii	" \".c++\", \".c\", \".m\", \".mm\" })\012end\012fun"
	.ascii	"ction path.iscxfile(fname)\012return path.hasextens"
	.ascii	"ion(fname, \".cx\")\012end\012function path.isobjcf"
	.ascii	"ile(fname)\012return path.hasextension(fname, { \"."
	.ascii	"m\", \".mm\" })\012end\012function path.iscppheader"
	.ascii	"(fname)\012return path.hasextension(fname, { \".h\""
	.ascii	", \".hh\", \".hpp\", \".hxx\" })\012end\012function"
	.ascii	" path.isappxmanifest(fname)\012return path.hasexten"
	.ascii	"sion(fname, \".appxmanifest\")\012end\012function p"
	.ascii	"ath.isandroidbuildfile(fname)\012return path.getnam"
	.ascii	"e(fname) == \"AndroidManifest.xml\"\012end\012funct"
	.ascii	"ion path.isnatvis(fname)\012return path.hasextensio"
	.ascii	"n(fname, \".natvis\")\012end\012function path.isasm"
	.ascii	"file(fname)\012return path.hasextension(fname, { \""
	.ascii	".asm\", \".s\", \".S\" })\012end\012function path.i"
	.ascii	"svalafile(fname)\012return path.hasextension(fname,"
	.ascii	" \".vala\")\012end\012function path.isswiftfile(fna"
	.ascii	"me)\012return path.hasextension(fname, \".swift\")\012"
	.ascii	"end\012function path.issourcefile(fname)\012return "
	.ascii	"path.iscfile(fname)\012or path.iscppfile(fname)\012"
	.ascii	"or path.iscxfile(fname)\012or path.isasmfile(fname)"
	.ascii	"\012or path.isvalafile(fname)\012or path.isswiftfil"
	.ascii	"e(fname)\012end\012function path.issourcefilevs(fna"
	.ascii	"me)\012return path.hasextension(fname, { \".cc\", \""
	.ascii	".cpp\", \".cxx\", \".c++\", \".c\" })\012or path.is"
	.ascii	"cxfile(fname)\012end\012function path.isobjectfile("
	.ascii	"fname)\012return path.hasextension(fname, { \".o\","
	.ascii	" \".obj\" })\012end\012function path.isresourcefile"
	.ascii	"(fname)\012return path.hasextension(fname, \".rc\")"
	.ascii	"\012end\012function path.isimagefile(fname)\012loca"
	.ascii	"l extensions = { \".png\" }\012local ext = path.get"
	.ascii	"extension(fname):lower()\012return table.contains(e"
	.ascii	"xtensions, ext)\012end\012function path.join(...)\012"
	.ascii	"local arg={...}\012local numargs = select(\"#\", .."
	.ascii	".)\012if numargs == 0 then\012return \"\";\012end\012"
	.ascii	"local allparts = {}\012for i = numargs, 1, -1 do\012"
	.ascii	"local part = select(i, ...)\012if part and #part > "
	.ascii	"0 and part ~= \".\" then\012while part:endswith(\"/"
	.ascii	"\") do\012part = part:sub(1, -2)\012end\012table.in"
	.ascii	"sert(allparts, 1, part)\012if path.isabsolute(part)"
	.ascii	" then\012break\012end\012end\012end\012return table"
	.ascii	".concat(allparts, \"/\")\012end\012function path.re"
	.ascii	"base(p, oldbase, newbase)\012p = path.getabsolute(p"
	.ascii	"ath.join(oldbase, p))\012p = path.getrelative(newba"
	.ascii	"se, p)\012return p\012end\012function path.translat"
	.ascii	"e(p, sep)\012if (type(p) == \"table\") then\012loca"
	.ascii	"l result = { }\012for _, value in ipairs(p) do\012t"
	.ascii	"able.insert(result, path.translate(value))\012end\012"
	.ascii	"return result\012else\012if (not sep) then\012if (o"
	.ascii	"s.is(\"windows\")) then\012sep = \"\\\\\"\012else\012"
	.ascii	"sep = \"/\"\012end\012end\012local result = p:gsub("
	.ascii	"\"[/\\\\]\", sep)\012return result\012end\012end\012"
	.ascii	"function path.wildcards(pattern)\012pattern = patte"
	.ascii	"rn:gsub(\"([%+%.%-%^%$%(%)%%])\", \"%%%1\")\012patt"
	.ascii	"ern = "
	.ascii	"pattern:gsub(\"%*%*\", \"\\001\")\012pattern = patt"
	.ascii	"ern:gsub(\"%*\", \"\\002\")\012pattern = pattern:gs"
	.ascii	"ub(\"\\001\", \".*\")\012pattern = pattern:gsub(\"\\"
	.ascii	"002\", \"[^/]*\")\012return pattern\012end\012funct"
	.ascii	"ion path.trimdots(p)\012local changed\012repeat\012"
	.ascii	"changed = true\012if p:startswith(\"./\") then\012p"
	.ascii	" = p:sub(3)\012elseif p:startswith(\"../\") then\012"
	.ascii	"p = p:sub(4)\012else\012changed = false\012end\012u"
	.ascii	"ntil not changed\012return p\012end\012function pat"
	.ascii	"h.rebase(p, oldbase, newbase)\012p = path.getabsolu"
	.ascii	"te(path.join(oldbase, p))\012p = path.getrelative(n"
	.ascii	"ewbase, p)\012return p\012end\012function path.repl"
	.ascii	"aceextension(p, newext)\012local ext = path.getexte"
	.ascii	"nsion(p)\012if not ext then\012return p\012end\012i"
	.ascii	"f #newext > 0 and not newext:findlast(\".\", true) "
	.ascii	"then\012newext = \".\"..newext\012end\012return p:m"
	.ascii	"atch(\"^(.*)\"..ext..\"$\")..newext\012end\012\000"
	.align	2
.LC2:
	.ascii	"function string.explode(s, pattern, plain)\012if (p"
	.ascii	"attern == '') then return false end\012local pos = "
	.ascii	"0\012local arr = { }\012for st,sp in function() ret"
	.ascii	"urn s:find(pattern, pos, plain) end do\012table.ins"
	.ascii	"ert(arr, s:sub(pos, st-1))\012pos = sp + 1\012end\012"
	.ascii	"table.insert(arr, s:sub(pos))\012return arr\012end\012"
	.ascii	"function string.findlast(s, pattern, plain)\012loca"
	.ascii	"l curr = 0\012local term = nil\012repeat\012local n"
	.ascii	"ext, nextterm = s:find(pattern, curr + 1, plain)\012"
	.ascii	"if (next) then\012curr = next\012term = nextterm\012"
	.ascii	"end\012until (not next)\012if (curr > 0) then\012re"
	.ascii	"turn curr, term\012end\012end\012function string.st"
	.ascii	"artswith(haystack, needle)\012return (haystack:find"
	.ascii	"(needle, 1, true) == 1)\012end\012function string.t"
	.ascii	"rim(s)\012return (s:gsub(\"^%s*(.-)%s*$\", \"%1\"))"
	.ascii	"\012end\012\000"
	.align	2
.LC3:
	.ascii	"function table.contains(t, value)\012for _, v in pa"
	.ascii	"irs(t) do\012if v == value then return true end\012"
	.ascii	"end\012return false\012end\012function table.iconta"
	.ascii	"ins(t, value)\012for _, v in ipairs(t) do\012if v ="
	.ascii	"= value then return true end\012end\012return false"
	.ascii	"\012end\012function table.deepcopy(object)\012local"
	.ascii	" seen = {}\012local function copy(object)\012if typ"
	.ascii	"e(object) ~= \"table\" then\012return object\012els"
	.ascii	"eif seen[object] then\012return seen[object]\012end"
	.ascii	"\012local clone = {}\012seen[object] = clone\012for"
	.ascii	" key, value in pairs(object) do\012clone[key] = cop"
	.ascii	"y(value)\012end\012setmetatable(clone, getmetatable"
	.ascii	"(object))\012return clone\012end\012return copy(obj"
	.ascii	"ect)\012end\012function table.extract(arr, fname)\012"
	.ascii	"local result = { }\012for _,v in ipairs(arr) do\012"
	.ascii	"table.insert(result, v[fname])\012end\012return res"
	.ascii	"ult\012end\012function table.flatten(arr)\012local "
	.ascii	"result = { }\012local function flatten(arr)\012for "
	.ascii	"_, v in ipairs(arr) do\012if type(v) == \"table\" t"
	.ascii	"hen\012flatten(v)\012else\012table.insert(result, v"
	.ascii	")\012end\012end\012end\012flatten(arr)\012return re"
	.ascii	"sult\012end\012function table.implode(arr, before, "
	.ascii	"after, between)\012local result = \"\"\012for _,v i"
	.ascii	"n ipairs(arr) do\012if (result ~= \"\" and between)"
	.ascii	" then\012result = result .. between\012end\012resul"
	.ascii	"t = result .. before .. v .. after\012end\012return"
	.ascii	" result\012end\012function table.insertflat(tbl, va"
	.ascii	"lues)\012if type(values) == \"table\" then\012for _"
	.ascii	", value in ipairs(values) do\012table.insertflat(tb"
	.ascii	"l, value)\012end\012else\012table.insert(tbl, value"
	.ascii	"s)\012end\012end\012function table.isempty(t)\012re"
	.ascii	"turn next(t) == nil\012end\012function table.join(."
	.ascii	"..)\012local arg={...}\012local result = { }\012for"
	.ascii	" _,t in ipairs(arg) do\012if type(t) == \"table\" t"
	.ascii	"hen\012for _,v in ipairs(t) do\012table.insert(resu"
	.ascii	"lt, v)\012end\012else\012table.insert(result, t)\012"
	.ascii	"end\012end\012return result\012end\012function tabl"
	.ascii	"e.keys(tbl)\012local keys = {}\012for k, _ in pairs"
	.ascii	"(tbl) do\012table.insert(keys, k)\012end\012return "
	.ascii	"keys\012end\012function table.sortedpairs(t)\012loc"
	.ascii	"al keys = table.keys(t)\012local i = 0\012table.sor"
	.ascii	"t(keys)\012return function()\012i = i + 1\012if key"
	.ascii	"s[i] == nil then\012return nil\012end\012return key"
	.ascii	"s[i], t[keys[i]]\012end\012end\012function table.me"
	.ascii	"rge(...)\012local arg={...}\012local result = { }\012"
	.ascii	"for _,t in ipairs(arg) do\012if type(t) =="
	.ascii	" \"table\" then\012for k,v in pairs(t) do\012result"
	.ascii	"[k] = v\012end\012else\012error(\"invalid value\")\012"
	.ascii	"end\012end\012return result\012end\012function tabl"
	.ascii	"e.translate(arr, translation)\012local result = { }"
	.ascii	"\012for _, value in ipairs(arr) do\012local tvalue\012"
	.ascii	"if type(translation) == \"function\" then\012tvalue"
	.ascii	" = translation(value)\012else\012tvalue = translati"
	.ascii	"on[value]\012end\012if (tvalue) then\012table.inser"
	.ascii	"t(result, tvalue)\012end\012end\012return result\012"
	.ascii	"end\012function table.reverse(arr)\012for i=1, math"
	.ascii	".floor(#arr / 2) do\012arr[i], arr[#arr - i + 1] = "
	.ascii	"arr[#arr - i + 1], arr[i]\012end\012return arr\012e"
	.ascii	"nd\012function table.arglist(arg, value)\012if #val"
	.ascii	"ue > 0 then\012local args = {}\012for _, val in ipa"
	.ascii	"irs(value) do\012table.insert(args, string.format(\""
	.ascii	"%s %s\", arg, val))\012end\012return table.concat(a"
	.ascii	"rgs, \" \")\012else\012return \"\"\012end\012end\012"
	.ascii	"\000"
	.align	2
.LC4:
	.ascii	"io.eol         = \"\\n\"\012io.indent      = \"\\t\""
	.ascii	"\012io.indentLevel = 0\012local function _escaper(v"
	.ascii	") return v end\012_esc = _escaper\012function io.ca"
	.ascii	"pture()\012local prev = io.captured\012io.captured "
	.ascii	"= ''\012return prev\012end\012function io.endcaptur"
	.ascii	"e(restore)\012local captured = io.captured\012io.ca"
	.ascii	"ptured = restore\012return captured\012end\012local"
	.ascii	" builtin_open = io.open\012function io.open(fname, "
	.ascii	"mode)\012if (mode) then\012if (mode:find(\"w\")) th"
	.ascii	"en\012local dir = path.getdirectory(fname)\012ok, e"
	.ascii	"rr = os.mkdir(dir)\012if (not ok) then\012error(err"
	.ascii	", 0)\012end\012end\012end\012return builtin_open(fn"
	.ascii	"ame, mode)\012end\012function io.printf(msg, ...)\012"
	.ascii	"local arg={...}\012if not io.eol then\012io.eol = \""
	.ascii	"\\n\"\012end\012if not io.indent then\012io.indent "
	.ascii	"= \"\\t\"\012end\012if type(msg) == \"number\" then"
	.ascii	"\012s = string.rep(io.indent, msg) .. string.format"
	.ascii	"(table.unpack(arg))\012else\012s = string.format(ms"
	.ascii	"g, table.unpack(arg))\012end\012if io.captured then"
	.ascii	"\012io.captured = io.captured .. s .. io.eol\012els"
	.ascii	"e\012io.write(s)\012io.write(io.eol)\012end\012end\012"
	.ascii	"function io.xprintf(msg, ...)\012local arg = {...}\012"
	.ascii	"for i = 1, #arg do\012arg[i] = io.esc(arg[i])\012en"
	.ascii	"d\012io.printf(msg, unpack(arg))\012end\012function"
	.ascii	" io.esc(value)\012if type(value) == \"table\" then\012"
	.ascii	"local result = {}\012local n = #value\012for i = 1,"
	.ascii	" n do\012table.insert(result, io.esc(value[i]))\012"
	.ascii	"end\012return result\012end\012return _esc(value or"
	.ascii	" \"\")\012end\012function io.escaper(func)\012_esc "
	.ascii	"= func or _escaper\012end\012_p = io.printf\012_x ="
	.ascii	" io.xprintf\012\000"
	.align	2
.LC5:
	.ascii	"premake = { }\012premake.platforms =\012{\012Native"
	.ascii	" =\012{\012cfgsuffix       = \"\",\012},\012x32 =\012"
	.ascii	"{\012cfgsuffix       = \"32\",\012},\012x64 =\012{\012"
	.ascii	"cfgsuffix       = \"64\",\012},\012Universal =\012{"
	.ascii	"\012cfgsuffix       = \"univ\",\012},\012Universal3"
	.ascii	"2 =\012{\012cfgsuffix       = \"univ32\",\012},\012"
	.ascii	"Universal64 =\012{\012cfgsuffix       = \"univ64\","
	.ascii	"\012},\012PS3 =\012{\012cfgsuffix       = \"ps3\",\012"
	.ascii	"iscrosscompiler = true,\012nosharedlibs    = true,\012"
	.ascii	"namestyle       = \"PS3\",\012},\012WiiDev =\012{\012"
	.ascii	"cfgsuffix       = \"wii\",\012iscrosscompiler = tru"
	.ascii	"e,\012namestyle       = \"PS3\",\012},\012Xbox360 ="
	.ascii	"\012{\012cfgsuffix       = \"xbox360\",\012iscrossc"
	.ascii	"ompiler = true,\012namestyle       = \"windows\",\012"
	.ascii	"},\012PowerPC =\012{\012cfgsuffix       = \"ppc\",\012"
	.ascii	"iscrosscompiler = true,\012},\012ARM =\012{\012cfgs"
	.ascii	"uffix       = \"ARM\",\012iscrosscompiler = true,\012"
	.ascii	"},\012Orbis =\012{\012cfgsuffix       = \"orbis\",\012"
	.ascii	"iscrosscompiler = true,\012namestyle       = \"Orbi"
	.ascii	"s\",\012},\012Durango =\012{\012cfgsuffix       = \""
	.ascii	"durango\",\012iscrosscompiler = true,\012nosharedli"
	.ascii	"bs    = true,\012namestyle       = \"windows\",\012"
	.ascii	"},\012TegraAndroid =\012{\012cfgsuffix       = \"te"
	.ascii	"graandroid\",\012iscrosscompiler = true,\012namesty"
	.ascii	"le       = \"TegraAndroid\",\012},\012NX32 =\012{\012"
	.ascii	"cfgsuffix       = \"nx32\",\012iscrosscompiler = tr"
	.ascii	"ue,\012namestyle       = \"NX\",\012},\012NX64 =\012"
	.ascii	"{\012cfgsuffix       = \"nx64\",\012iscrosscompiler"
	.ascii	" = true,\012namestyle       = \"NX\",\012},\012Emsc"
	.ascii	"ripten =\012{\012cfgsuffix       = \"emscripten\",\012"
	.ascii	"iscrosscompiler = true,\012nosharedlibs    = true,\012"
	.ascii	"namestyle       = \"Emscripten\",\012},\012}\012loc"
	.ascii	"al builtin_dofile = dofile\012function dofile(fname"
	.ascii	")\012local oldcwd = os.getcwd()\012local oldfile = "
	.ascii	"_SCRIPT\012if (not os.isfile(fname)) then\012local "
	.ascii	"path = os.pathsearch(fname, _OPTIONS[\"scripts\"], "
	.ascii	"os.getenv(\"PREMAKE_PATH\"))\012if (path) then\012f"
	.ascii	"name = path..\"/\"..fname\012end\012end\012_SCRIPT "
	.ascii	"= path.getabsolute(fname)\012local newcwd = path.ge"
	.ascii	"tdirectory(_SCRIPT)\012os.chdir(newcwd)\012local a,"
	.ascii	" b, c, d, e, f = builtin_dofile(_SCRIPT)\012_SCRIPT"
	.ascii	" = oldfile\012os.chdir(oldcwd)\012return a, b, c, d"
	.ascii	", e, f\012end\012function iif(expr, trueval, falsev"
	.ascii	"al)\012if (expr) then\012return trueval\012else\012"
	.ascii	"return falseval\012end\012end\012function include(f"
	.ascii	"name)\012local dir, name = premake.findDefaultScrip"
	.ascii	"t(fname, false)\012if dir ~= nil then\012return "
	.ascii	"dofile(dir .. \"/\" .. name)\012end\012return nil\012"
	.ascii	"end\012function printf(msg, ...)\012local arg={...}"
	.ascii	"\012print(string.format(msg, table.unpack(arg)))\012"
	.ascii	"end\012function typex(t)\012local mt = getmetatable"
	.ascii	"(t)\012if (mt) then\012if (mt.__type) then\012retur"
	.ascii	"n mt.__type\012end\012end\012return type(t)\012end\012"
	.ascii	"\000"
	.align	2
.LC6:
	.ascii	"premake.action = { }\012premake.action.list = { }\012"
	.ascii	"function premake.action.add(a)\012local missing\012"
	.ascii	"for _, field in ipairs({\"description\", \"trigger\""
	.ascii	"}) do\012if (not a[field]) then\012missing = field\012"
	.ascii	"end\012end\012if (missing) then\012error(\"action n"
	.ascii	"eeds a \" .. missing, 3)\012end\012premake.action.l"
	.ascii	"ist[a.trigger] = a\012end\012function premake.actio"
	.ascii	"n.call(name)\012local a = premake.action.list[name]"
	.ascii	"\012for sln in premake.solution.each() do\012if a.o"
	.ascii	"nsolution then\012a.onsolution(sln)\012end\012if sl"
	.ascii	"n.postsolutioncallbacks then\012for _,cb in ipairs("
	.ascii	"sln.postsolutioncallbacks) do\012cb(sln)\012end\012"
	.ascii	"end\012for prj in premake.solution.eachproject(sln)"
	.ascii	" do\012if a.onproject then\012a.onproject(prj)\012e"
	.ascii	"nd\012if prj.postprojectcallbacks then\012for _,cb "
	.ascii	"in ipairs(prj.postprojectcallbacks) do\012cb(prj)\012"
	.ascii	"end\012end\012end\012end\012if a.execute then\012a."
	.ascii	"execute()\012end\012end\012function premake.action."
	.ascii	"current()\012return premake.action.get(_ACTION)\012"
	.ascii	"end\012function premake.action.get(name)\012return "
	.ascii	"premake.action.list[name]\012end\012function premak"
	.ascii	"e.action.each()\012local keys = { }\012for _, actio"
	.ascii	"n in pairs(premake.action.list) do\012table.insert("
	.ascii	"keys, action.trigger)\012end\012table.sort(keys)\012"
	.ascii	"local i = 0\012return function()\012i = i + 1\012re"
	.ascii	"turn premake.action.list[keys[i]]\012end\012end\012"
	.ascii	"function premake.action.set(name)\012_ACTION = name"
	.ascii	"\012local action = premake.action.get(name)\012if a"
	.ascii	"ction then\012_OS = action.os or _OS\012end\012end\012"
	.ascii	"function premake.action.supports(action, feature)\012"
	.ascii	"if not action then\012return false\012end\012if act"
	.ascii	"ion.valid_languages then\012if table.contains(actio"
	.ascii	"n.valid_languages, feature) then\012return true\012"
	.ascii	"end\012end\012if action.valid_kinds then\012if tabl"
	.ascii	"e.contains(action.valid_kinds, feature) then\012ret"
	.ascii	"urn true\012end\012end\012return false\012end\012\000"
	.align	2
.LC7:
	.ascii	"premake.option = { }\012premake.option.list = { }\012"
	.ascii	"function premake.option.add(opt)\012local missing\012"
	.ascii	"for _, field in ipairs({ \"description\", \"trigger"
	.ascii	"\" }) do\012if (not opt[field]) then\012missing = f"
	.ascii	"ield\012end\012end\012if (missing) then\012error(\""
	.ascii	"option needs a \" .. missing, 3)\012end\012premake."
	.ascii	"option.list[opt.trigger] = opt\012end\012function p"
	.ascii	"remake.option.get(name)\012return premake.option.li"
	.ascii	"st[name]\012end\012function premake.option.each()\012"
	.ascii	"local keys = { }\012for _, option in pairs(premake."
	.ascii	"option.list) do\012table.insert(keys, option.trigge"
	.ascii	"r)\012end\012table.sort(keys)\012local i = 0\012ret"
	.ascii	"urn function()\012i = i + 1\012return premake.optio"
	.ascii	"n.list[keys[i]]\012end\012end\012function premake.o"
	.ascii	"ption.validate(values)\012for key, value in pairs(v"
	.ascii	"alues) do\012local opt = premake.option.get(key)\012"
	.ascii	"if (not opt) then\012return false, \"invalid option"
	.ascii	" '\" .. key .. \"'\"\012end\012if (opt.value and va"
	.ascii	"lue == \"\") then\012return false, \"no value speci"
	.ascii	"fied for option '\" .. key .. \"'\"\012end\012if op"
	.ascii	"t.allowed then\012local found = false\012for _, mat"
	.ascii	"ch in ipairs(opt.allowed) do\012if match[1] == valu"
	.ascii	"e then\012found = true\012break\012end\012end\012if"
	.ascii	" not found then\012return false, string.format(\"in"
	.ascii	"valid value '%s' for option '%s'\", value, key)\012"
	.ascii	"end\012end\012end\012return true\012end\012\000"
	.align	2
.LC8:
	.ascii	"premake.tree = { }\012local tree = premake.tree\012"
	.ascii	"function premake.tree.new(n)\012local t = {\012name"
	.ascii	" = n,\012children = { }\012}\012return t\012end\012"
	.ascii	"function premake.tree.add(tr, p, onaddfunc)\012if p"
	.ascii	" == \".\" then\012return tr\012end\012if p == \"/\""
	.ascii	" then\012return tr\012end\012local parentnode = tre"
	.ascii	"e.add(tr, path.getdirectory(p), onaddfunc)\012local"
	.ascii	" childname = path.getname(p)\012if childname == \"."
	.ascii	".\" then\012return parentnode\012end\012local child"
	.ascii	"node = parentnode.children[childname]\012if not chi"
	.ascii	"ldnode or childnode.path ~= p then\012childnode = t"
	.ascii	"ree.insert(parentnode, tree.new(childname))\012chil"
	.ascii	"dnode.path = p\012if onaddfunc then\012onaddfunc(ch"
	.ascii	"ildnode)\012end\012end\012return childnode\012end\012"
	.ascii	"function premake.tree.insert(parent, child)\012tabl"
	.ascii	"e.insert(parent.children, child)\012if child.name t"
	.ascii	"hen\012parent.children[child.name] = child\012end\012"
	.ascii	"child.parent = parent\012return child\012end\012fun"
	.ascii	"ction premake.tree.getlocalpath(node)\012if node.pa"
	.ascii	"rent.path then\012return node.name\012elseif node.c"
	.ascii	"fg then\012return node.cfg.name\012else\012return n"
	.ascii	"ode.path\012end\012end\012function premake.tree.rem"
	.ascii	"ove(node)\012local children = node.parent.children\012"
	.ascii	"for i = 1, #children do\012if children[i] == node t"
	.ascii	"hen\012table.remove(children, i)\012end\012end\012n"
	.ascii	"ode.children = {}\012end\012function premake.tree.s"
	.ascii	"ort(tr)\012tree.traverse(tr, {\012onnode = function"
	.ascii	"(node)\012table.sort(node.children, function(a,b)\012"
	.ascii	"return a.name < b.name\012end)\012end\012}, true)\012"
	.ascii	"end\012function premake.tree.traverse(t, fn, includ"
	.ascii	"eroot, initialdepth)\012local donode, dochildren\012"
	.ascii	"donode = function(node, fn, depth)\012if node.isrem"
	.ascii	"oved then\012return\012end\012if fn.onnode then\012"
	.ascii	"fn.onnode(node, depth)\012end\012if #node.children "
	.ascii	"> 0 then\012if fn.onbranchenter then\012fn.onbranch"
	.ascii	"enter(node, depth)\012end\012if fn.onbranch then\012"
	.ascii	"fn.onbranch(node, depth)\012end\012dochildren(node,"
	.ascii	" fn, depth + 1)\012if fn.onbranchexit then\012fn.on"
	.ascii	"branchexit(node, depth)\012end\012else\012if fn.onl"
	.ascii	"eaf then\012fn.onleaf(node, depth)\012end\012end\012"
	.ascii	"end\012dochildren = function(parent, fn, depth)\012"
	.ascii	"local i = 1\012while i <= #parent.children do\012lo"
	.ascii	"cal node = parent.children[i]\012donode(node, fn, d"
	.ascii	"epth)\012if node == parent.children[i] then\012i = "
	.ascii	"i + 1\012end\012end\012end\012if not initialdepth t"
	.ascii	"hen"
	.ascii	"\012initialdepth = 0\012end\012if includeroot then\012"
	.ascii	"donode(t, fn, initialdepth)\012else\012dochildren(t"
	.ascii	", fn, initialdepth)\012end\012end\012\000"
	.align	2
.LC9:
	.ascii	"premake.solution = { }\012premake.solution.list = {"
	.ascii	" }\012function premake.solution.new(name)\012local "
	.ascii	"sln = { }\012table.insert(premake.solution.list, sl"
	.ascii	"n)\012premake.solution.list[name] = sln\012setmetat"
	.ascii	"able(sln, { __type=\"solution\" })\012sln.name     "
	.ascii	"      = name\012sln.basedir        = os.getcwd()\012"
	.ascii	"sln.projects       = { }\012sln.blocks         = { "
	.ascii	"}\012sln.configurations = { }\012sln.groups        "
	.ascii	" = { }\012sln.importedprojects = { }\012return sln\012"
	.ascii	"end\012function premake.solution.each()\012local i "
	.ascii	"= 0\012return function ()\012i = i + 1\012if i <= #"
	.ascii	"premake.solution.list then\012return premake.soluti"
	.ascii	"on.list[i]\012end\012end\012end\012function premake"
	.ascii	".solution.eachproject(sln)\012local i = 0\012return"
	.ascii	" function ()\012i = i + 1\012if (i <= #sln.projects"
	.ascii	") then\012return premake.solution.getproject(sln, i"
	.ascii	")\012end\012end\012end\012function premake.solution"
	.ascii	".eachgroup(sln)\012local i = 0\012return function()"
	.ascii	"\012i = i + 1\012if(i <= #sln.groups) then\012retur"
	.ascii	"n premake.solution.getgroup(sln, i)\012end\012end\012"
	.ascii	"end\012function premake.solution.get(key)\012return"
	.ascii	" premake.solution.list[key]\012end\012function prem"
	.ascii	"ake.solution.getproject(sln, idx)\012local prj = sl"
	.ascii	"n.projects[idx]\012local cfg = premake.getconfig(pr"
	.ascii	"j)\012cfg.name = prj.name\012return cfg\012end\012f"
	.ascii	"unction premake.solution.getgroup(sln, idx)\012loca"
	.ascii	"l grp = sln.groups[idx]\012return grp\012end\000"
	.align	2
.LC10:
	.ascii	"premake.project = { }\012function premake.project.b"
	.ascii	"uildsourcetree(prj, allfiles)\012local tr = premake"
	.ascii	".tree.new(prj.name)\012tr.project = prj\012local is"
	.ascii	"vpath\012local function onadd(node)\012node.isvpath"
	.ascii	" = isvpath\012end\012for fcfg in premake.project.ea"
	.ascii	"chfile(prj, allfiles) do\012isvpath = (fcfg.name ~="
	.ascii	" fcfg.vpath)\012local node = premake.tree.add(tr, f"
	.ascii	"cfg.vpath, onadd)\012node.cfg = fcfg\012end\012prem"
	.ascii	"ake.tree.sort(tr)\012return tr\012end\012function p"
	.ascii	"remake.eachconfig(prj, platform)\012if prj.project "
	.ascii	"then prj = prj.project end\012local cfgs = prj.solu"
	.ascii	"tion.configurations\012local i = 0\012return functi"
	.ascii	"on ()\012i = i + 1\012if i <= #cfgs then\012return "
	.ascii	"premake.getconfig(prj, cfgs[i], platform)\012end\012"
	.ascii	"end\012end\012function premake.project.eachfile(prj"
	.ascii	", allfiles)\012if not prj.project then prj = premak"
	.ascii	"e.getconfig(prj) end\012local i = 0\012local t = ii"
	.ascii	"f(allfiles, prj.allfiles, prj.files)\012local c = i"
	.ascii	"if(allfiles, prj.__allfileconfigs, prj.__fileconfig"
	.ascii	"s)\012return function ()\012i = i + 1\012if (i <= #"
	.ascii	"t) then\012local fcfg = c[t[i]]\012fcfg.vpath = pre"
	.ascii	"make.project.getvpath(prj, fcfg.name)\012return fcf"
	.ascii	"g\012end\012end\012end\012function premake.esc(valu"
	.ascii	"e)\012if (type(value) == \"table\") then\012local r"
	.ascii	"esult = { }\012for _,v in ipairs(value) do\012table"
	.ascii	".insert(result, premake.esc(v))\012end\012return re"
	.ascii	"sult\012else\012value = value:gsub('&',  \"&amp;\")"
	.ascii	"\012value = value:gsub('\"',  \"&quot;\")\012value "
	.ascii	"= value:gsub(\"'\",  \"&apos;\")\012value = value:g"
	.ascii	"sub('<',  \"&lt;\")\012value = value:gsub('>',  \"&"
	.ascii	"gt;\")\012value = value:gsub('\\r', \"&#x0D;\")\012"
	.ascii	"value = value:gsub('\\n', \"&#x0A;\")\012return val"
	.ascii	"ue\012end\012end\012function premake.filterplatform"
	.ascii	"s(sln, map, default)\012local result = { }\012local"
	.ascii	" keys = { }\012if sln.platforms then\012for _, p in"
	.ascii	" ipairs(sln.platforms) do\012if map[p] and not tabl"
	.ascii	"e.contains(keys, map[p]) then\012table.insert(resul"
	.ascii	"t, p)\012table.insert(keys, map[p])\012end\012end\012"
	.ascii	"end\012if #result == 0 and default then\012table.in"
	.ascii	"sert(result, default)\012end\012return result\012en"
	.ascii	"d\012function premake.findproject(name)\012for sln "
	.ascii	"in premake.solution.each() do\012for prj in premake"
	.ascii	".solution.eachproject(sln) do\012if (prj.name == na"
	.ascii	"me) then\012return  prj\012end\012end\012end\012end"
	.ascii	"\012function premake.findf"
	.ascii	"ile(prj, extension)\012for _, fname in ipairs(prj.f"
	.ascii	"iles) do\012if fname:endswith(extension) then retur"
	.ascii	"n fname end\012end\012end\012function premake.getco"
	.ascii	"nfig(prj, cfgname, pltname)\012prj = prj.project or"
	.ascii	" prj\012if pltname == \"Native\" or not table.conta"
	.ascii	"ins(prj.solution.platforms or {}, pltname) then\012"
	.ascii	"pltname = nil\012end\012local key = (cfgname or \"\""
	.ascii	")\012if pltname then key = key .. pltname end\012re"
	.ascii	"turn prj.__configs[key]\012end\012function premake."
	.ascii	"getconfigname(cfgname, platform, useshortname)\012i"
	.ascii	"f cfgname then\012local name = cfgname\012if platfo"
	.ascii	"rm and platform ~= \"Native\" then\012if useshortna"
	.ascii	"me then\012name = name .. premake.platforms[platfor"
	.ascii	"m].cfgsuffix\012else\012name = name .. \"|\" .. pla"
	.ascii	"tform\012end\012end\012return iif(useshortname, nam"
	.ascii	"e:lower(), name)\012end\012end\012function premake."
	.ascii	"getdependencies(prj)\012prj = prj.project or prj\012"
	.ascii	"local results = { }\012for _, cfg in pairs(prj.__co"
	.ascii	"nfigs) do\012for _, link in ipairs(cfg.links) do\012"
	.ascii	"local dep = premake.findproject(link)\012if dep and"
	.ascii	" not table.contains(results, dep) then\012table.ins"
	.ascii	"ert(results, dep)\012end\012end\012end\012return re"
	.ascii	"sults\012end\012function premake.project.getbasenam"
	.ascii	"e(prjname, pattern)\012return pattern:gsub(\"%%%%\""
	.ascii	", prjname)\012end\012function premake.project.getfi"
	.ascii	"lename(prj, pattern)\012local fname = premake.proje"
	.ascii	"ct.getbasename(prj.name, pattern)\012fname = path.j"
	.ascii	"oin(prj.location, fname)\012return path.getrelative"
	.ascii	"(os.getcwd(), fname)\012end\012 function premake.ge"
	.ascii	"tlinks(cfg, kind, part)\012local result = iif (part"
	.ascii	" == \"directory\" and kind == \"all\", cfg.libdirs,"
	.ascii	" {})\012local cfgname = iif(cfg.name == cfg.project"
	.ascii	".name, \"\", cfg.name)\012local pathstyle = premake"
	.ascii	".getpathstyle(cfg)\012local namestyle = premake.get"
	.ascii	"namestyle(cfg)\012local function canlink(source, ta"
	.ascii	"rget)\012if (target.kind ~= \"SharedLib\" and targe"
	.ascii	"t.kind ~= \"StaticLib\") then\012return false\012en"
	.ascii	"d\012if premake.iscppproject(source) then\012return"
	.ascii	" premake.iscppproject(target)\012elseif premake.isd"
	.ascii	"otnetproject(source) then\012return premake.isdotne"
	.ascii	"tproject(target)\012elseif premake.isswiftproject(s"
	.ascii	"ource) then\012return premake.isswiftproject(source"
	.ascii	") or premake.iscppproject(source)\012end\012end\012"
	.ascii	"for _, link in ipai"
	.ascii	"rs(cfg.links) do\012local item\012local prj = prema"
	.ascii	"ke.findproject(link)\012if prj and kind ~= \"system"
	.ascii	"\" then\012local prjcfg = premake.getconfig(prj, cf"
	.ascii	"gname, cfg.platform)\012if kind == \"dependencies\""
	.ascii	" or canlink(cfg, prjcfg) then\012if (part == \"dire"
	.ascii	"ctory\") then\012item = path.rebase(prjcfg.linktarg"
	.ascii	"et.directory, prjcfg.location, cfg.location)\012els"
	.ascii	"eif (part == \"basename\") then\012item = prjcfg.li"
	.ascii	"nktarget.basename\012elseif (part == \"fullpath\") "
	.ascii	"then\012item = path.rebase(prjcfg.linktarget.fullpa"
	.ascii	"th, prjcfg.location, cfg.location)\012elseif (part "
	.ascii	"== \"object\") then\012item = prjcfg\012end\012end\012"
	.ascii	"elseif not prj and (kind == \"system\" or kind == \""
	.ascii	"all\") then\012if (part == \"directory\") then\012i"
	.ascii	"tem = path.getdirectory(link)\012elseif (part == \""
	.ascii	"fullpath\") then\012item = link\012if namestyle == "
	.ascii	"\"windows\" then\012if premake.iscppproject(cfg) th"
	.ascii	"en\012item = item .. \".lib\"\012elseif premake.isd"
	.ascii	"otnetproject(cfg) then\012item = item .. \".dll\"\012"
	.ascii	"end\012end\012elseif part == \"name\" then\012item "
	.ascii	"= path.getname(link)\012elseif part == \"basename\""
	.ascii	" then\012item = path.getbasename(link)\012else\012i"
	.ascii	"tem = link\012end\012if item:find(\"/\", nil, true)"
	.ascii	" then\012item = path.getrelative(cfg.project.locati"
	.ascii	"on, item)\012end\012end\012if item then\012if paths"
	.ascii	"tyle == \"windows\" and part ~= \"object\" then\012"
	.ascii	"item = path.translate(item, \"\\\\\")\012end\012if "
	.ascii	"not table.contains(result, item) then\012table.inse"
	.ascii	"rt(result, item)\012end\012end\012end\012return res"
	.ascii	"ult\012end\012function premake.getnamestyle(cfg)\012"
	.ascii	"return premake.platforms[cfg.platform].namestyle or"
	.ascii	" premake.gettool(cfg).namestyle or \"posix\"\012end"
	.ascii	"\012function premake.getpathstyle(cfg)\012if premak"
	.ascii	"e.action.current().os == \"windows\" then\012return"
	.ascii	" \"windows\"\012else\012return \"posix\"\012end\012"
	.ascii	"end\012function premake.gettarget(cfg, direction, p"
	.ascii	"athstyle, namestyle, system)\012if system == \"bsd\""
	.ascii	" then\012system = \"linux\"\012end\012local kind = "
	.ascii	"cfg.kind\012if premake.iscppproject(cfg) then\012if"
	.ascii	" (namestyle == \"windows\" or system == \"windows\""
	.ascii	")\012and kind == \"SharedLib\" and direction == \"l"
	.ascii	"ink\"\012and not cfg.flags.NoImportLib\012then\012k"
	.ascii	"ind = \"StaticLib\"\012end\012if namestyle == \"pos"
	.ascii	"ix\" and system == \"windows\" and kind ~= \"Static"
	.ascii	"Lib\" then\012namestyle = \"windows\""
	.ascii	"\012end\012end\012local field   = \"build\"\012if d"
	.ascii	"irection == \"link\" and cfg.kind == \"SharedLib\" "
	.ascii	"then\012field = \"implib\"\012end\012local name    "
	.ascii	"= cfg[field..\"name\"] or cfg.targetname or cfg.pro"
	.ascii	"ject.name\012local dir     = cfg[field..\"dir\"] or"
	.ascii	" cfg.targetdir or path.getrelative(cfg.location, cf"
	.ascii	"g.basedir)\012local subdir  = cfg[field..\"subdir\""
	.ascii	"] or cfg.targetsubdir or \".\"\012local prefix  = \""
	.ascii	"\"\012local suffix  = \"\"\012local ext     = \"\"\012"
	.ascii	"local bundlepath, bundlename\012dir = path.join(dir"
	.ascii	", subdir)\012if namestyle == \"windows\" then\012if"
	.ascii	" kind == \"ConsoleApp\" or kind == \"WindowedApp\" "
	.ascii	"then\012ext = \".exe\"\012elseif kind == \"SharedLi"
	.ascii	"b\" then\012ext = \".dll\"\012elseif kind == \"Stat"
	.ascii	"icLib\" then\012ext = \".lib\"\012end\012elseif nam"
	.ascii	"estyle == \"posix\" then\012if kind == \"WindowedAp"
	.ascii	"p\" and system == \"macosx\" and not cfg.options.Sk"
	.ascii	"ipBundling then\012bundlename = name .. \".app\"\012"
	.ascii	"bundlepath = path.join(dir, bundlename)\012dir = pa"
	.ascii	"th.join(bundlepath, \"Contents/MacOS\")\012elseif ("
	.ascii	"kind == \"ConsoleApp\" or kind == \"WindowedApp\") "
	.ascii	"and system == \"os2\" then\012ext = \".exe\"\012els"
	.ascii	"eif kind == \"SharedLib\" then\012prefix = \"lib\"\012"
	.ascii	"ext = iif(system == \"macosx\", \".dylib\", \".so\""
	.ascii	")\012elseif kind == \"StaticLib\" then\012prefix = "
	.ascii	"\"lib\"\012ext = \".a\"\012end\012elseif namestyle "
	.ascii	"== \"PS3\" then\012if kind == \"ConsoleApp\" or kin"
	.ascii	"d == \"WindowedApp\" then\012ext = \".elf\"\012else"
	.ascii	"if kind == \"StaticLib\" then\012prefix = \"lib\"\012"
	.ascii	"ext = \".a\"\012end\012elseif namestyle == \"Orbis\""
	.ascii	" then\012if kind == \"ConsoleApp\" or kind == \"Win"
	.ascii	"dowedApp\" then\012ext = \".elf\"\012elseif kind =="
	.ascii	" \"StaticLib\" then\012prefix = \"lib\"\012ext = \""
	.ascii	".a\"\012elseif kind == \"SharedLib\" then\012ext = "
	.ascii	"\".prx\"\012end\012elseif namestyle == \"TegraAndro"
	.ascii	"id\" then\012if kind == \"ConsoleApp\" or kind == \""
	.ascii	"WindowedApp\" or kind == \"SharedLib\" then\012pref"
	.ascii	"ix = \"lib\"\012ext = \".so\"\012elseif kind == \"S"
	.ascii	"taticLib\" then\012prefix = \"lib\"\012ext = \".a\""
	.ascii	"\012end\012elseif namestyle == \"NX\" then\012if ki"
	.ascii	"nd == \"ConsoleApp\" or kind == \"WindowedApp\" the"
	.ascii	"n\012ext = \".nspd_root\"\012elseif kind == \"Stati"
	.ascii	"cLib\" then\012ext = \".a\"\012elseif kind == \"Sha"
	.ascii	"redLib\" then\012ext = \".nro\"\012end\012elseif na"
	.ascii	"mestyle == \"Emscripten\" then\012if kind == \"Cons"
	.ascii	"oleApp\" or kind == \"WindowedApp\" then\012ext = "
	.ascii	"\".html\"\012elseif kind == \"StaticLib\" then\012e"
	.ascii	"xt = \".bc\"\012elseif kind == \"SharedLib\" then\012"
	.ascii	"ext = \".js\"\012end\012end\012prefix = cfg[field.."
	.ascii	"\"prefix\"] or cfg.targetprefix or prefix\012suffix"
	.ascii	" = cfg[field..\"suffix\"] or cfg.targetsuffix or su"
	.ascii	"ffix\012ext    = cfg[field..\"extension\"] or cfg.t"
	.ascii	"argetextension or ext\012local result = { }\012resu"
	.ascii	"lt.basename     = name .. suffix\012result.name    "
	.ascii	"     = prefix .. name .. suffix .. ext\012result.di"
	.ascii	"rectory    = dir\012result.subdirectory = subdir\012"
	.ascii	"result.prefix       = prefix\012result.suffix      "
	.ascii	" = suffix\012result.fullpath     = path.join(result"
	.ascii	".directory, result.name)\012result.bundlepath   = b"
	.ascii	"undlepath or result.fullpath\012if pathstyle == \"w"
	.ascii	"indows\" then\012result.directory    = path.transla"
	.ascii	"te(result.directory, \"\\\\\")\012result.subdirecto"
	.ascii	"ry = path.translate(result.subdirectory, \"\\\\\")\012"
	.ascii	"result.fullpath     = path.translate(result.fullpat"
	.ascii	"h,  \"\\\\\")\012end\012return result\012end\012fun"
	.ascii	"ction premake.gettool(cfg)\012if premake.iscppproje"
	.ascii	"ct(cfg) then\012if _OPTIONS.cc then\012return prema"
	.ascii	"ke[_OPTIONS.cc]\012end\012local action = premake.ac"
	.ascii	"tion.current()\012if action.valid_tools then\012ret"
	.ascii	"urn premake[action.valid_tools.cc[1]]\012end\012ret"
	.ascii	"urn premake.gcc\012elseif premake.isdotnetproject(c"
	.ascii	"fg) then\012return premake.dotnet\012elseif premake"
	.ascii	".isswiftproject(cfg) then\012return premake.swift\012"
	.ascii	"else\012return premake.valac\012end\012end\012funct"
	.ascii	"ion premake.project.getvpath(prj, abspath)\012local"
	.ascii	" vpath = abspath\012local fname = path.getname(absp"
	.ascii	"ath)\012local max = abspath:len() - fname:len()\012"
	.ascii	"        \012        -- First check for an exact mat"
	.ascii	"ch from the inverse vpaths\012        if prj.invers"
	.ascii	"evpaths and prj.inversevpaths[abspath] then\012    "
	.ascii	"        return path.join(prj.inversevpaths[abspath]"
	.ascii	", fname)\012        end\012        local matches = "
	.ascii	"{}\012for replacement, patterns in pairs(prj.vpaths"
	.ascii	" or {}) do\012for _, pattern in ipairs(patterns) do"
	.ascii	"\012local i = abspath:find(path.wildcards(pattern))"
	.ascii	"\012if i == 1 then\012i = pattern:find(\"*\", 1, tr"
	.ascii	"ue) or (pattern:len() + 1)\012local leaf\012if i < "
	.ascii	"max then\012leaf = abspath:sub(i)\012else\012leaf ="
	.ascii	" fname\012end\012if leaf:startswith(\"/\") then\012"
	.ascii	"leaf = leaf:sub(2)\012end\012local st"
	.ascii	"em = \"\"\012if replacement:len() > 0 then\012stem,"
	.ascii	" stars = replacement:gsub(\"%*\", \"\")\012if stars"
	.ascii	" == 0 then\012leaf = path.getname(leaf)\012end\012e"
	.ascii	"lse\012leaf = path.getname(leaf)\012end\012table.in"
	.ascii	"sert(matches, path.join(stem, leaf))\012end\012end\012"
	.ascii	"end\012        \012        if #matches > 0 then\012"
	.ascii	"            -- for the sake of determinism, return "
	.ascii	"the first alphabetically\012            table.sort("
	.ascii	"matches)\012            vpath = matches[1]\012     "
	.ascii	"   end\012return path.trimdots(vpath)\012end\012fun"
	.ascii	"ction premake.hascppproject(sln)\012for prj in prem"
	.ascii	"ake.solution.eachproject(sln) do\012if premake.iscp"
	.ascii	"pproject(prj) then\012return true\012end\012end\012"
	.ascii	"end\012function premake.hasdotnetproject(sln)\012fo"
	.ascii	"r prj in premake.solution.eachproject(sln) do\012if"
	.ascii	" premake.isdotnetproject(prj) then\012return true\012"
	.ascii	"end\012end\012end\012function premake.project.iscpr"
	.ascii	"oject(prj)\012return prj.language == \"C\"\012end\012"
	.ascii	"function premake.iscppproject(prj)\012return (prj.l"
	.ascii	"anguage == \"C\" or prj.language == \"C++\")\012end"
	.ascii	"\012function premake.isdotnetproject(prj)\012return"
	.ascii	" (prj.language == \"C#\")\012end\012function premak"
	.ascii	"e.isvalaproject(prj)\012return (prj.language == \"V"
	.ascii	"ala\")\012end\012function premake.isswiftproject(pr"
	.ascii	"j)\012return (prj.language == \"Swift\")\012end\012"
	.ascii	"\000"
	.align	2
.LC11:
	.ascii	"premake.config = { }\012local config = premake.conf"
	.ascii	"ig\012function premake.config.isdebugbuild(cfg)\012"
	.ascii	"if cfg.flags.DebugRuntime then\012return true\012en"
	.ascii	"d\012if cfg.flags.ReleaseRuntime then\012return fal"
	.ascii	"se\012end\012if cfg.flags.Optimize or cfg.flags.Opt"
	.ascii	"imizeSize or cfg.flags.OptimizeSpeed then\012return"
	.ascii	" false\012end\012if not cfg.flags.Symbols then\012r"
	.ascii	"eturn false\012end\012return true\012end\012functio"
	.ascii	"n premake.config.eachfile(cfg)\012local i = 0\012lo"
	.ascii	"cal t = cfg.files\012return function ()\012i = i + "
	.ascii	"1\012if (i <= #t) then\012local fcfg = cfg.__fileco"
	.ascii	"nfigs[t[i]]\012fcfg.vpath = premake.project.getvpat"
	.ascii	"h(cfg.project, fcfg.name)\012return fcfg\012end\012"
	.ascii	"end\012end\012function premake.config.isincremental"
	.ascii	"link(cfg)\012if cfg.kind == \"StaticLib\" then\012r"
	.ascii	"eturn false\012end\012return not config.islinkeropt"
	.ascii	"imizedbuild(cfg.flags) and not cfg.flags.NoIncremen"
	.ascii	"talLink\012end\012function premake.config.isoptimiz"
	.ascii	"edbuild(flags)\012return flags.Optimize or flags.Op"
	.ascii	"timizeSize or flags.OptimizeSpeed\012end\012functio"
	.ascii	"n premake.config.islinkeroptimizedbuild(flags)\012r"
	.ascii	"eturn config.isoptimizedbuild(flags) and not flags."
	.ascii	"NoOptimizeLink\012end\012function premake.config.is"
	.ascii	"editandcontinue(cfg)\012if cfg.flags.NoEditAndConti"
	.ascii	"nue\012or cfg.flags.Managed\012or (cfg.kind ~= \"St"
	.ascii	"aticLib\" and not config.isincrementallink(cfg))\012"
	.ascii	"or config.islinkeroptimizedbuild(cfg.flags) then\012"
	.ascii	"return false\012end\012return true\012end\012\000"
	.align	2
.LC12:
	.ascii	"premake.bake = { }\012local bake = premake.bake\012"
	.ascii	"local nocopy =\012{\012blocks    = true,\012keyword"
	.ascii	"s  = true,\012projects  = true,\012__configs = true"
	.ascii	",\012}\012local nocascade =\012{\012makesettings = "
	.ascii	"true,\012}\012local keeprelative =\012{\012basedir "
	.ascii	" = true,\012location = true,\012}\012function prema"
	.ascii	"ke.getactiveterms(obj)\012local terms = { _action ="
	.ascii	" _ACTION:lower(), os = os.get() }\012for key, value"
	.ascii	" in pairs(_OPTIONS) do\012if value ~= \"\" then\012"
	.ascii	"table.insert(terms, value:lower())\012else\012table"
	.ascii	".insert(terms, key:lower())\012end\012end\012return"
	.ascii	" terms\012end\012function premake.iskeywordmatch(ke"
	.ascii	"yword, terms)\012if keyword:startswith(\"not \") th"
	.ascii	"en\012return not premake.iskeywordmatch(keyword:sub"
	.ascii	"(5), terms)\012end\012for _, pattern in ipairs(keyw"
	.ascii	"ord:explode(\" or \")) do\012for termkey, term in p"
	.ascii	"airs(terms) do\012if term:match(pattern) == term th"
	.ascii	"en\012return termkey\012end\012end\012end\012end\012"
	.ascii	"function premake.iskeywordsmatch(keywords, terms)\012"
	.ascii	"local hasrequired = false\012for _, keyword in ipai"
	.ascii	"rs(keywords) do\012local matched = premake.iskeywor"
	.ascii	"dmatch(keyword, terms)\012if not matched then\012re"
	.ascii	"turn false\012end\012if matched == \"required\" the"
	.ascii	"n\012hasrequired = true\012end\012end\012if terms.r"
	.ascii	"equired and not hasrequired then\012return false\012"
	.ascii	"else\012return true\012end\012end\012local function"
	.ascii	" adjustpaths(location, obj)\012function adjustpathl"
	.ascii	"ist(list)\012for i, p in ipairs(list) do\012list[i]"
	.ascii	" = path.getrelative(location, p)\012end\012end\012i"
	.ascii	"f obj.allfiles ~= nil then\012adjustpathlist(obj.al"
	.ascii	"lfiles)\012end\012for name, value in pairs(obj) do\012"
	.ascii	"local field = premake.fields[name]\012if field and "
	.ascii	"value and not keeprelative[name] then\012if field.k"
	.ascii	"ind == \"path\" then\012obj[name] = path.getrelativ"
	.ascii	"e(location, value)\012elseif field.kind == \"dirlis"
	.ascii	"t\" or field.kind == \"filelist\" then\012adjustpat"
	.ascii	"hlist(value)\012elseif field.kind == \"keypath\" th"
	.ascii	"en\012for k,v in pairs(value) do\012adjustpathlist("
	.ascii	"v)\012end\012end\012end\012end\012end\012local func"
	.ascii	"tion removevalue(tbl, remove)\012for index, item in"
	.ascii	" ipairs(tbl) do\012if item == remove then\012table."
	.ascii	"remove(tbl, index)\012break\012end\012end\012end\012"
	.ascii	"local function removevalues(tbl, removes)\012for k,"
	.ascii	" v in pairs(tbl) do\012for _, pattern in ipairs(rem"
	.ascii	"oves) do\012if pattern == tbl[k] then\012if ty"
	.ascii	"pe(k) == \"number\" then\012table.remove(tbl, k)\012"
	.ascii	"else\012tbl[k] = nil\012end\012break\012end\012end\012"
	.ascii	"end\012end\012local function mergefield(kind, dest,"
	.ascii	" src, mergecopiestotail)\012local tbl = dest or { }"
	.ascii	"\012if kind == \"keyvalue\" or kind == \"keypath\" "
	.ascii	"then\012for key, value in pairs(src) do\012tbl[key]"
	.ascii	" = mergefield(\"list\", tbl[key], value, mergecopie"
	.ascii	"stotail)\012end\012else\012for _, item in ipairs(sr"
	.ascii	"c) do\012if tbl[item] then\012if mergecopiestotail "
	.ascii	"then\012removevalue(tbl, item)\012table.insert(tbl,"
	.ascii	" item)\012tbl[item] = item\012end\012else\012table."
	.ascii	"insert(tbl, item)\012tbl[item] = item\012end\012end"
	.ascii	"\012end\012return tbl\012end\012local function merg"
	.ascii	"eobject(dest, src)\012if not src then\012return\012"
	.ascii	"end\012for fieldname, value in pairs(src) do\012if "
	.ascii	"not nocopy[fieldname] then\012local field = premake"
	.ascii	".fields[fieldname]\012if field then\012if type(valu"
	.ascii	"e) == \"table\" then\012dest[fieldname] = mergefiel"
	.ascii	"d(field.kind, dest[fieldname], value, field.mergeco"
	.ascii	"piestotail)\012if src.removes then\012removes = src"
	.ascii	".removes[fieldname]\012if removes then\012removeval"
	.ascii	"ues(dest[fieldname], removes)\012end\012end\012else"
	.ascii	"\012dest[fieldname] = value\012end\012else\012dest["
	.ascii	"fieldname] = value\012end\012end\012end\012end\012l"
	.ascii	"ocal function merge(dest, obj, basis, terms, cfgnam"
	.ascii	"e, pltname)\012local key = cfgname or \"\"\012pltna"
	.ascii	"me = pltname or \"Native\"\012if pltname ~= \"Nativ"
	.ascii	"e\" then\012key = key .. pltname\012end\012terms.co"
	.ascii	"nfig = (cfgname or \"\"):lower()\012terms.platform "
	.ascii	"= pltname:lower()\012local cfg = {}\012mergeobject("
	.ascii	"cfg, basis[key])\012adjustpaths(obj.location, cfg)\012"
	.ascii	"mergeobject(cfg, obj)\012if (cfg.kind) then\012term"
	.ascii	"s['kind']=cfg.kind:lower()\012end\012for _, blk in "
	.ascii	"ipairs(obj.blocks) do\012if (premake.iskeywordsmatc"
	.ascii	"h(blk.keywords, terms))then\012mergeobject(cfg, blk"
	.ascii	")\012if (cfg.kind and not cfg.terms.kind) then\012c"
	.ascii	"fg.terms['kind'] = cfg.kind:lower()\012terms['kind'"
	.ascii	"] = cfg.kind:lower()\012end\012end\012end\012cfg.na"
	.ascii	"me      = cfgname\012cfg.platform  = pltname\012for"
	.ascii	" k,v in pairs(terms) do\012cfg.terms[k] =v\012end\012"
	.ascii	"dest[key] = cfg\012end\012local function collapse(o"
	.ascii	"bj, basis)\012local result = {}\012basis = basis or"
	.ascii	" {}\012local sln = obj.solution or obj\012local ter"
	.ascii	"ms = premake.getactiveterms(obj)\012merge(result, o"
	.ascii	"bj, basis, terms)--this adjusts terms\012for _,"
	.ascii	" cfgname in ipairs(sln.configurations) do\012local "
	.ascii	"terms_local = {}\012for k,v in pairs(terms)do terms"
	.ascii	"_local[k]=v end\012merge(result, obj, basis, terms_"
	.ascii	"local, cfgname, \"Native\")--terms cam also be adju"
	.ascii	"sted here\012for _, pltname in ipairs(sln.platforms"
	.ascii	" or {}) do\012if pltname ~= \"Native\" then\012merg"
	.ascii	"e(result, obj, basis,terms_local, cfgname, pltname)"
	.ascii	"--terms also here\012end\012end\012end\012return re"
	.ascii	"sult\012end\012local function builduniquedirs()\012"
	.ascii	"local num_variations = 4\012local cfg_dirs = {}\012"
	.ascii	"local hit_counts = {}\012for sln in premake.solutio"
	.ascii	"n.each() do\012for _, prj in ipairs(sln.projects) d"
	.ascii	"o\012for _, cfg in pairs(prj.__configs) do\012local"
	.ascii	" dirs = { }\012dirs[1] = path.getabsolute(path.join"
	.ascii	"(cfg.location, cfg.objdir or cfg.project.objdir or "
	.ascii	"\"obj\"))\012dirs[2] = path.join(dirs[1], iif(cfg.p"
	.ascii	"latform == \"Native\", \"\", cfg.platform))\012dirs"
	.ascii	"[3] = path.join(dirs[2], cfg.name)\012dirs[4] = pat"
	.ascii	"h.join(dirs[3], cfg.project.name)\012cfg_dirs[cfg] "
	.ascii	"= dirs\012local start = iif(cfg.name, 2, 1)\012for "
	.ascii	"v = start, num_variations do\012local d = dirs[v]\012"
	.ascii	"hit_counts[d] = (hit_counts[d] or 0) + 1\012end\012"
	.ascii	"end\012end\012end\012for sln in premake.solution.ea"
	.ascii	"ch() do\012for _, prj in ipairs(sln.projects) do\012"
	.ascii	"for _, cfg in pairs(prj.__configs) do\012local dir\012"
	.ascii	"local start = iif(cfg.name, 2, 1)\012for v = start,"
	.ascii	" iif(cfg.flags.SingleOutputDir==true,num_variations"
	.ascii	"-1,num_variations) do\012dir = cfg_dirs[cfg][v]\012"
	.ascii	"if hit_counts[dir] == 1 then break end\012end\012cf"
	.ascii	"g.objectsdir = path.getrelative(cfg.location, dir)\012"
	.ascii	"end\012end\012end\012end\012local function buildtar"
	.ascii	"gets()\012for sln in premake.solution.each() do\012"
	.ascii	"for _, prj in ipairs(sln.projects) do\012for _, cfg"
	.ascii	" in pairs(prj.__configs) do\012local pathstyle = pr"
	.ascii	"emake.getpathstyle(cfg)\012local namestyle = premak"
	.ascii	"e.getnamestyle(cfg)\012cfg.buildtarget = premake.ge"
	.ascii	"ttarget(cfg, \"build\", pathstyle, namestyle, cfg.s"
	.ascii	"ystem)\012cfg.linktarget  = premake.gettarget(cfg, "
	.ascii	"\"link\",  pathstyle, namestyle, cfg.system)\012if "
	.ascii	"pathstyle == \"windows\" then\012cfg.objectsdir = p"
	.ascii	"ath.translate(cfg.objectsdir, \"\\\\\")\012end\012e"
	.ascii	"nd\012end\012end\012end\012  local function getCfgK"
	.ascii	"ind(cfg)\012  if(cfg.kind) then\012  return cfg.kin"
	.ascii	"d;\012  end\012 "
	.ascii	" if(cfg.project.__configs[\"\"] and cfg.project.__c"
	.ascii	"onfigs[\"\"].kind) then\012  return cfg.project.__c"
	.ascii	"onfigs[\"\"].kind;\012  end\012  return nil\012  en"
	.ascii	"d\012  local function getprojrec(dstArray, foundLis"
	.ascii	"t, cfg, cfgname, searchField, bLinkage)\012  if(not"
	.ascii	" cfg) then return end\012  local foundUsePrjs = {};"
	.ascii	"\012  for _, useName in ipairs(cfg[searchField]) do"
	.ascii	"\012  local testName = useName:lower();\012  if((no"
	.ascii	"t foundList[testName])) then\012  local theProj = n"
	.ascii	"il;\012  local theUseProj = nil;\012  for _, prj in"
	.ascii	" ipairs(cfg.project.solution.projects) do\012  if ("
	.ascii	"prj.name:lower() == testName) then\012  if(prj.usag"
	.ascii	"e) then\012  theUseProj = prj;\012  else\012  thePr"
	.ascii	"oj = prj;\012  end\012  end\012  end\012  --Must co"
	.ascii	"nnect to a usage project.\012  if(theUseProj) then\012"
	.ascii	"  foundList[testName] = true;\012  local prjEntry ="
	.ascii	" {\012  name = testName,\012  proj = theProj,\012  "
	.ascii	"usageProj = theUseProj,\012  bLinkageOnly = bLinkag"
	.ascii	"e,\012  };\012  dstArray[testName] = prjEntry;\012 "
	.ascii	" table.insert(foundUsePrjs, theUseProj);\012  end\012"
	.ascii	"  end\012  end\012  for _, usePrj in ipairs(foundUs"
	.ascii	"ePrjs) do\012  --Links can only recurse through sta"
	.ascii	"tic libraries.\012  if((searchField ~= \"links\") o"
	.ascii	"r\012  (getCfgKind(usePrj.__configs[cfgname]) == \""
	.ascii	"StaticLib\")) then\012  getprojrec(dstArray, foundL"
	.ascii	"ist, usePrj.__configs[cfgname],\012  cfgname, searc"
	.ascii	"hField, bLinkage);\012  end\012  end\012  end\012  "
	.ascii	"--\012  -- This function will recursively get all p"
	.ascii	"rojects that the given configuration has in its \"u"
	.ascii	"ses\"\012  -- field. The return values are a list o"
	.ascii	"f tables. Each table in that list contains the foll"
	.ascii	"owing:\012  --name = The lowercase name of the proj"
	.ascii	"ect.\012  --proj = The project. Can be nil if it is"
	.ascii	" usage-only.\012  --usageProj = The usage project. "
	.ascii	"Can't be nil, as using a project that has no\012  -"
	.ascii	"- usage project is not put into the list.\012  --bL"
	.ascii	"inkageOnly = If this is true, then only the linkage"
	.ascii	" information should be copied.\012  -- The recursio"
	.ascii	"n will only look at the \"uses\" field on *usage* p"
	.ascii	"rojects.\012  -- This function will also add projec"
	.ascii	"ts to the list that are mentioned in the \"links\"\012"
	.ascii	"  -- field of usage projects. These will only copy "
	.ascii	"linker information, but they wi"
	.ascii	"ll recurse.\012  -- through other \"links\" fields."
	.ascii	"\012  --\012  local function getprojectsconnections"
	.ascii	"(cfg, cfgname)\012  local dstArray = {};\012  local"
	.ascii	" foundList = {};\012  foundList[cfg.project.name:lo"
	.ascii	"wer()] = true;\012  --First, follow the uses recurs"
	.ascii	"ively.\012  getprojrec(dstArray, foundList, cfg, cf"
	.ascii	"gname, \"uses\", false);\012  --Next, go through al"
	.ascii	"l of the usage projects and recursively get their l"
	.ascii	"inks.\012  --But only if they're not already there."
	.ascii	" Get the links as linkage-only.\012  local linkArra"
	.ascii	"y = {};\012  for prjName, prjEntry in pairs(dstArra"
	.ascii	"y) do\012  getprojrec(linkArray, foundList, prjEntr"
	.ascii	"y.usageProj.__configs[cfgname], cfgname,\012  \"lin"
	.ascii	"ks\", true);\012  end\012  --Copy from linkArray in"
	.ascii	"to dstArray.\012  for prjName, prjEntry in pairs(li"
	.ascii	"nkArray) do\012  dstArray[prjName] = prjEntry;\012 "
	.ascii	" end\012  return dstArray;\012  end\012  local func"
	.ascii	"tion isnameofproj(cfg, strName)\012  local sln = cf"
	.ascii	"g.project.solution;\012  local strTest = strName:lo"
	.ascii	"wer();\012  for prjIx, prj in ipairs(sln.projects) "
	.ascii	"do\012  if (prj.name:lower() == strTest) then\012  "
	.ascii	"return true;\012  end\012  end\012  return false;\012"
	.ascii	"  end\012  --\012  -- Copies the field from dstCfg "
	.ascii	"to srcCfg.\012  --\012  local function copydependen"
	.ascii	"tfield(srcCfg, dstCfg, strSrcField)\012  local srcF"
	.ascii	"ield = premake.fields[strSrcField];\012  local strD"
	.ascii	"stField = strSrcField;\012  if type(srcCfg[strSrcFi"
	.ascii	"eld]) == \"table\" then\012  --handle paths.\012  i"
	.ascii	"f (srcField.kind == \"dirlist\" or srcField.kind =="
	.ascii	" \"filelist\") and\012  (not keeprelative[strSrcFie"
	.ascii	"ld]) then\012  for i,p in ipairs(srcCfg[strSrcField"
	.ascii	"]) do\012  table.insert(dstCfg[strDstField],\012  p"
	.ascii	"ath.rebase(p, srcCfg.project.location, dstCfg.proje"
	.ascii	"ct.location))\012  end\012  else\012  if(strSrcFiel"
	.ascii	"d == \"links\") then\012  for i,p in ipairs(srcCfg["
	.ascii	"strSrcField]) do\012  if(not isnameofproj(dstCfg, p"
	.ascii	")) then\012  table.insert(dstCfg[strDstField], p)\012"
	.ascii	"  else\012  printf(\"Failed to copy '%s' from proj "
	.ascii	"'%s'.\",\012  p, srcCfg.project.name);\012  end\012"
	.ascii	"  end\012  else\012  for i,p in ipairs(srcCfg[strSr"
	.ascii	"cField]) do\012  table.insert(dstCfg[strDstField], "
	.ascii	"p)\012  end\012  end\012  end\012  else\012  if(src"
	.ascii	"Field.kind == \"path\" and (not keeprelative[strSrc"
	.ascii	"Field])) t"
	.ascii	"hen\012  dstCfg[strDstField] = path.rebase(srcCfg[s"
	.ascii	"trSrcField],\012  prj.location, dstCfg.project.loca"
	.ascii	"tion);\012  else\012  dstCfg[strDstField] = srcCfg["
	.ascii	"strSrcField];\012  end\012  end\012  end\012  --\012"
	.ascii	"  -- This function will take the list of project en"
	.ascii	"tries and apply their usage project data\012  -- to"
	.ascii	" the given configuration. It will copy compiling in"
	.ascii	"formation for the projects that are\012  -- not lis"
	.ascii	"ted as linkage-only. It will copy the linking infor"
	.ascii	"mation for projects only if\012  -- the source proj"
	.ascii	"ect is not a static library. It won't copy linking "
	.ascii	"information\012  -- if the project is in this solut"
	.ascii	"ion; instead it will add that project to the config"
	.ascii	"uration's\012  -- links field, expecting that Prema"
	.ascii	"ke will handle the rest.\012  --\012  local functio"
	.ascii	"n copyusagedata(cfg, cfgname, linkToProjs)\012  loc"
	.ascii	"al myPrj = cfg.project;\012  local bIsStaticLib = ("
	.ascii	"getCfgKind(cfg) == \"StaticLib\");\012  for prjName"
	.ascii	", prjEntry in pairs(linkToProjs) do\012  local srcP"
	.ascii	"rj = prjEntry.usageProj;\012  local srcCfg = srcPrj"
	.ascii	".__configs[cfgname];\012  for name, field in pairs("
	.ascii	"premake.fields) do\012  if(srcCfg[name]) then\012  "
	.ascii	"if(field.usagecopy) then\012  if(not prjEntry.bLink"
	.ascii	"ageOnly) then\012  copydependentfield(srcCfg, cfg, "
	.ascii	"name)\012  end\012  elseif(field.linkagecopy) then\012"
	.ascii	"  --Copy the linkage data if we're building a non-s"
	.ascii	"tatic thing\012  --and this is a pure usage project"
	.ascii	". If it's not pure-usage, then\012  --we will simpl"
	.ascii	"y put the project's name in the links field later.\012"
	.ascii	"  if((not bIsStaticLib) and (not prjEntry.proj)) th"
	.ascii	"en\012  copydependentfield(srcCfg, cfg, name)\012  "
	.ascii	"end\012  end\012  end\012  end\012  if((not bIsStat"
	.ascii	"icLib) and prjEntry.proj) then\012  table.insert(cf"
	.ascii	"g.links, prjEntry.proj.name);\012  end\012  end\012"
	.ascii	"  end\012    local function inverseliteralvpaths()\012"
	.ascii	"        for sln in premake.solution.each() do\012  "
	.ascii	"          for _,prj in ipairs(sln.projects) do\012 "
	.ascii	"               prj.inversevpaths = {}\012          "
	.ascii	"      for replacement, patterns in pairs(prj.vpaths"
	.ascii	" or {}) do\012                    for _, pattern in"
	.ascii	" ipairs(patterns) do\012                        if "
	.ascii	"string.find(pattern, \"*\") == nil then\012        "
	.ascii	"  "
	.ascii	"                  prj.inversevpaths[pattern] = repl"
	.ascii	"acement\012                        end\012         "
	.ascii	"           end\012                end\012          "
	.ascii	"  end\012        end\012    end\012function premake"
	.ascii	".bake.buildconfigs()\012for sln in premake.solution"
	.ascii	".each() do\012for _, prj in ipairs(sln.projects) do"
	.ascii	"\012prj.location = prj.location or sln.location or "
	.ascii	"prj.basedir\012adjustpaths(prj.location, prj)\012fo"
	.ascii	"r _, blk in ipairs(prj.blocks) do\012adjustpaths(pr"
	.ascii	"j.location, blk)\012end\012end\012sln.location = sl"
	.ascii	"n.location or sln.basedir\012end\012        -- conv"
	.ascii	"ert paths for imported projects to be relative to s"
	.ascii	"olution location\012for sln in premake.solution.eac"
	.ascii	"h() do\012for _, iprj in ipairs(sln.importedproject"
	.ascii	"s) do\012iprj.location = path.getabsolute(iprj.loca"
	.ascii	"tion)\012end\012end\012        inverseliteralvpaths"
	.ascii	"()\012for sln in premake.solution.each() do\012loca"
	.ascii	"l basis = collapse(sln)\012for _, prj in ipairs(sln"
	.ascii	".projects) do\012prj.__configs = collapse(prj, basi"
	.ascii	"s)\012for _, cfg in pairs(prj.__configs) do\012bake"
	.ascii	".postprocess(prj, cfg)\012end\012end\012end\012for "
	.ascii	"sln in premake.solution.each() do\012for prjIx, prj"
	.ascii	" in ipairs(sln.projects) do\012if(not prj.usage) th"
	.ascii	"en\012for cfgname, cfg in pairs(prj.__configs) do\012"
	.ascii	"local usesPrjs = getprojectsconnections(cfg, cfgnam"
	.ascii	"e);\012copyusagedata(cfg, cfgname, usesPrjs)\012end"
	.ascii	"\012end\012end\012end\012for sln in premake.solutio"
	.ascii	"n.each() do\012for prjIx, prj in ipairs(sln.project"
	.ascii	"s) do\012for cfgName, cfg in pairs(prj.__configs) d"
	.ascii	"o\012cfg.build = true\012local removes = nil\012if "
	.ascii	"cfg.removes ~= nil then\012removes = cfg.removes[\""
	.ascii	"platforms\"];\012end\012if removes ~= nil  then\012"
	.ascii	"for _,p in ipairs(removes) do\012if p == cfg.platfo"
	.ascii	"rm then\012cfg.build = false\012end\012end\012end\012"
	.ascii	"end\012end\012end\012for sln in premake.solution.ea"
	.ascii	"ch() do\012local removeList = {};\012for index, prj"
	.ascii	" in ipairs(sln.projects) do\012if(prj.usage) then\012"
	.ascii	"table.insert(removeList, 1, index); --Add in revers"
	.ascii	"e order.\012end\012end\012for _, index in ipairs(re"
	.ascii	"moveList) do\012table.remove(sln.projects, index);\012"
	.ascii	"end\012end\012builduniquedirs()\012buildtargets(cfg"
	.ascii	")\012end\012function premake.bake.postprocess(prj, "
	.ascii	"cfg)\012cfg.project   = prj\012cfg.shortname = prem"
	.ascii	"ake.getconfigname(cfg.name, cfg.pl"
	.ascii	"atform, true)\012cfg.longname  = premake.getconfign"
	.ascii	"ame(cfg.name, cfg.platform)\012cfg.location = cfg.l"
	.ascii	"ocation or cfg.basedir\012local platform = premake."
	.ascii	"platforms[cfg.platform]\012if platform.iscrosscompi"
	.ascii	"ler then\012cfg.system = cfg.platform\012else\012cf"
	.ascii	"g.system = os.get()\012end\012if cfg.kind == \"Bund"
	.ascii	"le\"\012and _ACTION ~= \"gmake\"\012and (_ACTION ~="
	.ascii	" \"ninja\" and (not prj.options or not prj.options."
	.ascii	"SkipBundling))\012and not _ACTION:match(\"xcode[0-9"
	.ascii	"]\") then\012cfg.kind = \"SharedLib\"\012end\012if "
	.ascii	"cfg.kind == \"SharedLib\" and platform.nosharedlibs"
	.ascii	" then\012cfg.kind = \"StaticLib\"\012end\012local r"
	.ascii	"emovefiles = cfg.removefiles\012if _ACTION == 'gmak"
	.ascii	"e' or _ACTION == 'ninja' then\012removefiles = tabl"
	.ascii	"e.join(removefiles, cfg.excludes)\012end\012local r"
	.ascii	"emovefilesDict = {}\012for _, fname in ipairs(remov"
	.ascii	"efiles) do\012removefilesDict[fname] = true\012end\012"
	.ascii	"local files = {}\012for _, fname in ipairs(cfg.file"
	.ascii	"s) do\012if removefilesDict[fname] == nil then\012t"
	.ascii	"able.insert(files, fname)\012end\012end\012cfg.file"
	.ascii	"s = files\012local allfiles = {}\012local allfilesD"
	.ascii	"ict = {}\012if cfg.allfiles ~= nil then\012for _, f"
	.ascii	"name in ipairs(cfg.allfiles) do\012if allfilesDict["
	.ascii	"fname] == nil then\012if removefilesDict[fname] == "
	.ascii	"nil then\012allfilesDict[fname] = true\012table.ins"
	.ascii	"ert(allfiles, fname)\012end\012end\012end\012end\012"
	.ascii	"cfg.allfiles = allfiles\012for name, field in pairs"
	.ascii	"(premake.fields) do\012if field.isflags then\012loc"
	.ascii	"al values = cfg[name]\012for _, flag in ipairs(valu"
	.ascii	"es) do values[flag] = true end\012end\012end\012loc"
	.ascii	"al cfgfields = {\012{\"__fileconfigs\",    cfg.file"
	.ascii	"s},\012{\"__allfileconfigs\", cfg.allfiles},\012}\012"
	.ascii	"for _, cfgfield in ipairs(cfgfields) do\012local fi"
	.ascii	"eldname = cfgfield[1]\012local field     = cfgfield"
	.ascii	"[2]\012cfg[fieldname] = { }\012for _, fname in ipai"
	.ascii	"rs(field) do\012local fcfg = {}\012if premake._file"
	.ascii	"levelconfig then\012cfg.terms.required = fname:lowe"
	.ascii	"r()\012for _, blk in ipairs(cfg.project.blocks) do\012"
	.ascii	"if (premake.iskeywordsmatch(blk.keywords, cfg.terms"
	.ascii	")) then\012mergeobject(fcfg, blk)\012end\012end\012"
	.ascii	"end\012fcfg.name = fname\012cfg[fieldname][fname] ="
	.ascii	" fcfg\012table.insert(cfg[fieldname], fcfg)\012end\012"
	.ascii	"end\012end\012\000"
	.align	2
.LC13:
	.ascii	"premake.fields = {}\012premake.check_paths = false\012"
	.ascii	"function premake.checkvalue(value, allowed)\012if ("
	.ascii	"allowed) then\012if (type(allowed) == \"function\")"
	.ascii	" then\012return allowed(value)\012else\012for _,v i"
	.ascii	"n ipairs(allowed) do\012if (value:lower() == v:lowe"
	.ascii	"r()) then\012return v\012end\012end\012return nil, "
	.ascii	"\"invalid value '\" .. value .. \"'\"\012end\012els"
	.ascii	"e\012return value\012end\012end\012function premake"
	.ascii	".getobject(t)\012local container\012if (t == \"cont"
	.ascii	"ainer\" or t == \"solution\") then\012container = p"
	.ascii	"remake.CurrentContainer\012else\012container = prem"
	.ascii	"ake.CurrentConfiguration\012end\012if t == \"soluti"
	.ascii	"on\" then\012if typex(container) == \"project\" the"
	.ascii	"n\012container = container.solution\012end\012if ty"
	.ascii	"pex(container) ~= \"solution\" then\012container = "
	.ascii	"nil\012end\012end\012local msg\012if (not container"
	.ascii	") then\012if (t == \"container\") then\012msg = \"n"
	.ascii	"o active solution or project\"\012elseif (t == \"so"
	.ascii	"lution\") then\012msg = \"no active solution\"\012e"
	.ascii	"lse\012msg = \"no active solution, project, or conf"
	.ascii	"iguration\"\012end\012end\012return container, msg\012"
	.ascii	"end\012function premake.setarray(obj, fieldname, va"
	.ascii	"lue, allowed)\012obj[fieldname] = obj[fieldname] or"
	.ascii	" {}\012local function add(value, depth)\012if type("
	.ascii	"value) == \"table\" then\012for _,v in ipairs(value"
	.ascii	") do\012add(v, depth + 1)\012end\012else\012value, "
	.ascii	"err = premake.checkvalue(value, allowed)\012if not "
	.ascii	"value then\012error(err, depth)\012end\012table.ins"
	.ascii	"ert(obj[fieldname], value)\012end\012end\012if valu"
	.ascii	"e then\012add(value, 5)\012end\012return obj[fieldn"
	.ascii	"ame]\012end\012function premake.settable(obj, field"
	.ascii	"name, value, allowed)\012obj[fieldname] = obj[field"
	.ascii	"name] or {}\012table.insert(obj[fieldname], value)\012"
	.ascii	"return obj[fieldname]\012end\012local function doma"
	.ascii	"tchedarray(fields, value, matchfunc)\012local resul"
	.ascii	"t = { }\012function makeabsolute(value, depth)\012i"
	.ascii	"f (type(value) == \"table\") then\012for _, item in"
	.ascii	" ipairs(value) do\012makeabsolute(item, depth + 1)\012"
	.ascii	"end\012elseif type(value) == \"string\" then\012if "
	.ascii	"value:find(\"*\") then\012local arr = matchfunc(val"
	.ascii	"ue);\012if (premake.check_paths) and (#arr == 0) th"
	.ascii	"en\012error(\"Can't find matching files for pattern"
	.ascii	" :\" .. value)\012end\012makeabsolute(arr, depth + "
	.ascii	"1)\012else\012table.insert(result, path.getabsolute"
	.ascii	"(value))\012end\012else\012error(\"Invalid va"
	.ascii	"lue in list: expected string, got \" .. type(value)"
	.ascii	", depth)\012end\012end\012makeabsolute(value, 3)\012"
	.ascii	"local retval = {}\012for index, field in ipairs(fie"
	.ascii	"lds) do\012local ctype = field[1]\012local fieldnam"
	.ascii	"e = field[2]\012local array = premake.setarray(ctyp"
	.ascii	"e, fieldname, result)\012if index == 1 then\012retv"
	.ascii	"al = array\012end\012end\012return retval\012end\012"
	.ascii	"function premake.setdirarray(fields, value)\012retu"
	.ascii	"rn domatchedarray(fields, value, os.matchdirs)\012e"
	.ascii	"nd\012function premake.setfilearray(fields, value)\012"
	.ascii	"return domatchedarray(fields, value, os.matchfiles)"
	.ascii	"\012end\012function premake.setkeyvalue(ctype, fiel"
	.ascii	"dname, values)\012local container, err = premake.ge"
	.ascii	"tobject(ctype)\012if not container then\012error(er"
	.ascii	"r, 4)\012end\012if not container[fieldname] then\012"
	.ascii	"container[fieldname] = {}\012end\012if type(values)"
	.ascii	" ~= \"table\" then\012error(\"invalid value; table "
	.ascii	"expected\", 4)\012end\012local field = container[fi"
	.ascii	"eldname]\012for key,value in pairs(values) do\012if"
	.ascii	" not field[key] then\012field[key] = {}\012end\012t"
	.ascii	"able.insertflat(field[key], value)\012end\012return"
	.ascii	" field\012end\012function premake.setstring(ctype, "
	.ascii	"fieldname, value, allowed)\012local container, err "
	.ascii	"= premake.getobject(ctype)\012if (not container) th"
	.ascii	"en\012error(err, 4)\012end\012if (value) then\012va"
	.ascii	"lue, err = premake.checkvalue(value, allowed)\012if"
	.ascii	" (not value) then\012error(err, 4)\012end\012contai"
	.ascii	"ner[fieldname] = value\012end\012return container[f"
	.ascii	"ieldname]\012end\012function premake.remove(fieldna"
	.ascii	"me, value)\012local cfg = premake.CurrentConfigurat"
	.ascii	"ion\012cfg.removes = cfg.removes or {}\012cfg.remov"
	.ascii	"es[fieldname] = premake.setarray(cfg.removes, field"
	.ascii	"name, value)\012end\012local function accessor(name"
	.ascii	", value)\012local kind    = premake.fields[name].ki"
	.ascii	"nd\012local scope   = premake.fields[name].scope\012"
	.ascii	"local allowed = premake.fields[name].allowed\012if "
	.ascii	"(kind == \"string\" or kind == \"path\") and value "
	.ascii	"then\012if type(value) ~= \"string\" then\012error("
	.ascii	"\"string value expected\", 3)\012end\012end\012loca"
	.ascii	"l container, err = premake.getobject(scope)\012if ("
	.ascii	"not container) then\012error(err, 3)\012end\012if k"
	.ascii	"ind == \"string\" then\012return premake.setstring("
	.ascii	"scope, name, value, allowed)\012elseif kind == \"pa"
	.ascii	"th\" then\012if value then value = path.getab"
	.ascii	"solute(value) end\012return premake.setstring(scope"
	.ascii	", name, value)\012elseif kind == \"list\" then\012r"
	.ascii	"eturn premake.setarray(container, name, value, allo"
	.ascii	"wed)\012elseif kind == \"table\" then\012return pre"
	.ascii	"make.settable(container, name, value, allowed)\012e"
	.ascii	"lseif kind == \"dirlist\" then\012return premake.se"
	.ascii	"tdirarray({{container, name}}, value)\012elseif kin"
	.ascii	"d == \"filelist\" or kind == \"absolutefilelist\" t"
	.ascii	"hen\012local fields = {{container, name}}\012if nam"
	.ascii	"e == \"files\" then\012local prj, err = premake.get"
	.ascii	"object(\"container\")\012if (not prj) then\012error"
	.ascii	"(err, 2)\012end\012table.insert(fields, {prj.blocks"
	.ascii	"[1], \"allfiles\"})\012end\012return premake.setfil"
	.ascii	"earray(fields, value)\012elseif kind == \"keyvalue\""
	.ascii	" or kind == \"keypath\" then\012return premake.setk"
	.ascii	"eyvalue(scope, name, value)\012end\012end\012functi"
	.ascii	"on configuration(terms)\012if not terms then\012ret"
	.ascii	"urn premake.CurrentConfiguration\012end\012local co"
	.ascii	"ntainer, err = premake.getobject(\"container\")\012"
	.ascii	"if (not container) then\012error(err, 2)\012end\012"
	.ascii	"local cfg = { }\012cfg.terms = table.flatten({terms"
	.ascii	"})\012table.insert(container.blocks, cfg)\012premak"
	.ascii	"e.CurrentConfiguration = cfg\012cfg.keywords = { }\012"
	.ascii	"for _, word in ipairs(cfg.terms) do\012table.insert"
	.ascii	"(cfg.keywords, path.wildcards(word):lower())\012end"
	.ascii	"\012for name, field in pairs(premake.fields) do\012"
	.ascii	"if (field.kind ~= \"string\" and field.kind ~= \"pa"
	.ascii	"th\") then\012cfg[name] = { }\012end\012end\012retu"
	.ascii	"rn cfg\012end\012local function creategroup(name, s"
	.ascii	"ln, curpath, parent, inpath)\012local group = {}\012"
	.ascii	"setmetatable(group, {\012__type = \"group\"\012})\012"
	.ascii	"table.insert(sln.groups, group)\012sln.groups[inpat"
	.ascii	"h] = group\012if parent ~= nil then\012table.insert"
	.ascii	"(parent.groups, group)\012end\012group.solution = s"
	.ascii	"ln\012group.name = name\012group.uuid = os.uuid(cur"
	.ascii	"path)\012group.parent = parent\012group.projects = "
	.ascii	"{ }\012group.groups = { }\012return group\012end\012"
	.ascii	"local function creategroupsfrompath(inpath, sln)\012"
	.ascii	"if inpath == nil then return nil end\012inpath = pa"
	.ascii	"th.translate(inpath, \"/\")\012local groups = strin"
	.ascii	"g.explode(inpath, \"/\")\012local curpath = \"\"\012"
	.ascii	"local lastgroup = nil\012for i, v in ipairs(groups)"
	.ascii	" do\012curpath = curpath .. \"/\" .. v:lower()\012l"
	.ascii	"ocal group = sln.groups[curpath]\012if group == n"
	.ascii	"il then\012group = creategroup(v, sln, curpath, las"
	.ascii	"tgroup, curpath)\012end\012lastgroup = group\012end"
	.ascii	"\012return lastgroup\012end\012local function creat"
	.ascii	"eproject(name, sln, isUsage)\012local prj = {}\012s"
	.ascii	"etmetatable(prj, {\012__type = \"project\",\012})\012"
	.ascii	"table.insert(sln.projects, prj)\012if(isUsage) then"
	.ascii	"\012if(sln.projects[name]) then\012sln.projects[nam"
	.ascii	"e].usageProj = prj;\012else\012sln.projects[name] ="
	.ascii	" prj\012end\012else\012if(sln.projects[name]) then\012"
	.ascii	"prj.usageProj = sln.projects[name];\012end\012sln.p"
	.ascii	"rojects[name] = prj\012end\012local group = createg"
	.ascii	"roupsfrompath(premake.CurrentGroup, sln)\012if grou"
	.ascii	"p ~= nil then\012table.insert(group.projects, prj)\012"
	.ascii	"end\012prj.solution       = sln\012prj.name        "
	.ascii	"   = name\012prj.basedir        = os.getcwd()\012pr"
	.ascii	"j.uuid           = os.uuid(prj.name)\012prj.blocks "
	.ascii	"        = { }\012prj.usage          = isUsage\012pr"
	.ascii	"j.group          = group\012return prj;\012end\012f"
	.ascii	"unction usage(name)\012if (not name) then\012if(typ"
	.ascii	"ex(premake.CurrentContainer) ~= \"project\") then r"
	.ascii	"eturn nil end\012if(not premake.CurrentContainer.us"
	.ascii	"age) then return nil end\012return premake.CurrentC"
	.ascii	"ontainer\012end\012local sln\012if (typex(premake.C"
	.ascii	"urrentContainer) == \"project\") then\012sln = prem"
	.ascii	"ake.CurrentContainer.solution\012else\012sln = prem"
	.ascii	"ake.CurrentContainer\012end\012if (typex(sln) ~= \""
	.ascii	"solution\") then\012error(\"no active solution\", 2"
	.ascii	")\012end\012if((not sln.projects[name]) or\012((not"
	.ascii	" sln.projects[name].usage) and (not sln.projects[na"
	.ascii	"me].usageProj))) then\012premake.CurrentContainer ="
	.ascii	" createproject(name, sln, true)\012else\012premake."
	.ascii	"CurrentContainer = iff(sln.projects[name].usage,\012"
	.ascii	"sln.projects[name], sln.projects[name].usageProj)\012"
	.ascii	"end\012configuration { }\012return premake.CurrentC"
	.ascii	"ontainer\012end\012function project(name)\012if (no"
	.ascii	"t name) then\012if(typex(premake.CurrentContainer) "
	.ascii	"~= \"project\") then return nil end\012if(premake.C"
	.ascii	"urrentContainer.usage) then return nil end\012retur"
	.ascii	"n premake.CurrentContainer\012end\012local sln\012i"
	.ascii	"f (typex(premake.CurrentContainer) == \"project\") "
	.ascii	"then\012sln = premake.CurrentContainer.solution\012"
	.ascii	"else\012sln = premake.CurrentContainer\012end\012if"
	.ascii	" (typex(sln) ~= \"solution\") then\012error(\"no ac"
	.ascii	"tive solution\", 2)\012end\012if((not sln.projec"
	.ascii	"ts[name]) or sln.projects[name].usage) then\012prem"
	.ascii	"ake.CurrentContainer = createproject(name, sln)\012"
	.ascii	"else\012premake.CurrentContainer = sln.projects[nam"
	.ascii	"e];\012end\012configuration { }\012return premake.C"
	.ascii	"urrentContainer\012end\012function solution(name)\012"
	.ascii	"if not name then\012if typex(premake.CurrentContain"
	.ascii	"er) == \"project\" then\012return premake.CurrentCo"
	.ascii	"ntainer.solution\012else\012return premake.CurrentC"
	.ascii	"ontainer\012end\012end\012premake.CurrentContainer "
	.ascii	"= premake.solution.get(name)\012if (not premake.Cur"
	.ascii	"rentContainer) then\012premake.CurrentContainer = p"
	.ascii	"remake.solution.new(name)\012end\012configuration {"
	.ascii	" }\012return premake.CurrentContainer\012end\012fun"
	.ascii	"ction group(name)\012if not name then\012return pre"
	.ascii	"make.CurrentGroup\012end\012premake.CurrentGroup = "
	.ascii	"name\012return premake.CurrentGroup\012end\012funct"
	.ascii	"ion importvsproject(location)\012if string.find(_AC"
	.ascii	"TION, \"vs\") ~= 1 then\012error(\"Only available f"
	.ascii	"or visual studio actions\")\012end\012sln, err = pr"
	.ascii	"emake.getobject(\"solution\")\012if not sln then\012"
	.ascii	"error(err)\012end\012local group = creategroupsfrom"
	.ascii	"path(premake.CurrentGroup, sln)\012local project = "
	.ascii	"{}\012project.location = location\012project.group "
	.ascii	"= group\012project.flags = {}\012table.insert(sln.i"
	.ascii	"mportedprojects, project)\012    end\012function ne"
	.ascii	"waction(a)\012premake.action.add(a)\012end\012funct"
	.ascii	"ion newoption(opt)\012premake.option.add(opt)\012en"
	.ascii	"d\012function enablefilelevelconfig()\012premake._f"
	.ascii	"ilelevelconfig = true\012end\012function newapifiel"
	.ascii	"d(field)\012premake.fields[field.name] = field\012_"
	.ascii	"G[field.name] = function(value)\012return accessor("
	.ascii	"field.name, value)\012end\012if field.kind == \"lis"
	.ascii	"t\"\012or field.kind == \"dirlist\"\012or field.kin"
	.ascii	"d == \"filelist\"\012or field.kind == \"absolutefil"
	.ascii	"elist\"\012then\012if  field.name ~= \"removefiles\""
	.ascii	"\012and field.name ~= \"files\" then\012_G[\"remove"
	.ascii	"\"..field.name] = function(value)\012premake.remove"
	.ascii	"(field.name, value)\012end\012end\012end\012end\012"
	.ascii	"newapifield {\012name  = \"archivesplit_size\",\012"
	.ascii	"kind  = \"string\",\012scope = \"config\",\012}\012"
	.ascii	"newapifield {\012name  = \"basedir\",\012kind  = \""
	.ascii	"path\",\012scope = \"container\",\012}\012newapifie"
	.ascii	"ld {\012name  = \"buildaction\",\012kind  = \"strin"
	.ascii	"g\",\012scope = \"config\",\012allowed = {\012\"Com"
	.ascii	"pile\",\012\"Copy\",\012\"Embed\",\012\"None\"\012}"
	.ascii	"\012}\012newapifield {\012name "
	.ascii	" = \"buildoptions\",\012kind  = \"list\",\012scope "
	.ascii	"= \"config\",\012}\012newapifield {\012name  = \"bu"
	.ascii	"ildoptions_asm\",\012kind  = \"list\",\012scope = \""
	.ascii	"config\",\012}\012newapifield {\012name  = \"buildo"
	.ascii	"ptions_c\",\012kind  = \"list\",\012scope = \"confi"
	.ascii	"g\",\012}\012newapifield {\012name  = \"buildoption"
	.ascii	"s_cpp\",\012kind  = \"list\",\012scope = \"config\""
	.ascii	",\012}\012newapifield {\012name  = \"buildoptions_o"
	.ascii	"bjc\",\012kind  = \"list\",\012scope = \"config\",\012"
	.ascii	"}\012newapifield {\012name  = \"buildoptions_objcpp"
	.ascii	"\",\012kind  = \"list\",\012scope = \"config\",\012"
	.ascii	"}\012newapifield {\012name  = \"buildoptions_vala\""
	.ascii	",\012kind  = \"list\",\012scope = \"config\",\012}\012"
	.ascii	"newapifield {\012name  = \"clrreferences\",\012kind"
	.ascii	" = \"list\",\012scope = \"container\",\012}\012newa"
	.ascii	"pifield {\012name  = \"configurations\",\012kind  ="
	.ascii	" \"list\",\012scope = \"solution\",\012}\012newapif"
	.ascii	"ield {\012name  = \"custombuildtask\",\012kind  = \""
	.ascii	"table\",\012scope = \"config\",\012}\012newapifield"
	.ascii	" {\012name  = \"debugcmd\",\012kind = \"string\",\012"
	.ascii	"scope = \"config\",\012}\012newapifield {\012name  "
	.ascii	"= \"debugargs\",\012kind = \"list\",\012scope = \"c"
	.ascii	"onfig\",\012}\012newapifield {\012name  = \"debugdi"
	.ascii	"r\",\012kind = \"path\",\012scope = \"config\",\012"
	.ascii	"}\012newapifield {\012name  = \"debugenvs\" ,\012ki"
	.ascii	"nd = \"list\",\012scope = \"config\",\012}\012newap"
	.ascii	"ifield {\012name  = \"defines\",\012kind  = \"list\""
	.ascii	",\012scope = \"config\",\012}\012newapifield {\012n"
	.ascii	"ame  = \"deploymentoptions\",\012kind  = \"list\",\012"
	.ascii	"scope = \"config\",\012usagecopy = true,\012}\012ne"
	.ascii	"wapifield {\012name  = \"dependency\",\012kind  = \""
	.ascii	"table\",\012scope = \"config\",\012}\012newapifield"
	.ascii	" {\012name  = \"deploymode\",\012kind = \"string\","
	.ascii	"\012scope = \"config\",\012}\012newapifield {\012na"
	.ascii	"me  = \"excludes\",\012kind  = \"filelist\",\012sco"
	.ascii	"pe = \"config\",\012}\012newapifield {\012name  = \""
	.ascii	"forcenative\",\012kind = \"filelist\",\012scope = \""
	.ascii	"config\",\012}\012newapifield {\012name  = \"nopch\""
	.ascii	",\012kind  = \"filelist\",\012scope = \"config\",\012"
	.ascii	"}\012newapifield {\012name  = \"files\",\012kind  ="
	.ascii	" \"filelist\",\012scope = \"config\",\012}\012newap"
	.ascii	"ifield {\012name  = \"removefiles\",\012kind  = \"f"
	.ascii	"ilelist\",\012scope = \"config\",\012}\012newapifie"
	.ascii	"ld {\012name  = \"flags\",\012kind  = \"list\",\012"
	.ascii	"scope = \"config\",\012isflags = true,\012usagecopy"
	.ascii	" = true,\012allowed = function(value)\012local allo"
	.ascii	"wed_flags = {\012AntBuildDebuggable = 1,\012ATL = 1"
	.ascii	",\012C7DebugInfo = 1,\012Cpp11 = 1,\012Cpp14 = 1,\012"
	.ascii	"Cpp17 = 1,\012CppLatest = 1,\012DebugEnvsDontMerge "
	.ascii	"= 1,\012DebugEnv"
	.ascii	"sInherit = 1,\012DeploymentContent = 1,\012EnableMi"
	.ascii	"nimalRebuild = 1,\012EnableSSE = 1,\012EnableSSE2 ="
	.ascii	" 1,\012EnableAVX = 1,\012EnableAVX2 = 1,\012Pedanti"
	.ascii	"cWarnings = 1,\012ExtraWarnings = 1,\012FatalWarnin"
	.ascii	"gs = 1,\012FloatFast = 1,\012FloatStrict = 1,\012Fu"
	.ascii	"llSymbols = 1,\012GenerateMapFiles = 1,\012Hotpatch"
	.ascii	"able = 1,\012LinkSupportCircularDependencies = 1,\012"
	.ascii	"Managed = 1,\012MinimumWarnings = 1,\012MFC = 1,\012"
	.ascii	"NativeWChar = 1,\012No64BitChecks = 1,\012NoBufferS"
	.ascii	"ecurityCheck = 1,\012NoEditAndContinue = 1,\012NoEx"
	.ascii	"ceptions = 1,\012NoFramePointer = 1,\012NoImportLib"
	.ascii	" = 1,\012NoIncrementalLink = 1,\012NoJMC = 1,\012No"
	.ascii	"Manifest = 1,\012NoMultiProcessorCompilation = 1,\012"
	.ascii	"NoNativeWChar = 1,\012NoOptimizeLink = 1,\012NoPCH "
	.ascii	"= 1,\012NoRTTI = 1,\012NoRuntimeChecks = 1,\012NoWi"
	.ascii	"nMD = 1,    -- explicitly disables Windows Metadata"
	.ascii	"\012NoWinRT = 1,    -- explicitly disables Windows "
	.ascii	"Runtime Extension\012FastCall = 1,\012StdCall = 1,\012"
	.ascii	"SingleOutputDir = 1,\012ObjcARC = 1,\012Optimize = "
	.ascii	"1,\012OptimizeSize = 1,\012OptimizeSpeed = 1,\012De"
	.ascii	"bugRuntime = 1,\012ReleaseRuntime = 1,\012SEH = 1,\012"
	.ascii	"StaticATL = 1,\012StaticRuntime = 1,\012Symbols = 1"
	.ascii	",\012Unicode = 1,\012UnitySupport = 1,\012Unsafe = "
	.ascii	"1,\012UnsignedChar = 1,\012UseFullPaths = 1,\012Use"
	.ascii	"LDResponseFile = 1,\012UseObjectResponseFile = 1,\012"
	.ascii	"WinMain = 1\012}\012local englishToAmericanSpelling"
	.ascii	" =\012{\012nooptimiselink = 'nooptimizelink',\012op"
	.ascii	"timise = 'optimize',\012optimisesize = 'optimizesiz"
	.ascii	"e',\012optimisespeed = 'optimizespeed',\012}\012loc"
	.ascii	"al lowervalue = value:lower()\012lowervalue = engli"
	.ascii	"shToAmericanSpelling[lowervalue] or lowervalue\012f"
	.ascii	"or v, _ in pairs(allowed_flags) do\012if v:lower() "
	.ascii	"== lowervalue then\012return v\012end\012end\012ret"
	.ascii	"urn nil, \"invalid flag\"\012end,\012}\012newapifie"
	.ascii	"ld {\012name  = \"framework\",\012kind = \"string\""
	.ascii	",\012scope = \"container\",\012allowed = {\012\"1.0"
	.ascii	"\",\012\"1.1\",\012\"2.0\",\012\"3.0\",\012\"3.5\","
	.ascii	"\012\"4.0\",\012\"4.5\",\012\"4.5.1\",\012\"4.5.2\""
	.ascii	",\012\"4.6\",\012\"4.6.1\",\012\"4.6.2\",\012}\012}"
	.ascii	"\012newapifield {\012name  = \"iostargetplatformver"
	.ascii	"sion\",\012kind  = \"string\",\012scope = \"project"
	.ascii	"\",\012}\012newapifield {\012name  = \"macostargetp"
	.ascii	"latformversion\",\012kind  = \"string\",\012scope ="
	.ascii	" \"project\",\012}\012newapifield {\012name  = \"tv"
	.ascii	"ostargetplatformversion\",\012kind  = \"string\",\012"
	.ascii	"scope = \"project\",\012}\012newapifield {\012name "
	.ascii	" = \"windowstargetplatf"
	.ascii	"ormversion\",\012kind  = \"string\",\012scope = \"p"
	.ascii	"roject\",\012}\012newapifield {\012name  = \"window"
	.ascii	"stargetplatformminversion\",\012kind = \"string\",\012"
	.ascii	"scope = \"project\",\012}\012newapifield {\012name "
	.ascii	" = \"forcedincludes\",\012kind  = \"list\",\012scop"
	.ascii	"e = \"config\",\012}\012newapifield {\012name  = \""
	.ascii	"imagepath\",\012kind = \"path\",\012scope = \"confi"
	.ascii	"g\",\012}\012newapifield {\012name  = \"imageoption"
	.ascii	"s\",\012kind  = \"list\",\012scope = \"config\",\012"
	.ascii	"}\012newapifield {\012name  = \"implibdir\",\012kin"
	.ascii	"d  = \"path\",\012scope = \"config\",\012}\012newap"
	.ascii	"ifield {\012name  = \"implibextension\",\012kind  ="
	.ascii	" \"string\",\012scope = \"config\",\012}\012newapif"
	.ascii	"ield {\012name  = \"implibname\",\012kind  = \"stri"
	.ascii	"ng\",\012scope = \"config\",\012}\012newapifield {\012"
	.ascii	"name  = \"implibprefix\",\012kind  = \"string\",\012"
	.ascii	"scope = \"config\",\012}\012newapifield {\012name  "
	.ascii	"= \"implibsuffix\",\012kind  = \"string\",\012scope"
	.ascii	" = \"config\",\012}\012newapifield {\012name  = \"i"
	.ascii	"ncludedirs\",\012kind  = \"dirlist\",\012scope = \""
	.ascii	"config\",\012usagecopy = true,\012}\012newapifield "
	.ascii	"{\012name  = \"systemincludedirs\",\012kind  = \"di"
	.ascii	"rlist\",\012scope = \"config\",\012usagecopy = true"
	.ascii	",\012}\012newapifield {\012name  = \"userincludedir"
	.ascii	"s\",\012kind  = \"dirlist\",\012scope = \"config\","
	.ascii	"\012usagecopy = true,\012}\012newapifield {\012name"
	.ascii	"  = \"usingdirs\",\012kind  = \"dirlist\",\012scope"
	.ascii	" = \"config\",\012usagecopy = true,\012}\012newapif"
	.ascii	"ield {\012name  = \"kind\",\012kind  = \"string\",\012"
	.ascii	"scope = \"config\",\012allowed = {\012\"ConsoleApp\""
	.ascii	",\012\"WindowedApp\",\012\"StaticLib\",\012\"Shared"
	.ascii	"Lib\",\012\"Bundle\",\012}\012}\012newapifield {\012"
	.ascii	"name  = \"language\",\012kind  = \"string\",\012sco"
	.ascii	"pe = \"container\",\012allowed = {\012\"C\",\012\"C"
	.ascii	"++\",\012\"C#\",\012\"Vala\",\012\"Swift\",\012}\012"
	.ascii	"}\012newapifield {\012name  = \"libdirs\",\012kind "
	.ascii	" = \"dirlist\",\012scope = \"config\",\012linkageco"
	.ascii	"py = true,\012}\012newapifield {\012name  = \"linko"
	.ascii	"ptions\",\012kind  = \"list\",\012scope = \"config\""
	.ascii	",\012}\012newapifield {\012name  = \"links\",\012ki"
	.ascii	"nd  = \"list\",\012scope = \"config\",\012allowed ="
	.ascii	" function(value)\012if value:find('/', nil, true) t"
	.ascii	"hen\012value = path.getabsolute(value)\012end\012re"
	.ascii	"turn value\012end,\012linkagecopy = true,\012mergec"
	.ascii	"opiestotail = true,\012}\012newapifield {\012name  "
	.ascii	"= \"location\",\012kind  = \"path\",\012scope = \"c"
	.ascii	"ontainer\",\012}\012newapifield {\012name  = \"make"
	.ascii	"settings\",\012kind = \"list\",\012scope = \"config"
	.ascii	"\",\012}\012newapifield {\012name  = \"messageskip\""
	.ascii	",\012kind  = \"list\",\012scope = \"s"
	.ascii	"olution\",\012isflags = true,\012usagecopy = true,\012"
	.ascii	"allowed = function(value)\012local allowed_messages"
	.ascii	" = {\012SkipCreatingMessage = 1,\012SkipBuildingMes"
	.ascii	"sage = 1,\012SkipCleaningMessage = 1,\012}\012local"
	.ascii	" lowervalue = value:lower()\012for v, _ in pairs(al"
	.ascii	"lowed_messages) do\012if v:lower() == lowervalue th"
	.ascii	"en\012return v\012end\012end\012return nil, \"inval"
	.ascii	"id message to skip\"\012end,\012}\012newapifield {\012"
	.ascii	"name  = \"msgarchiving\",\012kind  = \"string\",\012"
	.ascii	"scope = \"config\",\012}\012newapifield {\012name  "
	.ascii	"= \"msgcompile\",\012kind  = \"string\",\012scope ="
	.ascii	" \"config\",\012}\012newapifield {\012name  = \"msg"
	.ascii	"precompile\",\012kind  = \"string\",\012scope = \"c"
	.ascii	"onfig\",\012}\012newapifield {\012name  = \"msgcomp"
	.ascii	"ile_objc\",\012kind  = \"string\",\012scope = \"con"
	.ascii	"fig\",\012}\012newapifield {\012name  = \"msgresour"
	.ascii	"ce\",\012kind  = \"string\",\012scope = \"config\","
	.ascii	"\012}\012newapifield {\012name  = \"msglinking\",\012"
	.ascii	"kind  = \"string\",\012scope = \"config\",\012}\012"
	.ascii	"newapifield {\012name  = \"objdir\",\012kind  = \"p"
	.ascii	"ath\",\012scope = \"config\",\012}\012newapifield {"
	.ascii	"\012name  = \"options\",\012kind  = \"list\",\012sc"
	.ascii	"ope = \"container\",\012isflags = true,\012usagecop"
	.ascii	"y = true,\012allowed = function(value)\012local all"
	.ascii	"owed_options = {\012ForceCPP = 1,\012ArchiveSplit ="
	.ascii	" 1,\012SkipBundling = 1,\012XcodeLibrarySchemes = 1"
	.ascii	",\012XcodeSchemeNoConfigs = 1,\012}\012local lowerv"
	.ascii	"alue = value:lower()\012for v, _ in pairs(allowed_o"
	.ascii	"ptions) do\012if v:lower() == lowervalue then\012re"
	.ascii	"turn v\012end\012end\012return nil, \"invalid optio"
	.ascii	"n\"\012end,\012}\012newapifield {\012name  = \"pchh"
	.ascii	"eader\",\012kind  = \"string\",\012scope = \"config"
	.ascii	"\",\012}\012newapifield {\012name  = \"pchsource\","
	.ascii	"\012kind  = \"path\",\012scope = \"config\",\012}\012"
	.ascii	"newapifield {\012name  = \"platforms\",\012kind  = "
	.ascii	"\"list\",\012scope = \"solution\",\012allowed = tab"
	.ascii	"le.keys(premake.platforms),\012}\012newapifield {\012"
	.ascii	"name  = \"postbuildcommands\",\012kind  = \"list\","
	.ascii	"\012scope = \"config\",\012}\012newapifield {\012na"
	.ascii	"me  = \"prebuildcommands\",\012kind  = \"list\",\012"
	.ascii	"scope = \"config\",\012}\012newapifield {\012name  "
	.ascii	"= \"postcompiletasks\",\012kind  = \"list\",\012sco"
	.ascii	"pe = \"config\",\012}\012newapifield {\012name  = \""
	.ascii	"prelinkcommands\",\012kind  = \"list\",\012scope = "
	.ascii	"\"config\",\012}\012newapifield {\012name  = \"prop"
	.ascii	"ertysheets\",\012kind  = \"dirlist\",\012scope = \""
	.ascii	"config\",\012}\012newapifield {\012name  = \"pullma"
	.ascii	"ppingfile\",\012kind  = \"path\",\012scope = \"conf"
	.ascii	"ig\""
	.ascii	",\012}\012newapifield {\012name  = \"applicationdat"
	.ascii	"adir\",\012kind  = \"path\",\012scope = \"config\","
	.ascii	"\012}\012newapifield {\012name  = \"finalizemetasou"
	.ascii	"rce\",\012kind  = \"path\",\012scope = \"config\",\012"
	.ascii	"}\012newapifield {\012name  = \"resdefines\",\012ki"
	.ascii	"nd  = \"list\",\012scope = \"config\",\012}\012newa"
	.ascii	"pifield {\012name  = \"resincludedirs\",\012kind  ="
	.ascii	" \"dirlist\",\012scope = \"config\",\012}\012newapi"
	.ascii	"field {\012name  = \"resoptions\",\012kind  = \"lis"
	.ascii	"t\",\012scope = \"config\",\012}\012newapifield {\012"
	.ascii	"name  = \"sdkreferences\",\012kind  = \"list\",\012"
	.ascii	"scope = \"config\",\012}\012newapifield {\012name  "
	.ascii	"= \"startproject\",\012kind  = \"string\",\012scope"
	.ascii	" = \"solution\",\012}\012newapifield {\012name  = \""
	.ascii	"targetdir\",\012kind  = \"path\",\012scope = \"conf"
	.ascii	"ig\",\012}\012newapifield {\012name  = \"targetsubd"
	.ascii	"ir\",\012kind  = \"string\",\012scope = \"config\","
	.ascii	"\012}\012newapifield {\012name  = \"targetextension"
	.ascii	"\",\012kind  = \"string\",\012scope = \"config\",\012"
	.ascii	"}\012newapifield {\012name  = \"targetname\",\012ki"
	.ascii	"nd  = \"string\",\012scope = \"config\",\012}\012ne"
	.ascii	"wapifield {\012name  = \"targetprefix\",\012kind  ="
	.ascii	" \"string\",\012scope = \"config\",\012}\012newapif"
	.ascii	"ield {\012name  = \"targetsuffix\",\012kind  = \"st"
	.ascii	"ring\",\012scope = \"config\",\012}\012newapifield "
	.ascii	"{\012name  = \"trimpaths\",\012kind = \"dirlist\",\012"
	.ascii	"scope = \"config\",\012}\012newapifield {\012name  "
	.ascii	"= \"uuid\",\012kind  = \"string\",\012scope = \"con"
	.ascii	"tainer\",\012allowed = function(value)\012local ok "
	.ascii	"= true\012if (#value ~= 36) then ok = false end\012"
	.ascii	"for i=1,36 do\012local ch = value:sub(i,i)\012if (n"
	.ascii	"ot ch:find(\"[ABCDEFabcdef0123456789-]\")) then ok "
	.ascii	"= false end\012end\012if (value:sub(9,9) ~= \"-\") "
	.ascii	"  then ok = false end\012if (value:sub(14,14) ~= \""
	.ascii	"-\") then ok = false end\012if (value:sub(19,19) ~="
	.ascii	" \"-\") then ok = false end\012if (value:sub(24,24)"
	.ascii	" ~= \"-\") then ok = false end\012if (not ok) then\012"
	.ascii	"return nil, \"invalid UUID\"\012end\012return value"
	.ascii	":upper()\012end\012}\012newapifield {\012name  = \""
	.ascii	"uses\",\012kind  = \"list\",\012scope = \"config\","
	.ascii	"\012}\012newapifield {\012name  = \"vapidirs\",\012"
	.ascii	"kind  = \"dirlist\",\012scope = \"config\",\012}\012"
	.ascii	"newapifield {\012name  = \"vpaths\",\012kind = \"ke"
	.ascii	"ypath\",\012scope = \"container\",\012}\012newapifi"
	.ascii	"eld {\012name  = \"vsimportreferences\",\012kind = "
	.ascii	"\"filelist\",\012scope = \"container\",\012}\012new"
	.ascii	"apifield {\012name  = \"dpiawareness\",\012kind = \""
	.ascii	"string\",\012scope = \"config\",\012allowed = {\012"
	.ascii	"\"None\",\012\"High\",\012\"HighP"
	.ascii	"erMonitor\",\012}\012}\012newapifield {\012name  = "
	.ascii	"\"xcodeprojectopts\",\012kind = \"table\",\012scope"
	.ascii	" = \"config\",\012}\012newapifield {\012name  = \"x"
	.ascii	"codetargetopts\",\012kind = \"table\",\012scope = \""
	.ascii	"config\",\012}\012newapifield {\012name  = \"xcodes"
	.ascii	"criptphases\",\012kind  = \"table\",\012scope = \"c"
	.ascii	"onfig\",\012}\012newapifield {\012name  = \"xcodeco"
	.ascii	"pyresources\",\012kind  = \"table\",\012scope = \"p"
	.ascii	"roject\",\012}\012newapifield {\012name  = \"xcodec"
	.ascii	"opyframeworks\",\012kind  = \"filelist\",\012scope "
	.ascii	"= \"project\",\012}\012newapifield {\012name  = \"w"
	.ascii	"holearchive\",\012kind  = \"list\",\012scope = \"co"
	.ascii	"nfig\",\012}\012newapifield {\012name  = \"swiftmod"
	.ascii	"ulemaps\",\012kind  = \"filelist\",\012scope = \"co"
	.ascii	"nfig\",\012}\012newapifield {\012name  = \"buildopt"
	.ascii	"ions_swift\",\012kind  = \"list\",\012scope = \"con"
	.ascii	"fig\",\012}\012newapifield {\012name  = \"linkoptio"
	.ascii	"ns_swift\",\012kind  = \"list\",\012scope = \"confi"
	.ascii	"g\",\012}\012newapifield {\012name  = \"androidtarg"
	.ascii	"etapi\",\012kind = \"string\",\012scope = \"config\""
	.ascii	",\012}\012newapifield {\012name  = \"androidminapi\""
	.ascii	",\012kind = \"string\",\012scope = \"config\",\012}"
	.ascii	"\012newapifield {\012name  = \"androidarch\",\012ki"
	.ascii	"nd = \"string\",\012scope = \"config\",\012allowed "
	.ascii	"= {\012\"armv7-a\",\012\"armv7-a-hard\",\012\"arm64"
	.ascii	"-v8a\",\012\"x86\",\012\"x86_64\",\012}\012}\012new"
	.ascii	"apifield {\012name  = \"androidndktoolchainversion\""
	.ascii	",\012kind = \"string\",\012scope = \"config\",\012}"
	.ascii	"\012newapifield {\012name  = \"androidstltype\",\012"
	.ascii	"kind = \"string\",\012scope = \"config\",\012}\012n"
	.ascii	"ewapifield {\012name  = \"androidcppstandard\",\012"
	.ascii	"kind = \"string\",\012scope = \"config\",\012allowe"
	.ascii	"d = {\012\"c++98\",\012\"c++11\",\012\"c++1y\",\012"
	.ascii	"\"gnu++98\",\012\"gnu++11\",\012\"gnu++1y\",\012}\012"
	.ascii	"}\012newapifield {\012name  = \"androidlinker\",\012"
	.ascii	"kind = \"string\",\012scope = \"config\",\012allowe"
	.ascii	"d = {\012\"bfd\",\012\"gold\",\012}\012}\012newapif"
	.ascii	"ield {\012name  = \"androiddebugintentparams\",\012"
	.ascii	"kind = \"list\",\012scope = \"config\",\012}\012new"
	.ascii	"apifield {\012name  = \"antbuildjavasourcedirs\",\012"
	.ascii	"kind = \"dirlist\",\012scope = \"config\",\012}\012"
	.ascii	"newapifield {\012name  = \"antbuildjardirs\",\012ki"
	.ascii	"nd = \"dirlist\",\012scope = \"config\",\012}\012ne"
	.ascii	"wapifield {\012name  = \"antbuildjardependencies\","
	.ascii	"\012kind = \"list\",\012scope = \"config\",\012}\012"
	.ascii	"newapifield {\012name  = \"antbuildnativelibdirs\","
	.ascii	"\012kind = \"dirlist\",\012scope = \"config\",\012}"
	.ascii	"\012newapifield {\012name  = \"antbuildnativelibdep"
	.ascii	"endencies\",\012kind = \"list\",\012scope = \"confi"
	.ascii	"g\",\012}\012newapifield {\012name  = \"antbuilda"
	.ascii	"ssetsdirs\",\012kind = \"dirlist\",\012scope = \"co"
	.ascii	"nfig\",\012}\012newapifield {\012name  = \"postsolu"
	.ascii	"tioncallbacks\",\012kind  = \"list\",\012scope = \""
	.ascii	"solution\",\012}\012newapifield {\012name  = \"post"
	.ascii	"projectcallbacks\",\012kind  = \"list\",\012scope ="
	.ascii	" \"project\",\012}\012\000"
	.align	2
.LC14:
	.ascii	"newoption\012{\012trigger     = \"cc\",\012value   "
	.ascii	"    = \"VALUE\",\012description = \"Choose a C/C++ "
	.ascii	"compiler set\",\012allowed = {\012{ \"gcc\", \"GNU "
	.ascii	"GCC (gcc/g++)\" },\012{ \"ow\",  \"OpenWatcom\"    "
	.ascii	"    },\012{ \"ghs\", \"Green Hills Software\" },\012"
	.ascii	"}\012}\012newoption\012{\012trigger     = \"dotnet\""
	.ascii	",\012value       = \"VALUE\",\012description = \"Ch"
	.ascii	"oose a .NET compiler set\",\012allowed = {\012{ \"m"
	.ascii	"snet\",   \"Microsoft .NET (csc)\" },\012{ \"mono\""
	.ascii	",    \"Novell Mono (mcs)\"    },\012{ \"pnet\",    "
	.ascii	"\"Portable.NET (cscc)\"  },\012}\012}\012newoption\012"
	.ascii	"{\012trigger     = \"file\",\012value       = \"FIL"
	.ascii	"E\",\012description = \"Read FILE as a Premake scri"
	.ascii	"pt; default is 'premake4.lua'\"\012}\012newoption\012"
	.ascii	"{\012trigger     = \"help\",\012description = \"Dis"
	.ascii	"play this information\"\012}\012newoption\012{\012t"
	.ascii	"rigger     = \"os\",\012value       = \"VALUE\",\012"
	.ascii	"description = \"Generate files for a different oper"
	.ascii	"ating system\",\012allowed = {\012{ \"bsd\",      \""
	.ascii	"OpenBSD, NetBSD, or FreeBSD\" },\012{ \"linux\",   "
	.ascii	" \"Linux\" },\012{ \"macosx\",   \"Apple Mac OS X\""
	.ascii	" },\012{ \"solaris\",  \"Solaris\" },\012{ \"window"
	.ascii	"s\",  \"Microsoft Windows\" },\012}\012}\012newopti"
	.ascii	"on\012{\012trigger     = \"platform\",\012value    "
	.ascii	"   = \"VALUE\",\012description = \"Add target archi"
	.ascii	"tecture (if supported by action)\",\012allowed = {\012"
	.ascii	"{ \"x32\",         \"32-bit\" },\012{ \"x64\",     "
	.ascii	"    \"64-bit\" },\012{ \"universal\",   \"Mac OS X "
	.ascii	"Universal, 32- and 64-bit\" },\012{ \"universal32\""
	.ascii	", \"Mac OS X Universal, 32-bit only\" },\012{ \"uni"
	.ascii	"versal64\", \"Mac OS X Universal, 64-bit only\" },\012"
	.ascii	"{ \"ps3\",         \"Playstation 3\" },\012{ \"orbi"
	.ascii	"s\",       \"Playstation 4\" },\012{ \"xbox360\",  "
	.ascii	"   \"Xbox 360\" },\012{ \"durango\",     \"Xbox One"
	.ascii	"\" },\012{ \"ARM\",         \"ARM\" },\012{ \"Power"
	.ascii	"PC\",     \"PowerPC\" },\012}\012}\012newoption\012"
	.ascii	"{\012trigger     = \"scripts\",\012value       = \""
	.ascii	"path\",\012description = \"Search for additional sc"
	.ascii	"ripts on the given path\"\012}\012newoption\012{\012"
	.ascii	"trigger     = \"debug-profiler\",\012description = "
	.ascii	"\"GENie script generation profiler.\"\012}\012newop"
	.ascii	"tion\012{\012trigger     = \"version\",\012descript"
	.ascii	"ion = \"Display version information\"\012}\012\000"
	.align	2
.LC15:
	.ascii	"-- Copyright (c) 2013 Enrique Garc\303\255a Cota\012"
	.ascii	"local function smartQuote(str)\012  if str:match('\""
	.ascii	"') and not str:match(\"'\") then\012    return \"'\""
	.ascii	" .. str .. \"'\"\012  end\012  return '\"' .. str:g"
	.ascii	"sub('\"', '\\\\\"') .. '\"'\012end\012local control"
	.ascii	"CharsTranslation = {\012  [\"\\a\"] = \"\\\\a\",  ["
	.ascii	"\"\\b\"] = \"\\\\b\", [\"\\f\"] = \"\\\\f\",  [\"\\"
	.ascii	"n\"] = \"\\\\n\",\012  [\"\\r\"] = \"\\\\r\",  [\"\\"
	.ascii	"t\"] = \"\\\\t\", [\"\\v\"] = \"\\\\v\"\012}\012loc"
	.ascii	"al function escapeChar(c) return controlCharsTransl"
	.ascii	"ation[c] end\012local function escape(str)\012  loc"
	.ascii	"al result = str:gsub(\"\\\\\", \"\\\\\\\\\"):gsub(\""
	.ascii	"(%c)\", escapeChar)\012  return result\012end\012lo"
	.ascii	"cal function isIdentifier(str)\012  return type(str"
	.ascii	") == 'string' and str:match( \"^[_%a][_%a%d]*$\" )\012"
	.ascii	"end\012local function isArrayKey(k, length)\012  re"
	.ascii	"turn type(k) == 'number' and 1 <= k and k <= length"
	.ascii	"\012end\012local function isDictionaryKey(k, length"
	.ascii	")\012  return not isArrayKey(k, length)\012end\012l"
	.ascii	"ocal defaultTypeOrders = {\012  ['number']   = 1, ["
	.ascii	"'boolean']  = 2, ['string'] = 3, ['table'] = 4,\012"
	.ascii	"  ['function'] = 5, ['userdata'] = 6, ['thread'] = "
	.ascii	"7\012}\012local function sortKeys(a, b)\012  local "
	.ascii	"ta, tb = type(a), type(b)\012  -- strings and numbe"
	.ascii	"rs are sorted numerically/alphabetically\012  if ta"
	.ascii	" == tb and (ta == 'string' or ta == 'number') then "
	.ascii	"return a < b end\012  local dta, dtb = defaultTypeO"
	.ascii	"rders[ta], defaultTypeOrders[tb]\012  -- Two defaul"
	.ascii	"t types are compared according to the defaultTypeOr"
	.ascii	"ders table\012  if dta and dtb then return defaultT"
	.ascii	"ypeOrders[ta] < defaultTypeOrders[tb]\012  elseif d"
	.ascii	"ta     then return true  -- default types before cu"
	.ascii	"stom ones\012  elseif dtb     then return false -- "
	.ascii	"custom types after default ones\012  end\012  -- cu"
	.ascii	"stom types are sorted out alphabetically\012  retur"
	.ascii	"n ta < tb\012end\012local function getDictionaryKey"
	.ascii	"s(t)\012  local keys, length = {}, #t\012  for k,_ "
	.ascii	"in pairs(t) do\012    if isDictionaryKey(k, length)"
	.ascii	" then table.insert(keys, k) end\012  end\012  table"
	.ascii	".sort(keys, sortKeys)\012  return keys\012end\012lo"
	.ascii	"cal function getToStringResultSafely(t, mt)\012  lo"
	.ascii	"cal __tostring = type(mt) == 'table' and rawget(mt,"
	.ascii	" '__tostring')\012  local str, ok\012  if type(__to"
	.ascii	"string) == 'function' then\012    ok, str ="
	.ascii	" pcall(__tostring, t)\012    str = ok and str or 'e"
	.ascii	"rror: ' .. tostring(str)\012  end\012  if type(str)"
	.ascii	" == 'string' and #str > 0 then return str end\012en"
	.ascii	"d\012local maxIdsMetaTable = {\012  __index = funct"
	.ascii	"ion(self, typeName)\012    rawset(self, typeName, 0"
	.ascii	")\012    return 0\012  end\012}\012local idsMetaTab"
	.ascii	"le = {\012  __index = function (self, typeName)\012"
	.ascii	"    local col = setmetatable({}, {__mode = \"kv\"})"
	.ascii	"\012    rawset(self, typeName, col)\012    return c"
	.ascii	"ol\012  end\012}\012local function countTableAppear"
	.ascii	"ances(t, tableAppearances)\012  tableAppearances = "
	.ascii	"tableAppearances or setmetatable({}, {__mode = \"k\""
	.ascii	"})\012  if type(t) == 'table' then\012    if not ta"
	.ascii	"bleAppearances[t] then\012      tableAppearances[t]"
	.ascii	" = 1\012      for k,v in pairs(t) do\012        cou"
	.ascii	"ntTableAppearances(k, tableAppearances)\012        "
	.ascii	"countTableAppearances(v, tableAppearances)\012     "
	.ascii	" end\012      countTableAppearances(getmetatable(t)"
	.ascii	", tableAppearances)\012    else\012      tableAppea"
	.ascii	"rances[t] = tableAppearances[t] + 1\012    end\012 "
	.ascii	" end\012  return tableAppearances\012end\012local f"
	.ascii	"unction parse_filter(filter)\012  if type(filter) ="
	.ascii	"= 'function' then return filter end\012  -- not a f"
	.ascii	"unction, so it must be a table or table-like\012  f"
	.ascii	"ilter = type(filter) == 'table' and filter or {filt"
	.ascii	"er}\012  local dictionary = {}\012  for _,v in pair"
	.ascii	"s(filter) do dictionary[v] = true end\012  return f"
	.ascii	"unction(x) return dictionary[x] end\012end\012local"
	.ascii	" function makePath(path, key)\012  local newPath, l"
	.ascii	"en = {}, #path\012  for i=1, len do newPath[i] = pa"
	.ascii	"th[i] end\012  newPath[len+1] = key\012  return new"
	.ascii	"Path\012end\012function inspect(rootObject, options"
	.ascii	")\012  options       = options or {}\012  local dep"
	.ascii	"th   = options.depth or math.huge\012  local filter"
	.ascii	"  = parse_filter(options.filter or {})\012  local t"
	.ascii	"ableAppearances = countTableAppearances(rootObject)"
	.ascii	"\012  local buffer = {}\012  local maxIds = setmeta"
	.ascii	"table({}, maxIdsMetaTable)\012  local ids    = setm"
	.ascii	"etatable({}, idsMetaTable)\012  local level  = 0\012"
	.ascii	"  local blen   = 0 -- buffer length\012  local func"
	.ascii	"tion puts(...)\012    local args = {...}\012    for"
	.ascii	" i=1, #args do\012      blen = blen + 1\012      bu"
	.ascii	"ffer[blen] = tostring(args[i])\012    end\012  end\012"
	.ascii	" "
	.ascii	" local function down(f)\012    level = level + 1\012"
	.ascii	"    f()\012    level = level - 1\012  end\012  loca"
	.ascii	"l function tabify()\012    puts(\"\\n\", string.rep"
	.ascii	"(\"  \", level))\012  end\012  local function comma"
	.ascii	"Control(needsComma)\012    if needsComma then puts("
	.ascii	"',') end\012    return true\012  end\012  local fun"
	.ascii	"ction alreadyVisited(v)\012    return ids[type(v)]["
	.ascii	"v] ~= nil\012  end\012  local function getId(v)\012"
	.ascii	"    local tv = type(v)\012    local id = ids[tv][v]"
	.ascii	"\012    if not id then\012      id         = maxIds"
	.ascii	"[tv] + 1\012      maxIds[tv] = id\012      ids[tv]["
	.ascii	"v] = id\012    end\012    return id\012  end\012  l"
	.ascii	"ocal putValue -- forward declaration that needs to "
	.ascii	"go before putTable & putKey\012  local function put"
	.ascii	"Key(k)\012    if isIdentifier(k) then return puts(k"
	.ascii	") end\012    puts( \"[\" )\012    putValue(k, {})\012"
	.ascii	"    puts(\"]\")\012  end\012  local function putTab"
	.ascii	"le(t, path)\012    if alreadyVisited(t) then\012   "
	.ascii	"   puts('<table ', getId(t), '>')\012    elseif lev"
	.ascii	"el >= depth then\012      puts('{...}')\012    else"
	.ascii	"\012      if tableAppearances[t] > 1 then puts('<',"
	.ascii	" getId(t), '>') end\012      local dictKeys        "
	.ascii	"  = getDictionaryKeys(t)\012      local length     "
	.ascii	"       = #t\012      local mt                = getm"
	.ascii	"etatable(t)\012      local to_string_result  = getT"
	.ascii	"oStringResultSafely(t, mt)\012      puts('{')\012  "
	.ascii	"    down(function()\012        if to_string_result "
	.ascii	"then\012          puts(' -- ', escape(to_string_res"
	.ascii	"ult))\012          if length >= 1 then tabify() end"
	.ascii	" -- tabify the array values\012        end\012     "
	.ascii	"   local needsComma = false\012        for i=1, len"
	.ascii	"gth do\012          needsComma = commaControl(needs"
	.ascii	"Comma)\012          puts(' ')\012          putValue"
	.ascii	"(t[i], makePath(path, i))\012        end\012       "
	.ascii	" for _,k in ipairs(dictKeys) do\012          needsC"
	.ascii	"omma = commaControl(needsComma)\012          tabify"
	.ascii	"()\012          putKey(k)\012          puts(' = ')\012"
	.ascii	"          putValue(t[k], makePath(path, k))\012    "
	.ascii	"    end\012        if mt then\012          needsCom"
	.ascii	"ma = commaControl(needsComma)\012          tabify()"
	.ascii	"\012          puts('<metatable> = ')\012          p"
	.ascii	"utValue(mt, makePath(path, '<metatable>'))\012     "
	.ascii	"   end\012      end)\012      if #dictKeys > 0 or m"
	.ascii	"t then -- diction"
	.ascii	"ary table. Justify closing }\012        tabify()\012"
	.ascii	"      elseif length > 0 then -- array tables have o"
	.ascii	"ne extra space before closing }\012        puts(' '"
	.ascii	")\012      end\012      puts('}')\012    end\012  e"
	.ascii	"nd\012  -- putvalue is forward-declared before putT"
	.ascii	"able & putKey\012  putValue = function(v, path)\012"
	.ascii	"    if filter(v, path) then\012      puts('<filtere"
	.ascii	"d>')\012    else\012      local tv = type(v)\012   "
	.ascii	"   if tv == 'string' then\012        puts(smartQuot"
	.ascii	"e(escape(v)))\012      elseif tv == 'number' or tv "
	.ascii	"== 'boolean' or tv == 'nil' then\012        puts(to"
	.ascii	"string(v))\012      elseif tv == 'table' then\012  "
	.ascii	"      putTable(v, path)\012      else\012        pu"
	.ascii	"ts('<',tv,' ',getId(v),'>')\012      end\012    end"
	.ascii	"\012  end\012  putValue(rootObject, {})\012  return"
	.ascii	" table.concat(buffer)\012end\012function printtable"
	.ascii	"(name, table)\012print(\"table: \", name, inspect(t"
	.ascii	"able), \"\\n\")\012end\012function printstack()\012"
	.ascii	"print(debug.traceback(), \"\\n\")\012end\012\000"
	.align	2
.LC16:
	.ascii	"_profiler = {}\012function newProfiler(variant, sam"
	.ascii	"pledelay)\012if _profiler.running then\012print(\"P"
	.ascii	"rofiler already running.\")\012return\012end\012var"
	.ascii	"iant = variant or \"time\"\012if variant ~= \"time\""
	.ascii	" and variant ~= \"call\" then\012print(\"Profiler m"
	.ascii	"ethod must be 'time' or 'call'.\")\012return\012end"
	.ascii	"\012local newprof = {}\012for k,v in pairs(_profile"
	.ascii	"r) do\012newprof[k] = v\012end\012newprof.variant ="
	.ascii	" variant\012newprof.sampledelay = sampledelay or 10"
	.ascii	"0000\012return newprof\012end\012function _profiler"
	.ascii	".start(self)\012if _profiler.running then\012return"
	.ascii	"\012end\012_profiler.running = self\012self.rawstat"
	.ascii	"s = {}\012self.callstack = {}\012if self.variant =="
	.ascii	" \"time\" then\012self.lastclock = os.clock()\012de"
	.ascii	"bug.sethook( _profiler_hook_wrapper_by_time, \"\", "
	.ascii	"self.sampledelay )\012elseif self.variant == \"call"
	.ascii	"\" then\012debug.sethook( _profiler_hook_wrapper_by"
	.ascii	"_call, \"cr\" )\012else\012print(\"Profiler method "
	.ascii	"must be 'time' or 'call'.\")\012sys.exit(1)\012end\012"
	.ascii	"end\012function _profiler.stop(self)\012if _profile"
	.ascii	"r.running ~= self then\012return\012end\012debug.se"
	.ascii	"thook( nil )\012_profiler.running = nil\012end\012f"
	.ascii	"unction _profiler_hook_wrapper_by_call(action)\012i"
	.ascii	"f _profiler.running == nil then\012debug.sethook( n"
	.ascii	"il )\012end\012_profiler.running:_internal_profile_"
	.ascii	"by_call(action)\012end\012function _profiler_hook_w"
	.ascii	"rapper_by_time(action)\012if _profiler.running == n"
	.ascii	"il then\012debug.sethook( nil )\012end\012_profiler"
	.ascii	".running:_internal_profile_by_time(action)\012end\012"
	.ascii	"function _profiler._internal_profile_by_call(self,a"
	.ascii	"ction)\012local caller_info = debug.getinfo( 3 )\012"
	.ascii	"if caller_info == nil then\012print \"No caller_inf"
	.ascii	"o\"\012return\012end\012local latest_ar = nil\012if"
	.ascii	" table.getn(self.callstack) > 0 then\012latest_ar ="
	.ascii	" self.callstack[table.getn(self.callstack)]\012end\012"
	.ascii	"local should_not_profile = 0\012for k,v in pairs(se"
	.ascii	"lf.prevented_functions) do\012if k == caller_info.f"
	.ascii	"unc then\012should_not_profile = v\012end\012end\012"
	.ascii	"if latest_ar then\012if latest_ar.should_not_profil"
	.ascii	"e == 2 then\012should_not_profile = 2\012end\012end"
	.ascii	"\012if action == \"call\" then\012local this_ar = {"
	.ascii	"}\012this_ar.should_not_profile = should_not_profil"
	.ascii	"e\012this_ar.parent_ar = latest_ar\012this_ar.anon_"
	.ascii	"child = 0\012this_ar.name_child = 0\012this_ar.chil"
	.ascii	"dren = {}\012this_"
	.ascii	"ar.children_time = {}\012this_ar.clock_start = os.c"
	.ascii	"lock()\012table.insert( self.callstack, this_ar )\012"
	.ascii	"else\012local this_ar = latest_ar\012if this_ar == "
	.ascii	"nil then\012return -- No point in doing anything if"
	.ascii	" no upper activation record\012end\012this_ar.clock"
	.ascii	"_end = os.clock()\012this_ar.this_time = this_ar.cl"
	.ascii	"ock_end - this_ar.clock_start\012if this_ar.parent_"
	.ascii	"ar then\012this_ar.parent_ar.children[caller_info.f"
	.ascii	"unc] =\012(this_ar.parent_ar.children[caller_info.f"
	.ascii	"unc] or 0) + 1\012this_ar.parent_ar.children_time[c"
	.ascii	"aller_info.func] =\012(this_ar.parent_ar.children_t"
	.ascii	"ime[caller_info.func] or 0 ) +\012this_ar.this_time"
	.ascii	"\012if caller_info.name == nil then\012this_ar.pare"
	.ascii	"nt_ar.anon_child =\012this_ar.parent_ar.anon_child "
	.ascii	"+ this_ar.this_time\012else\012this_ar.parent_ar.na"
	.ascii	"me_child =\012this_ar.parent_ar.name_child + this_a"
	.ascii	"r.this_time\012end\012end\012if this_ar.should_not_"
	.ascii	"profile == 0 then\012local inforec = self:_get_func"
	.ascii	"_rec(caller_info.func,1)\012inforec.count = inforec"
	.ascii	".count + 1\012inforec.time = inforec.time + this_ar"
	.ascii	".this_time\012inforec.anon_child_time = inforec.ano"
	.ascii	"n_child_time + this_ar.anon_child\012inforec.name_c"
	.ascii	"hild_time = inforec.name_child_time + this_ar.name_"
	.ascii	"child\012inforec.func_info = caller_info\012for k,v"
	.ascii	" in pairs(this_ar.children) do\012inforec.children["
	.ascii	"k] = (inforec.children[k] or 0) + v\012inforec.chil"
	.ascii	"dren_time[k] =\012(inforec.children_time[k] or 0) +"
	.ascii	" this_ar.children_time[k]\012end\012end\012table.re"
	.ascii	"move( self.callstack, table.getn( self.callstack ) "
	.ascii	")\012end\012end\012function _profiler._internal_pro"
	.ascii	"file_by_time(self,action)\012local timetaken = os.c"
	.ascii	"lock() - self.lastclock\012local depth = 3\012local"
	.ascii	" at_top = true\012local last_caller\012local caller"
	.ascii	" = debug.getinfo(depth)\012while caller do\012if no"
	.ascii	"t caller.func then caller.func = \"(tail call)\" en"
	.ascii	"d\012if self.prevented_functions[caller.func] == ni"
	.ascii	"l then\012local info = self:_get_func_rec(caller.fu"
	.ascii	"nc, 1, caller)\012info.count = info.count + 1\012in"
	.ascii	"fo.time = info.time + timetaken\012if last_caller t"
	.ascii	"hen\012if last_caller.name then\012info.name_child_"
	.ascii	"time = info.name_child_time + timetaken\012else\012"
	.ascii	"info.anon_child_time = info.anon_child_time + timet"
	.ascii	"aken\012end\012info.children[las"
	.ascii	"t_caller.func] =\012(info.children[last_caller.func"
	.ascii	"] or 0) + 1\012info.children_time[last_caller.func]"
	.ascii	" =\012(info.children_time[last_caller.func] or 0) +"
	.ascii	" timetaken\012end\012end\012depth = depth + 1\012la"
	.ascii	"st_caller = caller\012caller = debug.getinfo(depth)"
	.ascii	"\012end\012self.lastclock = os.clock()\012end\012fu"
	.ascii	"nction _profiler._get_func_rec(self,func,force,info"
	.ascii	")\012local ret = self.rawstats[func]\012if ret == n"
	.ascii	"il and force ~= 1 then\012return nil\012end\012if r"
	.ascii	"et == nil then\012ret = {}\012ret.func = func\012re"
	.ascii	"t.count = 0\012ret.time = 0\012ret.anon_child_time "
	.ascii	"= 0\012ret.name_child_time = 0\012ret.children = {}"
	.ascii	"\012ret.children_time = {}\012ret.func_info = info\012"
	.ascii	"self.rawstats[func] = ret\012end\012return ret\012e"
	.ascii	"nd\012function _profiler.report( self, outfile, sor"
	.ascii	"t_by_total_time )\012outfile:write\012[[Lua Profile"
	.ascii	" output created by profiler.lua. Copyright Pepperfi"
	.ascii	"sh 2002+\012]]\012local terms = {}\012if self.varia"
	.ascii	"nt == \"time\" then\012terms.capitalized = \"Sample"
	.ascii	"\"\012terms.single = \"sample\"\012terms.pastverb ="
	.ascii	" \"sampled\"\012elseif self.variant == \"call\" the"
	.ascii	"n\012terms.capitalized = \"Call\"\012terms.single ="
	.ascii	" \"call\"\012terms.pastverb = \"called\"\012else\012"
	.ascii	"assert(false)\012end\012local total_time = 0\012loc"
	.ascii	"al ordering = {}\012for func,record in pairs(self.r"
	.ascii	"awstats) do\012table.insert(ordering, func)\012end\012"
	.ascii	"if sort_by_total_time then\012table.sort( ordering,"
	.ascii	"\012function(a,b) return self.rawstats[a].time > se"
	.ascii	"lf.rawstats[b].time end\012)\012else\012table.sort("
	.ascii	" ordering,\012function(a,b)\012local arec = self.ra"
	.ascii	"wstats[a]\012local brec = self.rawstats[b]\012local"
	.ascii	" atime = arec.time - (arec.anon_child_time + arec.n"
	.ascii	"ame_child_time)\012local btime = brec.time - (brec."
	.ascii	"anon_child_time + brec.name_child_time)\012return a"
	.ascii	"time > btime\012end\012)\012end\012for i=1,#orderin"
	.ascii	"g do\012local func = ordering[i]\012local record = "
	.ascii	"self.rawstats[func]\012local thisfuncname = \" \" ."
	.ascii	". self:_pretty_name(func) .. \" \"\012if string.len"
	.ascii	"( thisfuncname ) < 42 then\012thisfuncname = string"
	.ascii	".rep( \"-\", math.floor((42 - string.len(thisfuncna"
	.ascii	"me))/2) ) .. thisfuncname\012thisfuncname = thisfun"
	.ascii	"cname .. string.rep( \"-\", 42 - string.len(thisfun"
	.ascii	"cname) )\012end\012total_time = total_time + ( reco"
	.ascii	"rd.time - ( record.anon_child_time +\012record.name"
	.ascii	"_"
	.ascii	"child_time ) )\012outfile:write( string.rep( \"-\","
	.ascii	" 19 ) .. thisfuncname ..\012string.rep( \"-\", 19 )"
	.ascii	" .. \"\\n\" )\012outfile:write( terms.capitalized.."
	.ascii	"\" count:         \" ..\012string.format( \"%4d\", "
	.ascii	"record.count ) .. \"\\n\" )\012outfile:write( \"Tim"
	.ascii	"e spend total:       \" ..\012string.format( \"%4.3"
	.ascii	"f\", record.time ) .. \"s\\n\" )\012outfile:write( "
	.ascii	"\"Time spent in children: \" ..\012string.format(\""
	.ascii	"%4.3f\",record.anon_child_time+record.name_child_ti"
	.ascii	"me) ..\012\"s\\n\" )\012local timeinself =\012recor"
	.ascii	"d.time - (record.anon_child_time + record.name_chil"
	.ascii	"d_time)\012outfile:write( \"Time spent in self:    "
	.ascii	" \" ..\012string.format(\"%4.3f\", timeinself) .. \""
	.ascii	"s\\n\" )\012outfile:write( \"Time spent per \" .. t"
	.ascii	"erms.single .. \":  \" ..\012string.format(\"%4.5f\""
	.ascii	", record.time/record.count) ..\012\"s/\" .. terms.s"
	.ascii	"ingle .. \"\\n\" )\012outfile:write( \"Time spent i"
	.ascii	"n self per \"..terms.single..\": \" ..\012string.fo"
	.ascii	"rmat( \"%4.5f\", timeinself/record.count ) .. \"s/\""
	.ascii	" ..\012terms.single..\"\\n\" )\012local added_blank"
	.ascii	" = 0\012for k,v in pairs(record.children) do\012if "
	.ascii	"self.prevented_functions[k] == nil or\012self.preve"
	.ascii	"nted_functions[k] == 0\012then\012if added_blank =="
	.ascii	" 0 then\012outfile:write( \"\\n\" ) -- extra separa"
	.ascii	"tion line\012added_blank = 1\012end\012outfile:writ"
	.ascii	"e( \"Child \" .. self:_pretty_name(k) ..\012string."
	.ascii	"rep( \" \", 41-string.len(self:_pretty_name(k)) ) ."
	.ascii	". \" \" ..\012terms.pastverb..\" \" .. string.forma"
	.ascii	"t(\"%6d\", v) )\012outfile:write( \" times. Took \""
	.ascii	" ..\012string.format(\"%4.2f\", record.children_tim"
	.ascii	"e[k] ) .. \"s\\n\" )\012end\012end\012outfile:write"
	.ascii	"( \"\\n\" ) -- extra separation line\012outfile:flu"
	.ascii	"sh()\012end\012outfile:write( \"\\n\\n\" )\012outfi"
	.ascii	"le:write( \"Total time spent in profiled functions:"
	.ascii	" \" ..\012string.format(\"%5.3g\",total_time) .. \""
	.ascii	"s\\n\" )\012outfile:write( [[\012END\012]] )\012out"
	.ascii	"file:flush()\012end\012function _profiler.lua_repor"
	.ascii	"t(self,outfile)\012local ordering = {}\012local fun"
	.ascii	"ctonum = {}\012for func,record in pairs(self.rawsta"
	.ascii	"ts) do\012table.insert(ordering, func)\012functonum"
	.ascii	"[func] = table.getn(ordering)\012end\012outfile:wri"
	.ascii	"te(\012\"-- Profile generated by profiler.lua Copyr"
	.ascii	"ight Pepperfish 2002+\\n\\n\" )\012outfile:write( \""
	.ascii	"-- Function names\\nfuncnames = {}\\n\" )\012for i="
	.ascii	"1,table.getn(ordering)"
	.ascii	" do\012local thisfunc = ordering[i]\012outfile:writ"
	.ascii	"e( \"funcnames[\" .. i .. \"] = \" ..\012string.for"
	.ascii	"mat(\"%q\", self:_pretty_name(thisfunc)) .. \"\\n\""
	.ascii	" )\012end\012outfile:write( \"\\n\" )\012outfile:wr"
	.ascii	"ite( \"-- Function times\\nfunctimes = {}\\n\" )\012"
	.ascii	"for i=1,table.getn(ordering) do\012local thisfunc ="
	.ascii	" ordering[i]\012local record = self.rawstats[thisfu"
	.ascii	"nc]\012outfile:write( \"functimes[\" .. i .. \"] = "
	.ascii	"{ \" )\012outfile:write( \"tot=\" .. record.time .."
	.ascii	" \", \" )\012outfile:write( \"achild=\" .. record.a"
	.ascii	"non_child_time .. \", \" )\012outfile:write( \"nchi"
	.ascii	"ld=\" .. record.name_child_time .. \", \" )\012outf"
	.ascii	"ile:write( \"count=\" .. record.count .. \" }\\n\" "
	.ascii	")\012end\012outfile:write( \"\\n\" )\012outfile:wri"
	.ascii	"te( \"-- Child links\\nchildren = {}\\n\" )\012for "
	.ascii	"i=1,table.getn(ordering) do\012local thisfunc = ord"
	.ascii	"ering[i]\012local record = self.rawstats[thisfunc]\012"
	.ascii	"outfile:write( \"children[\" .. i .. \"] = { \" )\012"
	.ascii	"for k,v in pairs(record.children) do\012if functonu"
	.ascii	"m[k] then -- non-recorded functions will be ignored"
	.ascii	" now\012outfile:write( functonum[k] .. \", \" )\012"
	.ascii	"end\012end\012outfile:write( \"}\\n\" )\012end\012o"
	.ascii	"utfile:write( \"\\n\" )\012outfile:write( \"-- Chil"
	.ascii	"d call counts\\nchildcounts = {}\\n\" )\012for i=1,"
	.ascii	"table.getn(ordering) do\012local thisfunc = orderin"
	.ascii	"g[i]\012local record = self.rawstats[thisfunc]\012o"
	.ascii	"utfile:write( \"children[\" .. i .. \"] = { \" )\012"
	.ascii	"for k,v in record.children do\012if functonum[k] th"
	.ascii	"en -- non-recorded functions will be ignored now\012"
	.ascii	"outfile:write( v .. \", \" )\012end\012end\012outfi"
	.ascii	"le:write( \"}\\n\" )\012end\012outfile:write( \"\\n"
	.ascii	"\" )\012outfile:write( \"-- Child call time\\nchild"
	.ascii	"times = {}\\n\" )\012for i=1,table.getn(ordering) d"
	.ascii	"o\012local thisfunc = ordering[i]\012local record ="
	.ascii	" self.rawstats[thisfunc];\012outfile:write( \"child"
	.ascii	"ren[\" .. i .. \"] = { \" )\012for k,v in pairs(rec"
	.ascii	"ord.children) do\012if functonum[k] then -- non-rec"
	.ascii	"orded functions will be ignored now\012outfile:writ"
	.ascii	"e( record.children_time[k] .. \", \" )\012end\012en"
	.ascii	"d\012outfile:write( \"}\\n\" )\012end\012outfile:wr"
	.ascii	"ite( \"\\n\\n-- That is all.\\n\\n\" )\012outfile:f"
	.ascii	"lush()\012end\012function _profiler._pretty_name(se"
	.ascii	"lf,func)\012local info = self.rawstats[ func ].func"
	.ascii	"_info\012local name = \"\"\012if info.what == \"Lua"
	.ascii	"\" then\012name = \"L:\"\012end\012if"
	.ascii	" info.what == \"C\" then\012name = \"C:\"\012end\012"
	.ascii	"if info.what == \"main\" then\012name = \" :\"\012e"
	.ascii	"nd\012if info.name == nil then\012name = name .. \""
	.ascii	"<\"..tostring(func) .. \">\"\012else\012name = name"
	.ascii	" .. info.name\012end\012if info.source then\012name"
	.ascii	" = name\012else\012if info.what == \"C\" then\012na"
	.ascii	"me = name .. \"@?\"\012else\012name = name .. \"@<s"
	.ascii	"tring>\"\012end\012end\012name = name .. \":\"\012i"
	.ascii	"f info.what == \"C\" then\012name = name .. \"?\"\012"
	.ascii	"else\012name = name .. info.linedefined\012end\012r"
	.ascii	"eturn name\012end\012function _profiler.prevent(sel"
	.ascii	"f, func, level)\012self.prevented_functions[func] ="
	.ascii	" (level or 1)\012end\012_profiler.prevented_functio"
	.ascii	"ns = {\012[_profiler.start] = 2,\012[_profiler.stop"
	.ascii	"] = 2,\012[_profiler._internal_profile_by_time] = 2"
	.ascii	",\012[_profiler._internal_profile_by_call] = 2,\012"
	.ascii	"[_profiler_hook_wrapper_by_time] = 2,\012[_profiler"
	.ascii	"_hook_wrapper_by_call] = 2,\012[_profiler.prevent] "
	.ascii	"= 2,\012[_profiler._get_func_rec] = 2,\012[_profile"
	.ascii	"r.report] = 2,\012[_profiler.lua_report] = 2,\012[_"
	.ascii	"profiler._pretty_name] = 2\012}\012\000"
	.align	2
.LC17:
	.ascii	"premake.dotnet = { }\012premake.dotnet.namestyle = "
	.ascii	"\"windows\"\012local flags =\012{\012FatalWarning  "
	.ascii	" = \"/warnaserror\",\012Optimize       = \"/optimiz"
	.ascii	"e\",\012OptimizeSize   = \"/optimize\",\012Optimize"
	.ascii	"Speed  = \"/optimize\",\012Symbols        = \"/debu"
	.ascii	"g\",\012Unsafe         = \"/unsafe\"\012}\012functi"
	.ascii	"on premake.dotnet.getbuildaction(fcfg)\012local ext"
	.ascii	" = path.getextension(fcfg.name):lower()\012if fcfg."
	.ascii	"buildaction == \"Compile\" or ext == \".cs\" then\012"
	.ascii	"return \"Compile\"\012elseif fcfg.buildaction == \""
	.ascii	"Embed\" or ext == \".resx\" then\012return \"Embedd"
	.ascii	"edResource\"\012elseif fcfg.buildaction == \"Copy\""
	.ascii	" or ext == \".asax\" or ext == \".aspx\" then\012re"
	.ascii	"turn \"Content\"\012else\012return \"None\"\012end\012"
	.ascii	"end\012function premake.dotnet.getcompilervar(cfg)\012"
	.ascii	"if (_OPTIONS.dotnet == \"msnet\") then\012return \""
	.ascii	"csc\"\012elseif (_OPTIONS.dotnet == \"mono\") then\012"
	.ascii	"return \"mcs\"\012else\012return \"cscc\"\012end\012"
	.ascii	"end\012function premake.dotnet.getflags(cfg)\012loc"
	.ascii	"al result = table.translate(cfg.flags, flags)\012re"
	.ascii	"turn result\012end\012function premake.dotnet.getki"
	.ascii	"nd(cfg)\012if (cfg.kind == \"ConsoleApp\") then\012"
	.ascii	"return \"Exe\"\012elseif (cfg.kind == \"WindowedApp"
	.ascii	"\") then\012return \"WinExe\"\012elseif (cfg.kind ="
	.ascii	"= \"SharedLib\") then\012return \"Library\"\012end\012"
	.ascii	"end\012\000"
	.align	2
.LC18:
	.ascii	"premake.gcc = { }\012premake.gcc.cc     = \"gcc\"\012"
	.ascii	"premake.gcc.cxx    = \"g++\"\012premake.gcc.ar     "
	.ascii	"= \"ar\"\012premake.gcc.rc     = \"windres\"\012pre"
	.ascii	"make.gcc.llvm   = false\012local cflags =\012{\012E"
	.ascii	"nableSSE        = \"-msse\",\012EnableSSE2       = "
	.ascii	"\"-msse2\",\012EnableAVX        = \"-mavx\",\012Ena"
	.ascii	"bleAVX2       = \"-mavx2\",\012PedanticWarnings = \""
	.ascii	"-Wall -Wextra -pedantic\",\012ExtraWarnings    = \""
	.ascii	"-Wall -Wextra\",\012FatalWarnings    = \"-Werror\","
	.ascii	"\012FloatFast        = \"-ffast-math\",\012FloatStr"
	.ascii	"ict      = \"-ffloat-store\",\012NoFramePointer   ="
	.ascii	" \"-fomit-frame-pointer\",\012Optimize         = \""
	.ascii	"-O2\",\012OptimizeSize     = \"-Os\",\012OptimizeSp"
	.ascii	"eed    = \"-O3\",\012Symbols          = \"-g\",\012"
	.ascii	"}\012local cxxflags =\012{\012Cpp11        = \"-std"
	.ascii	"=c++11\",\012Cpp14        = \"-std=c++14\",\012Cpp1"
	.ascii	"7        = \"-std=c++17\",\012CppLatest    = \"-std"
	.ascii	"=c++2a\",\012NoExceptions = \"-fno-exceptions\",\012"
	.ascii	"NoRTTI       = \"-fno-rtti\",\012UnsignedChar = \"-"
	.ascii	"funsigned-char\",\012}\012local objcflags =\012{\012"
	.ascii	"ObjcARC = \"-fobjc-arc\",\012}\012premake.gcc.platf"
	.ascii	"orms =\012{\012Native = {\012cppflags = \"-MMD -MP\""
	.ascii	",\012},\012x32 = {\012cppflags = \"-MMD -MP\",\012f"
	.ascii	"lags    = \"-m32\",\012},\012x64 = {\012cppflags = "
	.ascii	"\"-MMD -MP\",\012flags    = \"-m64\",\012},\012Univ"
	.ascii	"ersal = {\012ar       = \"libtool\",\012cppflags = "
	.ascii	"\"-MMD -MP\",\012flags    = \"-arch i386 -arch x86_"
	.ascii	"64 -arch ppc -arch ppc64\",\012},\012Universal32 = "
	.ascii	"{\012ar       = \"libtool\",\012cppflags = \"-MMD -"
	.ascii	"MP\",\012flags    = \"-arch i386 -arch ppc\",\012},"
	.ascii	"\012Universal64 = {\012ar       = \"libtool\",\012c"
	.ascii	"ppflags = \"-MMD -MP\",\012flags    = \"-arch x86_6"
	.ascii	"4 -arch ppc64\",\012},\012PS3 = {\012cc         = \""
	.ascii	"ppu-lv2-g++\",\012cxx        = \"ppu-lv2-g++\",\012"
	.ascii	"ar         = \"ppu-lv2-ar\",\012cppflags   = \"-MMD"
	.ascii	" -MP\",\012},\012WiiDev = {\012cppflags    = \"-MMD"
	.ascii	" -MP -I$(LIBOGC_INC) $(MACHDEP)\",\012ldflags= \"-L"
	.ascii	"$(LIBOGC_LIB) $(MACHDEP)\",\012cfgsettings = [[\012"
	.ascii	"  ifeq ($(strip $(DEVKITPPC)),)\012    $(error \"DE"
	.ascii	"VKITPPC environment variable is not set\")'\012  en"
	.ascii	"dif\012  include $(DEVKITPPC)/wii_rules']],\012},\012"
	.ascii	"Orbis = {\012cc         = \"orbis-clang\",\012cxx  "
	.ascii	"      = \"orbis-clang++\",\012ar         = \"orbis-"
	.ascii	"ar\",\012cppflags   = \"-MMD -MP\",\012},\012Emscri"
	.ascii	"pten = {\012cc         = \"$(EMSCRIPTEN)/emcc\",\012"
	.ascii	"cxx        = \"$(EMSCRIPTEN)/em++\",\012ar         "
	.ascii	"= \"$(EMSCRIPTEN)/"
	.ascii	"emar\",\012cppflags   = \"-MMD -MP\",\012}\012}\012"
	.ascii	"local platforms = premake.gcc.platforms\012function"
	.ascii	" premake.gcc.getcppflags(cfg)\012local flags = { }\012"
	.ascii	"table.insert(flags, platforms[cfg.platform].cppflag"
	.ascii	"s)\012if flags[1]:startswith(\"-MMD\") then\012tabl"
	.ascii	"e.insert(flags, \"-MP\")\012end\012return flags\012"
	.ascii	"end\012function premake.gcc.getcflags(cfg)\012local"
	.ascii	" result = table.translate(cfg.flags, cflags)\012tab"
	.ascii	"le.insert(result, platforms[cfg.platform].flags)\012"
	.ascii	"if cfg.system ~= \"windows\" and cfg.kind == \"Shar"
	.ascii	"edLib\" then\012table.insert(result, \"-fPIC\")\012"
	.ascii	"end\012return result\012end\012function premake.gcc"
	.ascii	".getcxxflags(cfg)\012local result = table.translate"
	.ascii	"(cfg.flags, cxxflags)\012return result\012end\012fu"
	.ascii	"nction premake.gcc.getobjcflags(cfg)\012return tabl"
	.ascii	"e.translate(cfg.flags, objcflags)\012end\012functio"
	.ascii	"n premake.gcc.getldflags(cfg)\012local result = { }"
	.ascii	"\012if not cfg.flags.Symbols then\012if cfg.system "
	.ascii	"== \"macosx\" then\012else\012table.insert(result, "
	.ascii	"\"-s\")\012end\012end\012if cfg.kind == \"Bundle\" "
	.ascii	"then\012table.insert(result, \"-bundle\")\012end\012"
	.ascii	"if cfg.kind == \"SharedLib\" then\012if cfg.system "
	.ascii	"== \"macosx\" then\012table.insert(result, \"-dynam"
	.ascii	"iclib\")\012else\012table.insert(result, \"-shared\""
	.ascii	")\012end\012if cfg.system == \"windows\" and not cf"
	.ascii	"g.flags.NoImportLib then\012table.insert(result, '-"
	.ascii	"Wl,--out-implib=\"' .. cfg.linktarget.fullpath .. '"
	.ascii	"\"')\012end\012end\012if cfg.kind == \"WindowedApp\""
	.ascii	" and cfg.system == \"windows\" then\012table.insert"
	.ascii	"(result, \"-mwindows\")\012end\012local platform = "
	.ascii	"platforms[cfg.platform]\012table.insert(result, pla"
	.ascii	"tform.flags)\012table.insert(result, platform.ldfla"
	.ascii	"gs)\012return result\012end\012function premake.gcc"
	.ascii	".getlibdirflags(cfg)\012local result = { }\012for _"
	.ascii	", value in ipairs(premake.getlinks(cfg, \"all\", \""
	.ascii	"directory\")) do\012table.insert(result, '-L\\\"' ."
	.ascii	". value .. '\\\"')\012end\012return result\012end\012"
	.ascii	"function premake.gcc.islibfile(p)\012if path.getext"
	.ascii	"ension(p) == \".a\" then\012return true\012end\012r"
	.ascii	"eturn false\012end\012function premake.gcc.getlibfi"
	.ascii	"les(cfg)\012local result = {}\012for _, value in ip"
	.ascii	"airs(premake.getlinks(cfg, \"system\", \"fullpath\""
	.ascii	")) do\012if premake.gcc.islibfile(value) then\012ta"
	.ascii	"ble.insert(result, _MAKE.esc(value))\012end\012end\012"
	.ascii	"return result\012end\012function p"
	.ascii	"remake.gcc.getlinkflags(cfg)\012local result = {}\012"
	.ascii	"for _, value in ipairs(premake.getlinks(cfg, \"syst"
	.ascii	"em\", \"fullpath\")) do\012if premake.gcc.islibfile"
	.ascii	"(value) then\012value = path.rebase(value, cfg.proj"
	.ascii	"ect.location, cfg.location)\012table.insert(result,"
	.ascii	" _MAKE.esc(value))\012elseif path.getextension(valu"
	.ascii	"e) == \".framework\" then\012table.insert(result, '"
	.ascii	"-framework ' .. _MAKE.esc(path.getbasename(value)))"
	.ascii	"\012else\012table.insert(result, '-l' .. _MAKE.esc("
	.ascii	"path.getname(value)))\012end\012end\012return resul"
	.ascii	"t\012end\012function premake.gcc.wholearchive(lib)\012"
	.ascii	"if premake.gcc.llvm then\012return {\"-force_load\""
	.ascii	", lib}\012elseif os.get() == \"macosx\" then\012ret"
	.ascii	"urn {\"-Wl,-force_load\", lib}\012else\012return {\""
	.ascii	"-Wl,--whole-archive\", lib, \"-Wl,--no-whole-archiv"
	.ascii	"e\"}\012end\012end\012function premake.gcc.getarchi"
	.ascii	"veflags(prj, cfg, ndx)\012local result = {}\012if c"
	.ascii	"fg.platform:startswith(\"Universal\") then\012if pr"
	.ascii	"j.options.ArchiveSplit then\012error(\"gcc tool 'Un"
	.ascii	"iversal*' platforms do not support split archives\""
	.ascii	")\012end\012table.insert(result, '-o')\012else\012i"
	.ascii	"f (not prj.options.ArchiveSplit) then\012if premake"
	.ascii	".gcc.llvm then\012table.insert(result, 'rcs')\012el"
	.ascii	"se\012table.insert(result, '-rcs')\012end\012else\012"
	.ascii	"if premake.gcc.llvm then\012if (not ndx) then\012ta"
	.ascii	"ble.insert(result, 'qc')\012else\012table.insert(re"
	.ascii	"sult, 'cs')\012end\012else\012if (not ndx) then\012"
	.ascii	"table.insert(result, '-qc')\012else\012table.insert"
	.ascii	"(result, '-cs')\012end\012end\012end\012end\012retu"
	.ascii	"rn result\012end\012function premake.gcc.getdefines"
	.ascii	"(defines)\012local result = { }\012for _,def in ipa"
	.ascii	"irs(defines) do\012table.insert(result, \"-D\" .. d"
	.ascii	"ef)\012end\012return result\012end\012function prem"
	.ascii	"ake.gcc.getincludedirs(includedirs)\012local result"
	.ascii	" = { }\012for _,dir in ipairs(includedirs) do\012ta"
	.ascii	"ble.insert(result, \"-I\\\"\" .. dir .. \"\\\"\")\012"
	.ascii	"end\012return result\012end\012function premake.gcc"
	.ascii	".getquoteincludedirs(includedirs)\012local result ="
	.ascii	" { }\012for _,dir in ipairs(includedirs) do\012tabl"
	.ascii	"e.insert(result, \"-iquote \\\"\" .. dir .. \"\\\"\""
	.ascii	")\012end\012return result\012end\012function premak"
	.ascii	"e.gcc.getsystemincludedirs(includedirs)\012local re"
	.ascii	"sult = { }\012for _,dir in ipairs(includedirs) do\012"
	.ascii	"table.insert(result, \"-isystem \\\"\" .. dir .. \""
	.ascii	"\\\"\")\012end\012return result\012"
	.ascii	"end\012function premake.gcc.getcfgsettings(cfg)\012"
	.ascii	"return platforms[cfg.platform].cfgsettings\012end\012"
	.ascii	"\000"
	.align	2
.LC19:
	.ascii	"premake.ghs = { }\012premake.ghs.namestyle = \"PS3\""
	.ascii	"\012premake.ghs.cc     = \"ccppc\"\012premake.ghs.c"
	.ascii	"xx    = \"cxppc\"\012premake.ghs.ar     = \"cxppc\""
	.ascii	"\012local cflags =\012{\012FatalWarnings  = \"--qui"
	.ascii	"t_after_warnings\",\012Optimize       = \"-Ogeneral"
	.ascii	"\",\012OptimizeSize   = \"-Osize\",\012OptimizeSpee"
	.ascii	"d  = \"-Ospeed\",\012Symbols        = \"-g\",\012}\012"
	.ascii	"local cxxflags =\012{\012NoExceptions   = \"--no_ex"
	.ascii	"ceptions\",\012NoRTTI         = \"--no_rtti\",\012U"
	.ascii	"nsignedChar   = \"--unsigned_chars\",\012}\012prema"
	.ascii	"ke.ghs.platforms =\012{\012Native = {\012cppflags ="
	.ascii	" \"-MMD\",\012},\012PowerPC = {\012cc         = \"c"
	.ascii	"cppc\",\012cxx       = \"cxppc\",\012ar       = \"c"
	.ascii	"xppc\",\012cppflags   = \"-MMD\",\012arflags    = \""
	.ascii	"-archive -o\",\012},\012ARM = {\012cc         = \"c"
	.ascii	"carm\",\012cxx        = \"cxarm\",\012ar         = "
	.ascii	"\"cxarm\",\012cppflags   = \"-MMD\",\012arflags    "
	.ascii	"= \"-archive -o\",\012}\012}\012local platforms = p"
	.ascii	"remake.ghs.platforms\012function premake.ghs.getcpp"
	.ascii	"flags(cfg)\012local flags = { }\012table.insert(fla"
	.ascii	"gs, platforms[cfg.platform].cppflags)\012return fla"
	.ascii	"gs\012end\012function premake.ghs.getcflags(cfg)\012"
	.ascii	"local result = table.translate(cfg.flags, cflags)\012"
	.ascii	"table.insert(result, platforms[cfg.platform].flags)"
	.ascii	"\012return result\012end\012function premake.ghs.ge"
	.ascii	"tcxxflags(cfg)\012local result = table.translate(cf"
	.ascii	"g.flags, cxxflags)\012return result\012end\012funct"
	.ascii	"ion premake.ghs.getldflags(cfg)\012local result = {"
	.ascii	" }\012local platform = platforms[cfg.platform]\012t"
	.ascii	"able.insert(result, platform.flags)\012table.insert"
	.ascii	"(result, platform.ldflags)\012return result\012end\012"
	.ascii	"function premake.ghs.getlibdirflags(cfg)\012local r"
	.ascii	"esult = { }\012for _, value in ipairs(premake.getli"
	.ascii	"nks(cfg, \"all\", \"directory\")) do\012table.inser"
	.ascii	"t(result, '-L' .. _MAKE.esc(value))\012end\012retur"
	.ascii	"n result\012end\012function premake.ghs.getlibfiles"
	.ascii	"(cfg)\012local result = {}\012return result\012end\012"
	.ascii	"function premake.ghs.getlinkflags(cfg)\012local res"
	.ascii	"ult = {}\012for _, value in ipairs(premake.getlinks"
	.ascii	"(cfg, \"system\", \"name\")) do\012table.insert(res"
	.ascii	"ult, '-lnk=' .. _MAKE.esc(value))\012end\012return "
	.ascii	"result\012end\012function premake.ghs.getarchivefla"
	.ascii	"gs(prj, cfg, ndx)\012if prj.options.ArchiveSplit th"
	.ascii	"en\012error(\"ghs tool does not support split archi"
	.ascii	"ves\")\012end\012local result = {}\012local platfo"
	.ascii	"rm = platforms[cfg.platform]\012table.insert(result"
	.ascii	", platform.arflags)\012return result\012end\012func"
	.ascii	"tion premake.ghs.getdefines(defines)\012local resul"
	.ascii	"t = { }\012for _,def in ipairs(defines) do\012table"
	.ascii	".insert(result, '-D' .. def)\012end\012return resul"
	.ascii	"t\012end\012function premake.ghs.getincludedirs(inc"
	.ascii	"ludedirs)\012local result = { }\012for _,dir in ipa"
	.ascii	"irs(includedirs) do\012table.insert(result, \"-I\" "
	.ascii	".. _MAKE.esc(dir))\012end\012return result\012end\012"
	.ascii	"function premake.ghs.getcfgsettings(cfg)\012return "
	.ascii	"platforms[cfg.platform].cfgsettings\012end\012\000"
	.align	2
.LC20:
	.ascii	"premake.msc = { }\012premake.msc.namestyle = \"wind"
	.ascii	"ows\"\012\000"
	.align	2
.LC21:
	.ascii	"premake.ow = { }\012premake.ow.namestyle = \"window"
	.ascii	"s\"\012premake.ow.cc     = \"WCL386\"\012premake.ow"
	.ascii	".cxx    = \"WCL386\"\012premake.ow.ar     = \"ar\"\012"
	.ascii	"local cflags =\012{\012PedanticWarnings = \"-wx\",\012"
	.ascii	"ExtraWarnings    = \"-wx\",\012FatalWarning     = \""
	.ascii	"-we\",\012FloatFast        = \"-omn\",\012FloatStri"
	.ascii	"ct      = \"-op\",\012Optimize         = \"-ox\",\012"
	.ascii	"OptimizeSize     = \"-os\",\012OptimizeSpeed    = \""
	.ascii	"-ot\",\012Symbols          = \"-d2\",\012}\012local"
	.ascii	" cxxflags =\012{\012NoExceptions   = \"-xd\",\012No"
	.ascii	"RTTI         = \"-xr\",\012}\012premake.ow.platform"
	.ascii	"s =\012{\012Native = {\012flags = \"\"\012},\012}\012"
	.ascii	"function premake.ow.getcppflags(cfg)\012return {}\012"
	.ascii	"end\012function premake.ow.getcflags(cfg)\012local "
	.ascii	"result = table.translate(cfg.flags, cflags)\012if ("
	.ascii	"cfg.flags.Symbols) then\012table.insert(result, \"-"
	.ascii	"hw\")   -- Watcom debug format for Watcom debugger\012"
	.ascii	"end\012return result\012end\012function premake.ow."
	.ascii	"getcxxflags(cfg)\012local result = table.translate("
	.ascii	"cfg.flags, cxxflags)\012return result\012end\012fun"
	.ascii	"ction premake.ow.getldflags(cfg)\012local result = "
	.ascii	"{ }\012if (cfg.flags.Symbols) then\012table.insert("
	.ascii	"result, \"op symf\")\012end\012return result\012end"
	.ascii	"\012function premake.ow.getlibfiles(cfg)\012local r"
	.ascii	"esult = {}\012return result\012end\012function prem"
	.ascii	"ake.ow.getlinkflags(cfg)\012local result = { }\012r"
	.ascii	"eturn result\012end\012function premake.ow.getdefin"
	.ascii	"es(defines)\012local result = { }\012for _,def in i"
	.ascii	"pairs(defines) do\012table.insert(result, '-D' .. d"
	.ascii	"ef)\012end\012return result\012end\012function prem"
	.ascii	"ake.ow.getincludedirs(includedirs)\012local result "
	.ascii	"= { }\012for _,dir in ipairs(includedirs) do\012tab"
	.ascii	"le.insert(result, '-I \"' .. dir .. '\"')\012end\012"
	.ascii	"return result\012end\012\000"
	.align	2
.LC22:
	.ascii	"premake.snc = { }\012premake.snc.cc     = \"snc\"\012"
	.ascii	"premake.snc.cxx    = \"g++\"\012premake.snc.ar     "
	.ascii	"= \"ar\"\012local cflags =\012{\012PedanticWarnings"
	.ascii	" = \"-Xdiag=2\",\012ExtraWarnings    = \"-Xdiag=2\""
	.ascii	",\012FatalWarnings    = \"-Xquit=2\",\012}\012local"
	.ascii	" cxxflags =\012{\012NoExceptions   = \"\", -- No ex"
	.ascii	"ceptions is the default in the SNC compiler.\012NoR"
	.ascii	"TTI         = \"-Xc-=rtti\",\012}\012premake.snc.pl"
	.ascii	"atforms =\012{\012PS3 = {\012cc         = \"ppu-lv2"
	.ascii	"-g++\",\012cxx        = \"ppu-lv2-g++\",\012ar     "
	.ascii	"    = \"ppu-lv2-ar\",\012cppflags   = \"-MMD -MP\","
	.ascii	"\012}\012}\012local platforms = premake.snc.platfor"
	.ascii	"ms\012function premake.snc.getcppflags(cfg)\012loca"
	.ascii	"l result = { }\012table.insert(result, platforms[cf"
	.ascii	"g.platform].cppflags)\012return result\012end\012fu"
	.ascii	"nction premake.snc.getcflags(cfg)\012local result ="
	.ascii	" table.translate(cfg.flags, cflags)\012table.insert"
	.ascii	"(result, platforms[cfg.platform].flags)\012if cfg.k"
	.ascii	"ind == \"SharedLib\" then\012table.insert(result, \""
	.ascii	"-fPIC\")\012end\012return result\012end\012function"
	.ascii	" premake.snc.getcxxflags(cfg)\012local result = tab"
	.ascii	"le.translate(cfg.flags, cxxflags)\012return result\012"
	.ascii	"end\012function premake.snc.getldflags(cfg)\012loca"
	.ascii	"l result = { }\012if not cfg.flags.Symbols then\012"
	.ascii	"table.insert(result, \"-s\")\012end\012if cfg.kind "
	.ascii	"== \"SharedLib\" then\012table.insert(result, \"-sh"
	.ascii	"ared\")\012if not cfg.flags.NoImportLib then\012tab"
	.ascii	"le.insert(result, '-Wl,--out-implib=\"' .. cfg.link"
	.ascii	"target.fullpath .. '\"')\012end\012end\012local pla"
	.ascii	"tform = platforms[cfg.platform]\012table.insert(res"
	.ascii	"ult, platform.flags)\012table.insert(result, platfo"
	.ascii	"rm.ldflags)\012return result\012end\012function pre"
	.ascii	"make.snc.getlibdirflags(cfg)\012local result = { }\012"
	.ascii	"for _, value in ipairs(premake.getlinks(cfg, \"all\""
	.ascii	", \"directory\")) do\012table.insert(result, '-L' ."
	.ascii	". _MAKE.esc(value))\012end\012return result\012end\012"
	.ascii	"function premake.snc.getlibfiles(cfg)\012local resu"
	.ascii	"lt = {}\012return result\012end\012function premake"
	.ascii	".snc.getlinkflags(cfg)\012local result = {}\012for "
	.ascii	"_, value in ipairs(premake.getlinks(cfg, \"system\""
	.ascii	", \"name\")) do\012table.insert(result, '-l' .. _MA"
	.ascii	"KE.esc(value))\012end\012return result\012end\012fu"
	.ascii	"nction premake.snc.getdefines(defines)\012local res"
	.ascii	"ult = { }\012for _,def in ipairs(defines) do\012tab"
	.ascii	"le.insert(result, '-D' ."
	.ascii	". def)\012end\012return result\012end\012function p"
	.ascii	"remake.snc.getincludedirs(includedirs)\012local res"
	.ascii	"ult = { }\012for _,dir in ipairs(includedirs) do\012"
	.ascii	"table.insert(result, \"-I\" .. _MAKE.esc(dir))\012e"
	.ascii	"nd\012return result\012end\012\000"
	.align	2
.LC23:
	.ascii	"premake.valac = { }\012premake.valac.valac  = \"val"
	.ascii	"ac\"\012premake.valac.cc     = \"gcc\"\012local val"
	.ascii	"aflags =\012{\012DisableAssert             = \"--di"
	.ascii	"sable-assert\",               -- Disable assertions"
	.ascii	"\012DisableSinceCheck         = \"--disable-since-c"
	.ascii	"heck\",          -- Do not check whether used symbo"
	.ascii	"ls exist in local packages\012DisableWarnings      "
	.ascii	"     = \"--disable-warnings\",             -- Disab"
	.ascii	"le warnings\012EnableChecking            = \"--enab"
	.ascii	"le-checking\",              -- Enable additional ru"
	.ascii	"n-time checks\012EnableDeprecated          = \"--en"
	.ascii	"able-deprecated\",            -- Enable deprecated "
	.ascii	"features\012EnableExperimental        = \"--enable-"
	.ascii	"experimental\",          -- Enable experimental fea"
	.ascii	"tures\012EnableExperimentalNonNull = \"--enable-exp"
	.ascii	"erimental-non-null\", -- Enable experimental enhanc"
	.ascii	"ements for non-null types\012EnableGObjectTracing  "
	.ascii	"    = \"--enable-gobject-tracing\",       -- Enable"
	.ascii	" GObject creation tracing\012EnableMemProfiler     "
	.ascii	"    = \"--enable-mem-profiler\",          -- Enable"
	.ascii	" GLib memory profiler\012EnableThreading           "
	.ascii	"= \"--thread\",                       -- Enable mul"
	.ascii	"tithreading support\012FatalWarnings             = "
	.ascii	"\"--fatal-warnings\",               -- Treat warnin"
	.ascii	"gs as fatal\012HideInternal              = \"--hide"
	.ascii	"-internal\",                -- Hide symbols marked "
	.ascii	"as internal\012NoStdPkg                  = \"--nost"
	.ascii	"dpkg\",                     -- Do not include stand"
	.ascii	"ard packages\012Optimize                  = \"-X -O"
	.ascii	"2\",\012OptimizeSize              = \"-X -Os\",\012"
	.ascii	"OptimizeSpeed             = \"-X -O3\",\012Symbols "
	.ascii	"                  = \"-g\",                        "
	.ascii	"     -- Produce debug information\012}\012premake.v"
	.ascii	"alac.platforms = {}\012function premake.valac.getva"
	.ascii	"laflags(cfg)\012return table.translate(cfg.flags, v"
	.ascii	"alaflags)\012end\012function premake.valac.getlinks"
	.ascii	"(links)\012local result = { }\012for _, pkg in ipai"
	.ascii	"rs(links) do\012table.insert(result, '--pkg ' .. pk"
	.ascii	"g)\012end\012return result\012end\012function prema"
	.ascii	"ke.valac.getdefines(defines)\012local result = { }\012"
	.ascii	"for _, def in ipairs(defines) do\012table.insert(re"
	.ascii	"sult, '-D ' .. def)\012end\012return result\012end\012"
	.ascii	"function prem"
	.ascii	"ake.valac.getbuildoptions(buildoptions)\012local re"
	.ascii	"sult = { }\012for _, def in ipairs(buildoptions) do"
	.ascii	"\012table.insert(result, '-X ' .. def)\012end\012re"
	.ascii	"turn result\012end\012function premake.valac.getvap"
	.ascii	"idirs(vapidirs)\012local result = { }\012for _, def"
	.ascii	" in ipairs(vapidirs) do\012table.insert(result, '--"
	.ascii	"vapidir=' .. def)\012end\012return result\012end\012"
	.ascii	"\000"
	.align	2
.LC24:
	.ascii	"premake.swift = { }\012premake.swift.swiftc   = \"s"
	.ascii	"wiftc\"\012premake.swift.swift    = \"swift\"\012pr"
	.ascii	"emake.swift.cc       = \"gcc\"\012premake.swift.ar "
	.ascii	"      = \"ar\"\012premake.swift.ld       = \"ld\"\012"
	.ascii	"premake.swift.dsymutil = \"dsymutil\"\012local swif"
	.ascii	"tcflags =\012{\012Symbols                   = \"-g\""
	.ascii	",                             -- Produce debug info"
	.ascii	"rmation\012DisableWarnings           = \"--suppress"
	.ascii	"-warnings\",            -- Disable warnings\012Fata"
	.ascii	"lWarnings             = \"--warnings-as-errors\",  "
	.ascii	"         -- Treat warnings as fatal\012Optimize    "
	.ascii	"              = \"-O -whole-module-optimization\",\012"
	.ascii	"OptimizeSize              = \"-O -whole-module-opti"
	.ascii	"mization\",\012OptimizeSpeed             = \"-Ounch"
	.ascii	"ecked -whole-module-optimization\",\012MinimumWarni"
	.ascii	"ngs           = \"-minimum-warnings\",\012}\012loca"
	.ascii	"l swiftlinkflags = {\012StaticRuntime             ="
	.ascii	" \"-static-stdlib\",\012}\012premake.swift.platform"
	.ascii	"s = {\012Native = {\012swiftcflags    = \"\",\012sw"
	.ascii	"iftlinkflags = \"\",\012},\012x64 = {\012swiftcflag"
	.ascii	"s    = \"\",\012swiftlinkflags = \"\",\012}\012}\012"
	.ascii	"local platforms = premake.swift.platforms\012functi"
	.ascii	"on premake.swift.get_sdk_path(cfg)\012return string"
	.ascii	".trim(os.outputof(\"xcrun --show-sdk-path\"))\012en"
	.ascii	"d\012function premake.swift.get_sdk_platform_path(c"
	.ascii	"fg)\012return string.trim(os.outputof(\"xcrun --sho"
	.ascii	"w-sdk-platform-path\"))\012end\012function premake."
	.ascii	"swift.get_toolchain_path(cfg)\012return string.trim"
	.ascii	"(os.outputof(\"xcode-select -p\")) .. \"/Toolchains"
	.ascii	"/XcodeDefault.xctoolchain\"\012end\012function prem"
	.ascii	"ake.swift.gettarget(cfg)\012return \"-target x86_64"
	.ascii	"-apple-macosx10.11\"\012end\012function premake.swi"
	.ascii	"ft.getswiftcflags(cfg)\012local result = table.tran"
	.ascii	"slate(cfg.flags, swiftcflags)\012table.insert(resul"
	.ascii	"t, platforms[cfg.platform].swiftcflags)\012result ="
	.ascii	" table.join(result, cfg.buildoptions_swift)\012if c"
	.ascii	"fg.kind == \"SharedLib\" or cfg.kind == \"StaticLib"
	.ascii	"\" then\012table.insert(result, \"-parse-as-library"
	.ascii	"\")\012end\012table.insert(result, premake.swift.ge"
	.ascii	"ttarget(cfg))\012return result\012end\012function p"
	.ascii	"remake.swift.getswiftlinkflags(cfg)\012local result"
	.ascii	" = table.translate(cfg.flags, swiftlinkflags)\012ta"
	.ascii	"ble.insert(result, platforms[cfg.platform].swiftlin"
	.ascii	"kflags)\012result = "
	.ascii	"table.join(result, cfg.linkoptions_swift)\012if cfg"
	.ascii	".kind == \"SharedLib\" or cfg.kind == \"StaticLib\""
	.ascii	" then\012table.insert(result, \"-emit-library\")\012"
	.ascii	"else\012table.insert(result, \"-emit-executable\")\012"
	.ascii	"end\012table.insert(result, premake.swift.gettarget"
	.ascii	"(cfg))\012return result\012end\012function premake."
	.ascii	"swift.getmodulemaps(cfg)\012local maps = {}\012if n"
	.ascii	"ext(cfg.swiftmodulemaps) then\012for _, mod in ipai"
	.ascii	"rs(cfg.swiftmodulemaps) do\012table.insert(maps, st"
	.ascii	"ring.format(\"-Xcc -fmodule-map-file=%s\", mod))\012"
	.ascii	"end\012end\012return maps\012end\012function premak"
	.ascii	"e.swift.getlibdirflags(cfg)\012return premake.gcc.g"
	.ascii	"etlibdirflags(cfg)\012end\012function premake.swift"
	.ascii	".getldflags(cfg)\012local result = { platforms[cfg."
	.ascii	"platform].ldflags }\012local links = premake.getlin"
	.ascii	"ks(cfg, \"siblings\", \"basename\")\012for _,v in i"
	.ascii	"pairs(links) do\012if path.getextension(v) == \".fr"
	.ascii	"amework\" then\012table.insert(result, \"-framework"
	.ascii	" \"..v)\012else\012table.insert(result, \"-l\"..v)\012"
	.ascii	"end\012end\012return result\012end\012function prem"
	.ascii	"ake.swift.getlinkflags(cfg)\012return premake.gcc.g"
	.ascii	"etlinkflags(cfg)\012end\012function premake.swift.g"
	.ascii	"etarchiveflags(cfg)\012return \"\"\012end\012\000"
	.align	2
.LC25:
	.ascii	"function premake.checkprojects()\012local action = "
	.ascii	"premake.action.current()\012for sln in premake.solu"
	.ascii	"tion.each() do\012if (#sln.projects == 0) then\012r"
	.ascii	"eturn nil, \"solution '\" .. sln.name .. \"' needs "
	.ascii	"at least one project\"\012end\012if (#sln.configura"
	.ascii	"tions == 0) then\012return nil, \"solution '\" .. s"
	.ascii	"ln.name .. \"' needs configurations\"\012end\012for"
	.ascii	" prj in premake.solution.eachproject(sln) do\012if "
	.ascii	"(not prj.language) then\012return nil, \"project '\""
	.ascii	" ..prj.name .. \"' needs a language\"\012end\012if "
	.ascii	"(action.valid_languages) then\012if (not table.cont"
	.ascii	"ains(action.valid_languages, prj.language)) then\012"
	.ascii	"return nil, \"the \" .. action.shortname .. \" acti"
	.ascii	"on does not support \" .. prj.language .. \" projec"
	.ascii	"ts\"\012end\012end\012for cfg in premake.eachconfig"
	.ascii	"(prj) do\012if (not cfg.kind) then\012return nil, \""
	.ascii	"project '\" ..prj.name .. \"' needs a kind in confi"
	.ascii	"guration '\" .. cfg.name .. \"'\"\012end\012if (act"
	.ascii	"ion.valid_kinds) then\012if (not table.contains(act"
	.ascii	"ion.valid_kinds, cfg.kind)) then\012return nil, \"t"
	.ascii	"he \" .. action.shortname .. \" action does not sup"
	.ascii	"port \" .. cfg.kind .. \" projects\"\012end\012end\012"
	.ascii	"end\012if action.oncheckproject then\012action.onch"
	.ascii	"eckproject(prj)\012end\012end\012end\012return true"
	.ascii	"\012end\012function premake.checktools()\012local a"
	.ascii	"ction = premake.action.current()\012if (not action."
	.ascii	"valid_tools) then \012return true \012end\012for to"
	.ascii	"ol, values in pairs(action.valid_tools) do\012if (_"
	.ascii	"OPTIONS[tool]) then\012if (not table.contains(value"
	.ascii	"s, _OPTIONS[tool])) then\012return nil, \"the \" .."
	.ascii	" action.shortname .. \" action does not support /\""
	.ascii	" .. tool .. \"=\" .. _OPTIONS[tool] .. \" (yet)\"\012"
	.ascii	"end\012else\012_OPTIONS[tool] = values[1]\012end\012"
	.ascii	"end\012return true\012end\012\000"
	.align	2
.LC26:
	.ascii	"function premake.showhelp()\012printf(\"\")\012prin"
	.ascii	"tf(\"Usage: genie [options] action [arguments]\")\012"
	.ascii	"printf(\"\")\012printf(\"OPTIONS\")\012printf(\"\")"
	.ascii	"\012for option in premake.option.each() do\012local"
	.ascii	" trigger = option.trigger\012local description = op"
	.ascii	"tion.description\012if (option.value) then trigger "
	.ascii	"= trigger .. \"=\" .. option.value end\012if (optio"
	.ascii	"n.allowed) then description = description .. \"; on"
	.ascii	"e of:\" end\012printf(\" --%-15s %s\", trigger, des"
	.ascii	"cription)\012if (option.allowed) then\012for _, val"
	.ascii	"ue in ipairs(option.allowed) do\012printf(\"     %-"
	.ascii	"14s %s\", value[1], value[2])\012end\012end\012prin"
	.ascii	"tf(\"\")\012end\012printf(\"ACTIONS\")\012printf(\""
	.ascii	"\")\012for action in premake.action.each() do\012pr"
	.ascii	"intf(\" %-17s %s\", action.trigger, action.descript"
	.ascii	"ion)\012end\012printf(\"\")\012printf(\"For additio"
	.ascii	"nal information, see https://github.com/bkaradzic/g"
	.ascii	"enie\")\012end\012\000"
	.align	2
.LC27:
	.ascii	"premake._filelevelconfig = false\012premake._checkg"
	.ascii	"enerate = true\012function premake.generate(obj, fi"
	.ascii	"lename, callback)\012local prev  = io.capture()\012"
	.ascii	"local abort = (callback(obj) == false)\012local new"
	.ascii	"   = io.endcapture(prev)\012if abort then\012premak"
	.ascii	"e.stats.num_skipped = premake.stats.num_skipped + 1"
	.ascii	"\012return\012end\012filename = premake.project.get"
	.ascii	"filename(obj, filename)\012if (premake._checkgenera"
	.ascii	"te) then\012local delta = false\012local f, err = i"
	.ascii	"o.open(filename, \"rb\")\012if (not f) then\012if s"
	.ascii	"tring.find(err, \"No such file or directory\") then"
	.ascii	"\012delta = true\012else\012error(err, 0)\012end\012"
	.ascii	"else\012local existing = f:read(\"*all\")\012if exi"
	.ascii	"sting ~= new then\012delta = true\012end\012f:close"
	.ascii	"()\012end\012if delta then\012printf(\"Generating %"
	.ascii	"q\", filename)\012local f, err = io.open(filename, "
	.ascii	"\"wb\")\012if (not f) then\012error(err, 0)\012end\012"
	.ascii	"f:write(new)\012f:close()\012premake.stats.num_gene"
	.ascii	"rated = premake.stats.num_generated + 1\012else\012"
	.ascii	"premake.stats.num_skipped = premake.stats.num_skipp"
	.ascii	"ed + 1\012end\012else\012printf(\"Generating %q\", "
	.ascii	"filename)\012local f, err = io.open(filename, \"wb\""
	.ascii	")\012if (not f) then\012error(err, 0)\012end\012f:w"
	.ascii	"rite(new)\012f:close()\012premake.stats.num_generat"
	.ascii	"ed = premake.stats.num_generated + 1\012end\012end\012"
	.ascii	"function premake.findDefaultScript(dir, search_upwa"
	.ascii	"rds)\012search_upwards = search_upwards or true\012"
	.ascii	"local last = \"\"\012while dir ~= last do\012for _,"
	.ascii	" name in ipairs({ \"genie.lua\", \"solution.lua\", "
	.ascii	"\"premake4.lua\" }) do\012local script0 = dir .. \""
	.ascii	"/\" .. name\012if (os.isfile(script0)) then\012retu"
	.ascii	"rn dir, name\012end\012local script1 = dir .. \"/sc"
	.ascii	"ripts/\" .. name\012if (os.isfile(script1)) then\012"
	.ascii	"return dir .. \"/scripts/\", name\012end\012end\012"
	.ascii	"last = dir\012dir  = path.getabsolute(dir .. \"/..\""
	.ascii	")\012if dir == \".\" or not search_upwards then bre"
	.ascii	"ak end\012end\012return nil, nil\012end\012\000"
	.align	2
.LC28:
	.ascii	"iter = {}\012function iter.sortByKeys(arr, f)\012lo"
	.ascii	"cal a = table.keys(arr)\012table.sort(a, f)\012loca"
	.ascii	"l i = 0\012return function()\012i = i + 1\012if a[i"
	.ascii	"] ~= nil then \012return a[i], arr[a[i]]\012end\012"
	.ascii	"end\012end\012\000"
	.align	2
.LC29:
	.ascii	"Set_mt = {}\012function Set(t)\012local set = {}\012"
	.ascii	"for k, l in ipairs(t) do \012set[l] = true \012end\012"
	.ascii	"setmetatable(set, Set_mt)\012return set\012end\012f"
	.ascii	"unction Set_mt.union(a, b)\012local res = Set{}\012"
	.ascii	"for k in pairs(a) do res[k] = true end\012for k in "
	.ascii	"pairs(b) do res[k] = true end\012return res\012end\012"
	.ascii	"function Set_mt.intersection(a, b)\012local res = S"
	.ascii	"et{}\012for k in pairs(a) do\012res[k] = b[k]\012en"
	.ascii	"d\012return res\012end\012local function get_cache("
	.ascii	"a)\012if not rawget(a, \"__cache\") then\012rawset("
	.ascii	"a, \"__cache\", Set_mt.totable(a))\012end\012return"
	.ascii	" rawget(a, \"__cache\")\012end\012function Set_mt.l"
	.ascii	"en(a)\012return #get_cache(a)\012end\012function Se"
	.ascii	"t_mt.implode(a, sep)\012return table.concat(get_cac"
	.ascii	"he(a), sep)\012end\012function Set_mt.totable(a)\012"
	.ascii	"local res = {}\012for k in pairs(a) do\012table.ins"
	.ascii	"ert(res, k)\012end\012return res\012end\012function"
	.ascii	" Set_mt.difference(a, b)\012if getmetatable(b) ~= S"
	.ascii	"et_mt then\012if type(b) ~= \"table\" then\012error"
	.ascii	"(type(b)..\" is not a Set or table\")\012end\012b=S"
	.ascii	"et(b)\012end\012local res = Set{}\012for k in pairs"
	.ascii	"(a) do\012res[k] = not b[k] or nil\012end\012rawset"
	.ascii	"(res, \"__cache\", nil)\012return res\012end\012fun"
	.ascii	"ction Set_mt.__index(a, i)\012if type(i) == \"numbe"
	.ascii	"r\" then\012return get_cache(a)[i]\012end\012return"
	.ascii	" Set_mt[i] or rawget(a, i)\012end\012Set_mt.__add ="
	.ascii	" Set_mt.union\012Set_mt.__mul = Set_mt.intersection"
	.ascii	"\012Set_mt.__sub = Set_mt.difference\012Set_mt.__le"
	.ascii	"n = Set_mt.len\012Set_mt.__concat = Set_mt.implode\000"
	.align	2
.LC30:
	.ascii	"premake.cmake = { }\012newaction {\012trigger      "
	.ascii	"   = \"cmake\",\012shortname       = \"CMake\",\012"
	.ascii	"description     = \"Generate CMake project files\","
	.ascii	"\012valid_kinds     = { \"ConsoleApp\", \"WindowedA"
	.ascii	"pp\", \"StaticLib\", \"SharedLib\", \"Bundle\" },\012"
	.ascii	"valid_languages = { \"C\", \"C++\" },\012valid_tool"
	.ascii	"s     = {\012cc   = { \"gcc\" },\012},\012onsolutio"
	.ascii	"n = function(sln)\012premake.generate(sln, \"CMakeL"
	.ascii	"ists.txt\", premake.cmake.workspace)\012end,\012onp"
	.ascii	"roject = function(prj)\012premake.generate(prj, \"%"
	.ascii	"%/CMakeLists.txt\", premake.cmake.project)\012end,\012"
	.ascii	"oncleansolution = function(sln)\012premake.clean.fi"
	.ascii	"le(sln, \"CMakeLists.txt\")\012end,\012oncleanproje"
	.ascii	"ct = function(prj)\012premake.clean.file(prj, \"%%/"
	.ascii	"CMakeLists.txt\")\012end\012}\000"
	.align	2
.LC31:
	.ascii	"function premake.cmake.workspace(sln)\012if (sln.lo"
	.ascii	"cation ~= _WORKING_DIR) then\012local name = string"
	.ascii	".format(\"%s/CMakeLists.txt\", _WORKING_DIR)\012loc"
	.ascii	"al f, err = io.open(name, \"wb\")\012if (not f) the"
	.ascii	"n\012error(err, 0)\012end\012f:write('# CMakeLists "
	.ascii	"autogenerated by GENie\\n')\012f:write('cmake_minim"
	.ascii	"um_required(VERSION 2.8.4)\\n')\012f:write('\\n')\012"
	.ascii	"f:write('add_subdirectory('.. path.getrelative(_WOR"
	.ascii	"KING_DIR, sln.location) ..')\\n')\012f:close()\012e"
	.ascii	"nd\012_p('# CMakeLists autogenerated by GENie')\012"
	.ascii	"_p('cmake_minimum_required(VERSION 2.8.4)')\012_p('"
	.ascii	"')\012for i,prj in ipairs(sln.projects) do\012local"
	.ascii	" name = premake.esc(prj.name)\012_p('add_subdirecto"
	.ascii	"ry(%s)', name)\012end\012end\012\000"
	.align	2
.LC32:
	.ascii	"local cmake = premake.cmake\012local tree = premake"
	.ascii	".tree\012local includestr = 'include_directories(.."
	.ascii	"/%s)'\012local definestr = 'add_definitions(-D%s)'\012"
	.ascii	"local function is_excluded(prj, cfg, file)\012    i"
	.ascii	"f table.icontains(prj.excludes, file) then\012     "
	.ascii	"   return true\012    end\012    if table.icontains"
	.ascii	"(cfg.excludes, file) then\012        return true\012"
	.ascii	"    end\012    return false\012end\012function cmak"
	.ascii	"e.excludedFiles(prj, cfg, src)\012    for _, v in i"
	.ascii	"pairs(src) do\012        if (is_excluded(prj, cfg, "
	.ascii	"v)) then\012            _p(1, 'list(REMOVE_ITEM sou"
	.ascii	"rce_list ../%s)', v)\012        end\012    end\012e"
	.ascii	"nd\012function cmake.list(value)\012    if #value >"
	.ascii	" 0 then\012        return \" \" .. table.concat(val"
	.ascii	"ue, \" \")\012    else\012        return \"\"\012  "
	.ascii	"  end\012end\012function cmake.files(prj)\012    lo"
	.ascii	"cal ret = {}\012    local tr = premake.project.buil"
	.ascii	"dsourcetree(prj)\012    tree.traverse(tr, {\012    "
	.ascii	"    onbranchenter = function(node, depth)\012      "
	.ascii	"  end,\012        onbranchexit = function(node, dep"
	.ascii	"th)\012        end,\012        onleaf = function(no"
	.ascii	"de, depth)\012            assert(node, \"unexpected"
	.ascii	" empty node\")\012            if node.cfg then\012 "
	.ascii	"               table.insert(ret, node.cfg.name)\012"
	.ascii	"                _p(1, '../%s', node.cfg.name)\012  "
	.ascii	"          end\012        end,\012    }, true, 1)\012"
	.ascii	"    return ret\012end\012function cmake.header(prj)"
	.ascii	"\012    _p('# %s project autogenerated by GENie', p"
	.ascii	"remake.action.current().shortname)\012    _p('cmake"
	.ascii	"_minimum_required(VERSION 2.8.4)')\012    _p('')\012"
	.ascii	"    _p('project(%s)', premake.esc(prj.name))\012end"
	.ascii	"\012function cmake.customtasks(prj)\012    local di"
	.ascii	"rs = {}\012    local tasks = {}\012    for _, custo"
	.ascii	"mbuildtask in ipairs(prj.custombuildtask or {}) do\012"
	.ascii	"        for _, buildtask in ipairs(custombuildtask "
	.ascii	"or {}) do\012            table.insert(tasks, buildt"
	.ascii	"ask)\012            local d = string.format(\"${CMA"
	.ascii	"KE_CURRENT_SOURCE_DIR}/../%s\", path.getdirectory(p"
	.ascii	"ath.getrelative(prj.location, buildtask[2])))\012  "
	.ascii	"          if not table.contains(dirs, d) then\012  "
	.ascii	"              table.insert(dirs, d)\012            "
	.ascii	"    _p('file(MAKE_DIRECTORY \\\"%s\\\")', d)\012   "
	.ascii	"         end\012        end\012    end\012    _p(''"
	.ascii	")\012  "
	.ascii	"  for _, buildtask in ipairs(tasks) do\012        l"
	.ascii	"ocal deps = string.format(\"${CMAKE_CURRENT_SOURCE_"
	.ascii	"DIR}/../%s \", path.getrelative(prj.location, build"
	.ascii	"task[1]))\012        local outputs = string.format("
	.ascii	"\"${CMAKE_CURRENT_SOURCE_DIR}/../%s \", path.getrel"
	.ascii	"ative(prj.location, buildtask[2]))\012        local"
	.ascii	" msg = \"\"\012        for _, depdata in ipairs(bui"
	.ascii	"ldtask[3] or {}) do\012            deps = deps .. s"
	.ascii	"tring.format(\"${CMAKE_CURRENT_SOURCE_DIR}/../%s \""
	.ascii	", path.getrelative(prj.location, depdata))\012     "
	.ascii	"   end\012        _p('add_custom_command(')\012    "
	.ascii	"    _p(1, 'OUTPUT %s', outputs)\012        _p(1, 'D"
	.ascii	"EPENDS %s', deps)\012        for _, cmdline in ipai"
	.ascii	"rs(buildtask[4] or {}) do\012            if (cmdlin"
	.ascii	"e:sub(1, 1) ~= \"@\") then\012                local"
	.ascii	" cmd = cmdline\012                local num = 1\012"
	.ascii	"                for _, depdata in ipairs(buildtask["
	.ascii	"3] or {}) do\012                    cmd = string.gs"
	.ascii	"ub(cmd, \"%$%(\" .. num .. \"%)\", string.format(\""
	.ascii	"${CMAKE_CURRENT_SOURCE_DIR}/../%s \", path.getrelat"
	.ascii	"ive(prj.location, depdata)))\012                   "
	.ascii	" num = num + 1\012                end\012          "
	.ascii	"      cmd = string.gsub(cmd, \"%$%(<%)\", string.fo"
	.ascii	"rmat(\"${CMAKE_CURRENT_SOURCE_DIR}/../%s \", path.g"
	.ascii	"etrelative(prj.location, buildtask[1])))\012       "
	.ascii	"         cmd = string.gsub(cmd, \"%$%(@%)\", output"
	.ascii	"s)\012                _p(1, 'COMMAND %s', cmd)\012 "
	.ascii	"           else\012                msg = cmdline\012"
	.ascii	"            end\012        end\012        _p(1, 'CO"
	.ascii	"MMENT \\\"%s\\\"', msg)\012        _p(')')\012     "
	.ascii	"   _p('')\012    end\012end\012function cmake.depRu"
	.ascii	"les(prj)\012    local maintable = {}\012    for _, "
	.ascii	"dependency in ipairs(prj.dependency) do\012        "
	.ascii	"for _, dep in ipairs(dependency) do\012            "
	.ascii	"if path.issourcefile(dep[1]) then\012              "
	.ascii	"  local dep1 = premake.esc(path.getrelative(prj.loc"
	.ascii	"ation, dep[1]))\012                local dep2 = pre"
	.ascii	"make.esc(path.getrelative(prj.location, dep[2]))\012"
	.ascii	"                if not maintable[dep1] then maintab"
	.ascii	"le[dep1] = {} end\012                table.insert(m"
	.ascii	"aintable[dep1], dep2)\012            end\012       "
	.ascii	" end\012    end\012    for key, _ in pairs(maintabl"
	.ascii	"e) do\012  "
	.ascii	"      local deplist = {}\012        local depsname "
	.ascii	"= string.format('%s_deps', path.getname(key))\012  "
	.ascii	"      for _, d2 in pairs(maintable[key]) do\012    "
	.ascii	"        table.insert(deplist, d2)\012        end\012"
	.ascii	"        _p('set(')\012        _p(1, depsname)\012  "
	.ascii	"      for _, v in pairs(deplist) do\012            "
	.ascii	"_p(1, '${CMAKE_CURRENT_SOURCE_DIR}/../%s', v)\012  "
	.ascii	"      end\012        _p(')')\012        _p('')\012 "
	.ascii	"       _p('set_source_files_properties(')\012      "
	.ascii	"  _p(1, '\\\"${CMAKE_CURRENT_SOURCE_DIR}/../%s\\\"'"
	.ascii	", key)\012        _p(1, 'PROPERTIES OBJECT_DEPENDS "
	.ascii	"\\\"${%s}\\\"', depsname)\012        _p(')')\012   "
	.ascii	"     _p('')\012    end\012end\012function cmake.com"
	.ascii	"monRules(conf, str)\012    local Dupes = {}\012    "
	.ascii	"local t2 = {}\012    for _, cfg in ipairs(conf) do\012"
	.ascii	"        local cfgd = iif(str == includestr, cfg.inc"
	.ascii	"ludedirs, cfg.defines)\012        for _, v in ipair"
	.ascii	"s(cfgd) do\012            if(t2[v] == #conf - 1) th"
	.ascii	"en\012                _p(str, v)\012               "
	.ascii	" table.insert(Dupes, v)\012            end\012     "
	.ascii	"       if not t2[v] then\012                t2[v] ="
	.ascii	" 1\012            else\012                t2[v] = t"
	.ascii	"2[v] + 1\012            end\012        end\012    e"
	.ascii	"nd\012    return Dupes\012end\012function cmake.cfg"
	.ascii	"Rules(cfg, dupes, str)\012    for _, v in ipairs(cf"
	.ascii	"g) do\012        if (not table.icontains(dupes, v))"
	.ascii	" then\012            _p(1, str, v)\012        end\012"
	.ascii	"    end\012end\012function cmake.removeCrosscompile"
	.ascii	"r(platforms)\012    for i = #platforms, 1, -1 do\012"
	.ascii	"        if premake.platforms[platforms[i]].iscrossc"
	.ascii	"ompiler then\012            table.remove(platforms,"
	.ascii	" i)\012        end\012    end\012end\012function cm"
	.ascii	"ake.project(prj)\012    io.indent = \"  \"\012    c"
	.ascii	"make.header(prj)\012    _p('set(')\012    _p('sourc"
	.ascii	"e_list')\012    local source_files = cmake.files(pr"
	.ascii	"j)\012    _p(')')\012    _p('')\012    local native"
	.ascii	"platform = iif(os.is64bit(), \"x64\", \"x32\")\012 "
	.ascii	"   local cc = premake.gettool(prj)\012    local pla"
	.ascii	"tforms = premake.filterplatforms(prj.solution, cc.p"
	.ascii	"latforms, \"Native\")\012    cmake.removeCrosscompi"
	.ascii	"ler(platforms)\012    local configurations = {}\012"
	.ascii	"    for _, platform in ipairs(platforms) do\012    "
	.ascii	"    for cfg in premake.eachconfig(prj, platform) do"
	.ascii	"\012            -"
	.ascii	"- TODO: Extend support for 32-bit targets on 64-bit"
	.ascii	" hosts\012            if cfg.platform == nativeplat"
	.ascii	"form then\012                table.insert(configura"
	.ascii	"tions, cfg)\012            end\012        end\012  "
	.ascii	"  end\012    local commonIncludes = cmake.commonRul"
	.ascii	"es(configurations, includestr)\012    local commonD"
	.ascii	"efines = cmake.commonRules(configurations, definest"
	.ascii	"r)\012    _p('')\012    for _, cfg in ipairs(config"
	.ascii	"urations) do\012        _p('if(CMAKE_BUILD_TYPE MAT"
	.ascii	"CHES \\\"%s\\\")', cfg.name)\012        -- list exc"
	.ascii	"luded files\012        cmake.excludedFiles(prj, cfg"
	.ascii	", source_files)\012        -- add includes director"
	.ascii	"ies\012        cmake.cfgRules(cfg.includedirs, comm"
	.ascii	"onIncludes, includestr)\012        -- add build def"
	.ascii	"ines\012        cmake.cfgRules(cfg.defines, commonD"
	.ascii	"efines, definestr)\012        -- set CXX flags\012 "
	.ascii	"       _p(1, 'set(CMAKE_CXX_FLAGS \\\"${CMAKE_CXX_F"
	.ascii	"LAGS} %s\\\")', cmake.list(table.join(cc.getcppflag"
	.ascii	"s(cfg), cc.getcflags(cfg), cc.getcxxflags(cfg), cfg"
	.ascii	".buildoptions, cfg.buildoptions_cpp)))\012        -"
	.ascii	"- set C flags\012        _p(1, 'set(CMAKE_C_FLAGS \\"
	.ascii	"\"${CMAKE_C_FLAGS} %s\\\")', cmake.list(table.join("
	.ascii	"cc.getcppflags(cfg), cc.getcflags(cfg), cfg.buildop"
	.ascii	"tions, cfg.buildoptions_c)))\012        _p('endif()"
	.ascii	"')\012        _p('')\012    end\012    -- force CPP"
	.ascii	" if needed\012    if (prj.options.ForceCPP) then\012"
	.ascii	"        _p('set_source_files_properties(${source_li"
	.ascii	"st} PROPERTIES LANGUAGE CXX)')\012    end\012    --"
	.ascii	" add custom tasks\012    cmake.customtasks(prj)\012"
	.ascii	"    -- per-dependency build rules\012    cmake.depR"
	.ascii	"ules(prj)\012    for _, cfg in ipairs(configuration"
	.ascii	"s) do\012        _p('if(CMAKE_BUILD_TYPE MATCHES \\"
	.ascii	"\"%s\\\")', cfg.name)\012        if (prj.kind == 'S"
	.ascii	"taticLib') then\012            _p(1, 'add_library(%"
	.ascii	"s STATIC ${source_list})', premake.esc(cfg.buildtar"
	.ascii	"get.basename))\012        end\012        if (prj.ki"
	.ascii	"nd == 'SharedLib') then\012            _p(1, 'add_l"
	.ascii	"ibrary(%s SHARED ${source_list})', premake.esc(cfg."
	.ascii	"buildtarget.basename))\012        end\012        if"
	.ascii	" (prj.kind == 'ConsoleApp' or prj.kind == 'Windowed"
	.ascii	"App') then\012            _p(1, 'add_executable(%s "
	.ascii	"${source_list})', premake.esc(cfg.buildtarget."
	.ascii	"basename))\012            _p(1, 'target_link_librar"
	.ascii	"ies(%s%s%s)', premake.esc(cfg.buildtarget.basename)"
	.ascii	", cmake.list(premake.esc(premake.getlinks(cfg, \"si"
	.ascii	"blings\", \"basename\"))), cmake.list(cc.getlinkfla"
	.ascii	"gs(cfg)))\012        end\012        _p('endif()')\012"
	.ascii	"        _p('')\012    end\012end\000"
	.align	2
.LC33:
	.ascii	"_MAKE = { }\012premake.make = { }\012local make = p"
	.ascii	"remake.make\012function _MAKE.esc(value)\012local r"
	.ascii	"esult\012if (type(value) == \"table\") then\012resu"
	.ascii	"lt = { }\012for _,v in ipairs(value) do\012table.in"
	.ascii	"sert(result, _MAKE.esc(v))\012end\012return result\012"
	.ascii	"else\012result = value:gsub(\"\\\\\", \"\\\\\\\\\")"
	.ascii	"\012result = result:gsub(\" \", \"\\\\ \")\012resul"
	.ascii	"t = result:gsub(\"%%(\", \"\\\\%(\")\012result = re"
	.ascii	"sult:gsub(\"%%)\", \"\\\\%)\")\012result = result:g"
	.ascii	"sub(\"$\\\\%((.-)\\\\%)\", \"$%(%1%)\")\012return r"
	.ascii	"esult\012end\012end\012function _MAKE.escquote(valu"
	.ascii	"e)\012local result\012if (type(value) == \"table\")"
	.ascii	" then\012result = { }\012for _,v in ipairs(value) d"
	.ascii	"o\012table.insert(result, _MAKE.escquote(v))\012end"
	.ascii	"\012return result\012else\012result = value:gsub(\""
	.ascii	" \", \"\\\\ \")\012result = result:gsub(\"\\\"\", \""
	.ascii	"\\\\\\\"\")\012return result\012end\012end\012funct"
	.ascii	"ion premake.make_copyrule(source, target)\012_p('%s"
	.ascii	": %s', target, source)\012_p('\\t@echo Copying $(no"
	.ascii	"tdir %s)', target)\012_p('\\t-$(call COPY,%s,%s)', "
	.ascii	"source, target)\012end\012function premake.make_mkd"
	.ascii	"irrule(var)\012_p('\\t@echo Creating %s', var)\012_"
	.ascii	"p('\\t-$(call MKDIR,%s)', var)\012_p('')\012end\012"
	.ascii	"function make.list(value)\012if #value > 0 then\012"
	.ascii	"return \" \" .. table.concat(value, \" \")\012else\012"
	.ascii	"return \"\"\012end\012end\012function _MAKE.getmake"
	.ascii	"filename(this, searchprjs)\012local count = 0\012fo"
	.ascii	"r sln in premake.solution.each() do\012if (sln.loca"
	.ascii	"tion == this.location) then count = count + 1 end\012"
	.ascii	"if (searchprjs) then\012for _,prj in ipairs(sln.pro"
	.ascii	"jects) do\012if (prj.location == this.location) the"
	.ascii	"n count = count + 1 end\012end\012end\012end\012if "
	.ascii	"(count == 1) then\012return \"Makefile\"\012else\012"
	.ascii	"return this.name .. \".make\"\012end\012end\012func"
	.ascii	"tion _MAKE.getnames(tbl)\012local result = table.ex"
	.ascii	"tract(tbl, \"name\")\012for k,v in pairs(result) do"
	.ascii	"\012result[k] = _MAKE.esc(v)\012end\012return resul"
	.ascii	"t\012end\012function make.settings(cfg, cc)\012if #"
	.ascii	"cfg.makesettings > 0 then\012for _, value in ipairs"
	.ascii	"(cfg.makesettings) do\012_p(value)\012end\012end\012"
	.ascii	"local toolsettings = cc.platforms[cfg.platform].cfg"
	.ascii	"settings\012if toolsettings then\012_p(toolsettings"
	.ascii	")\012end\012end\012newaction {\012trigger         ="
	.ascii	" \"gmake\",\012shortname       = \"GNU Make\",\012d"
	.ascii	"escription     = \"Generate GNU makefiles for POSIX"
	.ascii	", MinGW, and Cygwin\",\012valid_kinds  "
	.ascii	"   = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib"
	.ascii	"\", \"SharedLib\", \"Bundle\" },\012valid_languages"
	.ascii	" = { \"C\", \"C++\", \"C#\", \"Vala\", \"Swift\" },"
	.ascii	"\012valid_tools     = {\012cc     = { \"gcc\", \"gh"
	.ascii	"s\" },\012dotnet = { \"mono\", \"msnet\", \"pnet\" "
	.ascii	"},\012valac  = { \"valac\" },\012swift  = { \"swift"
	.ascii	"\" },\012},\012onsolution = function(sln)\012premak"
	.ascii	"e.generate(sln, _MAKE.getmakefilename(sln, false), "
	.ascii	"premake.make_solution)\012end,\012onproject = funct"
	.ascii	"ion(prj)\012local makefile = _MAKE.getmakefilename("
	.ascii	"prj, true)\012if premake.isdotnetproject(prj) then\012"
	.ascii	"premake.generate(prj, makefile, premake.make_csharp"
	.ascii	")\012elseif premake.iscppproject(prj) then\012prema"
	.ascii	"ke.generate(prj, makefile, premake.make_cpp)\012els"
	.ascii	"eif premake.isswiftproject(prj) then\012premake.gen"
	.ascii	"erate(prj, makefile, premake.make_swift)\012else\012"
	.ascii	"premake.generate(prj, makefile, premake.make_vala)\012"
	.ascii	"end\012end,\012oncleansolution = function(sln)\012p"
	.ascii	"remake.clean.file(sln, _MAKE.getmakefilename(sln, f"
	.ascii	"alse))\012end,\012oncleanproject = function(prj)\012"
	.ascii	"premake.clean.file(prj, _MAKE.getmakefilename(prj, "
	.ascii	"true))\012end,\012gmake = {}\012}\012\000"
	.align	2
.LC34:
	.ascii	"function premake.make_solution(sln)\012local cc = p"
	.ascii	"remake[_OPTIONS.cc]\012local platforms = premake.fi"
	.ascii	"lterplatforms(sln, cc.platforms, \"Native\")\012_p("
	.ascii	"'# %s solution makefile autogenerated by GENie', pr"
	.ascii	"emake.action.current().shortname)\012_p('# Type \"m"
	.ascii	"ake help\" for usage help')\012_p('')\012_p('ifndef"
	.ascii	" config')\012_p('  config=%s', _MAKE.esc(premake.ge"
	.ascii	"tconfigname(sln.configurations[1], platforms[1], tr"
	.ascii	"ue)))\012_p('endif')\012_p('export config')\012_p('"
	.ascii	"')\012local projects = table.extract(sln.projects, "
	.ascii	"\"name\")\012table.sort(projects)\012_p('PROJECTS :"
	.ascii	"= %s', table.concat(_MAKE.esc(projects), \" \"))\012"
	.ascii	"_p('')\012_p('.PHONY: all clean help $(PROJECTS)')\012"
	.ascii	"_p('')\012_p('all: $(PROJECTS)')\012_p('')\012for _"
	.ascii	", prj in ipairs(sln.projects) do\012_p('%s: %s', _M"
	.ascii	"AKE.esc(prj.name), table.concat(_MAKE.esc(table.ext"
	.ascii	"ract(premake.getdependencies(prj), \"name\")), \" \""
	.ascii	"))\012if (not sln.messageskip) or (not table.contai"
	.ascii	"ns(sln.messageskip, \"SkipBuildingMessage\")) then\012"
	.ascii	"_p('\\t@echo \"==== Building %s ($(config)) ====\"'"
	.ascii	", prj.name)\012end\012_p('\\t@${MAKE} --no-print-di"
	.ascii	"rectory -C %s -f %s', _MAKE.esc(path.getrelative(sl"
	.ascii	"n.location, prj.location)), _MAKE.esc(_MAKE.getmake"
	.ascii	"filename(prj, true)))\012_p('')\012end\012_p('clean"
	.ascii	":')\012for _ ,prj in ipairs(sln.projects) do\012_p("
	.ascii	"'\\t@${MAKE} --no-print-directory -C %s -f %s clean"
	.ascii	"', _MAKE.esc(path.getrelative(sln.location, prj.loc"
	.ascii	"ation)), _MAKE.esc(_MAKE.getmakefilename(prj, true)"
	.ascii	"))\012end\012_p('')\012_p('help:')\012_p(1,'@echo \""
	.ascii	"Usage: make [config=name] [target]\"')\012_p(1,'@ec"
	.ascii	"ho \"\"')\012_p(1,'@echo \"CONFIGURATIONS:\"')\012l"
	.ascii	"ocal cfgpairs = { }\012for _, platform in ipairs(pl"
	.ascii	"atforms) do\012for _, cfgname in ipairs(sln.configu"
	.ascii	"rations) do\012_p(1,'@echo \"   %s\"', premake.getc"
	.ascii	"onfigname(cfgname, platform, true))\012end\012end\012"
	.ascii	"_p(1,'@echo \"\"')\012_p(1,'@echo \"TARGETS:\"')\012"
	.ascii	"_p(1,'@echo \"   all (default)\"')\012_p(1,'@echo \""
	.ascii	"   clean\"')\012for _, prj in ipairs(sln.projects) "
	.ascii	"do\012_p(1,'@echo \"   %s\"', prj.name)\012end\012_"
	.ascii	"p(1,'@echo \"\"')\012_p(1,'@echo \"For more informa"
	.ascii	"tion, see https://github.com/bkaradzic/genie\"')\012"
	.ascii	"end\012\000"
	.align	2
.LC35:
	.ascii	"-- --\012premake.make.cpp = { }\012premake.make.ove"
	.ascii	"rride = { }\012premake.make.makefile_ignore = false"
	.ascii	"\012local cpp = premake.make.cpp\012local make = pr"
	.ascii	"emake.make\012function premake.make_cpp(prj)\012loc"
	.ascii	"al cc = premake.gettool(prj)\012local platforms = p"
	.ascii	"remake.filterplatforms(prj.solution, cc.platforms, "
	.ascii	"\"Native\")\012local action = premake.action.curren"
	.ascii	"t()\012premake.gmake_cpp_header(prj, cc, platforms)"
	.ascii	"\012premake.gmake_cpp_configs(prj, cc, platforms)\012"
	.ascii	"table.sort(prj.allfiles)\012local objdirs = {}\012l"
	.ascii	"ocal additionalobjdirs = {}\012for _, file in ipair"
	.ascii	"s(prj.allfiles) do\012if path.issourcefile(file) th"
	.ascii	"en\012objdirs[_MAKE.esc(path.getdirectory(path.trim"
	.ascii	"dots(file)))] = 1\012end\012end\012for _, custombui"
	.ascii	"ldtask in ipairs(prj.custombuildtask or {}) do\012f"
	.ascii	"or _, buildtask in ipairs(custombuildtask or {}) do"
	.ascii	"\012additionalobjdirs[_MAKE.esc(path.getdirectory(p"
	.ascii	"ath.getrelative(prj.location,buildtask[2])))] = 1\012"
	.ascii	"end\012end\012_p('OBJDIRS := \\\\')\012_p('\\t$(OBJ"
	.ascii	"DIR) \\\\')\012for dir, _ in iter.sortByKeys(objdir"
	.ascii	"s) do\012_p('\\t$(OBJDIR)/%s \\\\', dir)\012end\012"
	.ascii	"for dir, _ in iter.sortByKeys(additionalobjdirs) do"
	.ascii	"\012_p('\\t%s \\\\', dir)\012end\012_p('')\012_p('R"
	.ascii	"ESOURCES := \\\\')\012for _, file in ipairs(prj.all"
	.ascii	"files) do\012if path.isresourcefile(file) then\012_"
	.ascii	"p('\\t$(OBJDIR)/%s.res \\\\', _MAKE.esc(path.getbas"
	.ascii	"ename(file)))\012end\012end\012_p('')\012_p('.PHONY"
	.ascii	": clean prebuild prelink')\012_p('')\012if os.is(\""
	.ascii	"MacOSX\") and prj.kind == \"WindowedApp\" and not p"
	.ascii	"rj.options.SkipBundling then\012_p('all: $(OBJDIRS)"
	.ascii	" $(TARGETDIR) prebuild prelink $(TARGET) $(dir $(TA"
	.ascii	"RGETDIR))PkgInfo $(dir $(TARGETDIR))Info.plist')\012"
	.ascii	"else\012_p('all: $(OBJDIRS) $(TARGETDIR) prebuild p"
	.ascii	"relink $(TARGET)')\012end\012_p('\\t@:')\012_p('')\012"
	.ascii	"if (prj.kind == \"StaticLib\" and prj.options.Archi"
	.ascii	"veSplit) then\012_p('define max_args')\012_p('\\t$("
	.ascii	"eval _args:=)')\012_p('\\t$(foreach obj,$3,$(eval _"
	.ascii	"args+=$(obj))$(if $(word $2,$(_args)),$1 $(_args)$("
	.ascii	"EOL)$(eval _args:=)))')\012_p('\\t$(if $(_args),$1 "
	.ascii	"$(_args))')\012_p('endef')\012_p('')\012_p('define "
	.ascii	"EOL')\012_p('')\012_p('')\012_p('endef')\012_p('')\012"
	.ascii	"end\012_p('$(TARGET): $(GCH) $(OBJECTS) $(LIBDEPS) "
	.ascii	"$(EXTERNAL_LIBS) $(RESOURCES) $(OBJRESP) $(LDRESP) "
	.ascii	"| $(TARGETDIR"
	.ascii	") $(OBJDIRS)')\012if prj.kind == \"StaticLib\" then"
	.ascii	"\012if prj.msgarchiving then\012_p('\\t@echo ' .. p"
	.ascii	"rj.msgarchiving)\012else\012_p('\\t@echo Archiving "
	.ascii	"%s', prj.name)\012end\012if (not prj.archivesplit_s"
	.ascii	"ize) then\012prj.archivesplit_size=200\012end\012if"
	.ascii	" (not prj.options.ArchiveSplit) then\012_p('ifeq (p"
	.ascii	"osix,$(SHELLTYPE))')\012_p('\\t$(SILENT) rm -f  $(T"
	.ascii	"ARGET)')\012_p('else')\012_p('\\t$(SILENT) if exist"
	.ascii	" $(subst /,\\\\\\\\,$(TARGET)) del $(subst /,\\\\\\"
	.ascii	"\\,$(TARGET))')\012_p('endif')\012_p('\\t$(SILENT) "
	.ascii	"$(LINKCMD) $(LINKOBJS)' .. (os.is(\"MacOSX\") and \""
	.ascii	" 2>&1 > /dev/null | sed -e '/.o) has no symbols$$/d"
	.ascii	"'\" or \"\"))\012else\012_p('\\t$(call RM,$(TARGET)"
	.ascii	")')\012_p('\\t@$(call max_args,$(LINKCMD),'.. prj.a"
	.ascii	"rchivesplit_size ..',$(LINKOBJS))' .. (os.is(\"MacO"
	.ascii	"SX\") and \" 2>&1 > /dev/null | sed -e '/.o) has no"
	.ascii	" symbols$$/d'\" or \"\"))\012_p('\\t$(SILENT) $(LIN"
	.ascii	"KCMD_NDX)')\012end\012else\012if prj.msglinking the"
	.ascii	"n\012_p('\\t@echo ' .. prj.msglinking)\012else\012_"
	.ascii	"p('\\t@echo Linking %s', prj.name)\012end\012_p('\\"
	.ascii	"t$(SILENT) $(LINKCMD)')\012end\012_p('\\t$(POSTBUIL"
	.ascii	"DCMDS)')\012_p('')\012_p('$(TARGETDIR):')\012premak"
	.ascii	"e.make_mkdirrule(\"$(TARGETDIR)\")\012_p('$(OBJDIRS"
	.ascii	"):')\012if (not prj.solution.messageskip) or (not t"
	.ascii	"able.contains(prj.solution.messageskip, \"SkipCreat"
	.ascii	"ingMessage\")) then\012_p('\\t@echo Creating $(@)')"
	.ascii	"\012end\012_p('\\t-$(call MKDIR,$@)')\012_p('')\012"
	.ascii	"if os.is(\"MacOSX\") and prj.kind == \"WindowedApp\""
	.ascii	" and not prj.options.SkipBundling then\012_p('$(dir"
	.ascii	" $(TARGETDIR))PkgInfo:')\012_p('$(dir $(TARGETDIR))"
	.ascii	"Info.plist:')\012_p('')\012end\012_p('clean:')\012i"
	.ascii	"f (not prj.solution.messageskip) or (not table.cont"
	.ascii	"ains(prj.solution.messageskip, \"SkipCleaningMessag"
	.ascii	"e\")) then\012_p('\\t@echo Cleaning %s', prj.name)\012"
	.ascii	"end\012_p('ifeq (posix,$(SHELLTYPE))')\012_p('\\t$("
	.ascii	"SILENT) rm -f  $(TARGET)')\012_p('\\t$(SILENT) rm -"
	.ascii	"rf $(OBJDIR)')\012_p('else')\012_p('\\t$(SILENT) if"
	.ascii	" exist $(subst /,\\\\\\\\,$(TARGET)) del $(subst /,"
	.ascii	"\\\\\\\\,$(TARGET))')\012_p('\\t$(SILENT) if exist "
	.ascii	"$(subst /,\\\\\\\\,$(OBJDIR)) rmdir /s /q $(subst /"
	.ascii	",\\\\\\\\,$(OBJDIR))')\012_p('endif')\012_p('')\012"
	.ascii	"_p('prebuild:')\012_p('\\t$(PREBUILDCMDS)')\012_p('"
	.ascii	"')\012_p('prelink:')\012_p('\\t$(PRELINKCMDS)')\012"
	.ascii	"_p('')\012cpp.pchrules(prj)\012cpp.fileRules(prj, c"
	.ascii	"c)\012cpp.depen"
	.ascii	"dencyRules(prj)\012for _, custombuildtask in ipairs"
	.ascii	"(prj.custombuildtask or {}) do\012for _, buildtask "
	.ascii	"in ipairs(custombuildtask or {}) do\012local deps ="
	.ascii	"  string.format(\"%s \",path.getrelative(prj.locati"
	.ascii	"on,buildtask[1]))\012for _, depdata in ipairs(build"
	.ascii	"task[3] or {}) do\012deps = deps .. string.format(\""
	.ascii	"%s \",path.getrelative(prj.location,depdata))\012en"
	.ascii	"d\012_p('%s: %s | $(TARGETDIR) $(OBJDIRS)'\012,path"
	.ascii	".getrelative(prj.location,buildtask[2])\012, deps\012"
	.ascii	")\012for _, cmdline in ipairs(buildtask[4] or {}) d"
	.ascii	"o\012local cmd = cmdline\012local num = 1\012for _,"
	.ascii	" depdata in ipairs(buildtask[3] or {}) do\012cmd = "
	.ascii	"string.gsub(cmd,\"%$%(\" .. num ..\"%)\", string.fo"
	.ascii	"rmat(\"%s \",path.getrelative(prj.location,depdata)"
	.ascii	"))\012num = num + 1\012end\012cmd = string.gsub(cmd"
	.ascii	", \"%$%(<%)\", \"$<\")\012cmd = string.gsub(cmd, \""
	.ascii	"%$%(@%)\", \"$@\")\012_p('\\t$(SILENT) %s',cmd)\012"
	.ascii	"end\012_p('')\012end\012end\012_p('-include $(OBJEC"
	.ascii	"TS:%%.o=%%.d)')\012_p('ifneq (,$(PCH))')\012_p('  -"
	.ascii	"include $(OBJDIR)/$(notdir $(PCH)).d')\012_p('  -in"
	.ascii	"clude $(OBJDIR)/$(notdir $(PCH))_objc.d')\012_p('en"
	.ascii	"dif')\012end\012function premake.gmake_cpp_header(p"
	.ascii	"rj, cc, platforms)\012_p('# %s project makefile aut"
	.ascii	"ogenerated by GENie', premake.action.current().shor"
	.ascii	"tname)\012_p('ifndef config')\012_p('  config=%s', "
	.ascii	"_MAKE.esc(premake.getconfigname(prj.solution.config"
	.ascii	"urations[1], platforms[1], true)))\012_p('endif')\012"
	.ascii	"_p('')\012_p('ifndef verbose')\012_p('  SILENT = @'"
	.ascii	")\012_p('endif')\012_p('')\012_p('SHELLTYPE := msdo"
	.ascii	"s')\012_p('ifeq (,$(ComSpec)$(COMSPEC))')\012_p('  "
	.ascii	"SHELLTYPE := posix')\012_p('endif')\012_p('ifeq (/b"
	.ascii	"in,$(findstring /bin,$(SHELL)))')\012_p('  SHELLTYP"
	.ascii	"E := posix')\012_p('endif')\012_p('ifeq (/bin,$(fin"
	.ascii	"dstring /bin,$(MAKESHELL)))')\012_p('  SHELLTYPE :="
	.ascii	" posix')\012_p('endif')\012_p('')\012_p('ifeq (posi"
	.ascii	"x,$(SHELLTYPE))')\012_p('  MKDIR = $(SILENT) mkdir "
	.ascii	"-p \"$(1)\"')\012_p('  COPY  = $(SILENT) cp -fR \"$"
	.ascii	"(1)\" \"$(2)\"')\012_p('  RM    = $(SILENT) rm -f \""
	.ascii	"$(1)\"')\012_p('else')\012_p('  MKDIR = $(SILENT) m"
	.ascii	"kdir \"$(subst /,\\\\\\\\,$(1))\" 2> nul || exit 0'"
	.ascii	")\012_p('  COPY  = $(SILENT) copy /Y \"$(subst /,\\"
	.ascii	"\\\\\\,$(1))\" \"$(subst /,\\\\\\\\,$(2))\"')\012_p"
	.ascii	"('  RM    = $(SILENT) del /F \"$(subst /,\\\\\\\\,$"
	.ascii	"(1))\" 2> nul || exit 0')\012_p("
	.ascii	"'endif')\012_p('')\012_p('CC  = %s', cc.cc)\012_p('"
	.ascii	"CXX = %s', cc.cxx)\012_p('AR  = %s', cc.ar)\012_p('"
	.ascii	"')\012_p('ifndef RESCOMP')\012_p('  ifdef WINDRES')"
	.ascii	"\012_p('    RESCOMP = $(WINDRES)')\012_p('  else')\012"
	.ascii	"_p('    RESCOMP = %s', cc.rc or 'windres')\012_p(' "
	.ascii	" endif')\012_p('endif')\012_p('')\012if (not premak"
	.ascii	"e.make.makefile_ignore) then\012_p('MAKEFILE = %s',"
	.ascii	" _MAKE.getmakefilename(prj, true))\012_p('')\012end"
	.ascii	"\012end\012local function is_excluded(prj, cfg, fil"
	.ascii	"e)\012if table.icontains(prj.excludes, file) then\012"
	.ascii	"return true\012end\012if table.icontains(cfg.exclud"
	.ascii	"es, file) then\012return true\012end\012return fals"
	.ascii	"e\012end\012function premake.gmake_cpp_configs(prj,"
	.ascii	" cc, platforms)\012for _, platform in ipairs(platfo"
	.ascii	"rms) do\012for cfg in premake.eachconfig(prj, platf"
	.ascii	"orm) do\012premake.gmake_cpp_config(prj, cfg, cc)\012"
	.ascii	"end\012end\012end\012function premake.gmake_cpp_con"
	.ascii	"fig(prj, cfg, cc)\012_p('ifeq ($(config),%s)', _MAK"
	.ascii	"E.esc(cfg.shortname))\012cpp.platformtools(cfg, cc)"
	.ascii	"\012local targetDir = _MAKE.esc(cfg.buildtarget.dir"
	.ascii	"ectory)\012_p('  ' .. (table.contains(premake.make."
	.ascii	"override,\"OBJDIR\") and \"override \" or \"\") .. "
	.ascii	"   'OBJDIR              = %s', _MAKE.esc(cfg.object"
	.ascii	"sdir))\012_p('  ' .. (table.contains(premake.make.o"
	.ascii	"verride,\"TARGETDIR\") and \"override \" or \"\") ."
	.ascii	". 'TARGETDIR           = %s', iif(targetDir == \"\""
	.ascii	", \".\", targetDir))\012_p('  ' .. (table.contains("
	.ascii	"premake.make.override,\"TARGET\") and \"override \""
	.ascii	" or \"\") ..    'TARGET              = $(TARGETDIR)"
	.ascii	"/%s', _MAKE.esc(cfg.buildtarget.name))\012_p('  DEF"
	.ascii	"INES            +=%s', make.list(_MAKE.escquote(cc."
	.ascii	"getdefines(cfg.defines))))\012local id  = make.list"
	.ascii	"(cc.getincludedirs(cfg.includedirs));\012local uid "
	.ascii	"= make.list(cc.getquoteincludedirs(cfg.userincluded"
	.ascii	"irs))\012local sid = make.list(cc.getsystemincluded"
	.ascii	"irs(cfg.systemincludedirs))\012if id ~= \"\" then\012"
	.ascii	"_p('  INCLUDES           +=%s', id)\012end\012if ui"
	.ascii	"d ~= \"\" then\012_p('  INCLUDES           +=%s', u"
	.ascii	"id)\012end\012if sid ~= \"\" then\012_p('  INCLUDES"
	.ascii	"           +=%s', sid)\012end\012cpp.pchconfig(cfg)"
	.ascii	"\012cpp.flags(cfg, cc)\012cpp.linker(prj, cfg, cc)\012"
	.ascii	"table.sort(cfg.files)\012if cfg.flags.UseObjectResp"
	.ascii	"onseFile then\012_p('  OBJRESP             = $(OBJD"
	.ascii	"IR)"
	.ascii	"/%s_objects', prj.name)\012else\012_p('  OBJRESP   "
	.ascii	"          =')\012end\012_p('  OBJECTS := \\\\')\012"
	.ascii	"for _, file in ipairs(cfg.files) do\012if path.isso"
	.ascii	"urcefile(file) then\012if not is_excluded(prj, cfg,"
	.ascii	" file) then\012_p('\\t$(OBJDIR)/%s.o \\\\'\012, _MA"
	.ascii	"KE.esc(path.trimdots(path.removeext(file)))\012)\012"
	.ascii	"end\012end\012end\012_p('')\012_p('  define PREBUIL"
	.ascii	"DCMDS')\012if #cfg.prebuildcommands > 0 then\012_p("
	.ascii	"'\\t@echo Running pre-build commands')\012_p('\\t%s"
	.ascii	"', table.implode(cfg.prebuildcommands, \"\", \"\", "
	.ascii	"\"\\n\\t\"))\012end\012_p('  endef')\012_p('  defin"
	.ascii	"e PRELINKCMDS')\012if #cfg.prelinkcommands > 0 then"
	.ascii	"\012_p('\\t@echo Running pre-link commands')\012_p("
	.ascii	"'\\t%s', table.implode(cfg.prelinkcommands, \"\", \""
	.ascii	"\", \"\\n\\t\"))\012end\012_p('  endef')\012_p('  d"
	.ascii	"efine POSTBUILDCMDS')\012if #cfg.postbuildcommands "
	.ascii	"> 0 then\012_p('\\t@echo Running post-build command"
	.ascii	"s')\012_p('\\t%s', table.implode(cfg.postbuildcomma"
	.ascii	"nds, \"\", \"\", \"\\n\\t\"))\012end\012_p('  endef"
	.ascii	"')\012make.settings(cfg, cc)\012_p('endif')\012_p('"
	.ascii	"')\012end\012function cpp.platformtools(cfg, cc)\012"
	.ascii	"local platform = cc.platforms[cfg.platform]\012if p"
	.ascii	"latform.cc then\012_p('  CC         = %s', platform"
	.ascii	".cc)\012end\012if platform.cxx then\012_p('  CXX   "
	.ascii	"     = %s', platform.cxx)\012end\012if platform.ar "
	.ascii	"then\012_p('  AR         = %s', platform.ar)\012end"
	.ascii	"\012end\012function cpp.flags(cfg, cc)\012if cfg.pc"
	.ascii	"hheader and not cfg.flags.NoPCH then\012_p('  FORCE"
	.ascii	"_INCLUDE      += -include $(OBJDIR)/$(notdir $(PCH)"
	.ascii	")')\012_p('  FORCE_INCLUDE_OBJC += -include $(OBJDI"
	.ascii	"R)/$(notdir $(PCH))_objc')\012end\012if #cfg.forced"
	.ascii	"includes > 0 then\012_p('  FORCE_INCLUDE      += -i"
	.ascii	"nclude %s'\012,_MAKE.esc(table.concat(cfg.forcedinc"
	.ascii	"ludes, \";\")))\012end\012_p('  ALL_CPPFLAGS       "
	.ascii	"+= $(CPPFLAGS) %s $(DEFINES) $(INCLUDES)', table.co"
	.ascii	"ncat(cc.getcppflags(cfg), \" \"))\012_p('  ALL_ASMF"
	.ascii	"LAGS       += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS)"
	.ascii	" $(ARCH)%s', make.list(table.join(cc.getcflags(cfg)"
	.ascii	", cfg.buildoptions, cfg.buildoptions_asm)))\012_p('"
	.ascii	"  ALL_CFLAGS         += $(CFLAGS) $(ALL_CPPFLAGS) $"
	.ascii	"(ARCH)%s', make.list(table.join(cc.getcflags(cfg), "
	.ascii	"cfg.buildoptions, cfg.buildoptions_c)))\012_p('  AL"
	.ascii	"L_CXXFLAGS       += $(CXXFLAGS) $(CFLAGS) $(ALL_CPP"
	.ascii	"FLAGS) $(ARCH)%s', make.li"
	.ascii	"st(table.join(cc.getcflags(cfg), cc.getcxxflags(cfg"
	.ascii	"), cfg.buildoptions, cfg.buildoptions_cpp)))\012_p("
	.ascii	"'  ALL_OBJCFLAGS      += $(CFLAGS) $(ALL_CPPFLAGS) "
	.ascii	"$(ARCH)%s', make.list(table.join(cc.getcflags(cfg),"
	.ascii	" cc.getobjcflags(cfg), cfg.buildoptions, cfg.buildo"
	.ascii	"ptions_objc)))\012_p('  ALL_OBJCPPFLAGS    += $(CXX"
	.ascii	"FLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.l"
	.ascii	"ist(table.join(cc.getcflags(cfg), cc.getcxxflags(cf"
	.ascii	"g), cc.getobjcflags(cfg), cfg.buildoptions, cfg.bui"
	.ascii	"ldoptions_objcpp)))\012_p('  ALL_RESFLAGS       += "
	.ascii	"$(RESFLAGS) $(DEFINES) $(INCLUDES)%s',\012        m"
	.ascii	"ake.list(table.join(cc.getdefines(cfg.resdefines),\012"
	.ascii	"                                cc.getincludedirs(c"
	.ascii	"fg.resincludedirs), cfg.resoptions)))\012end\012fun"
	.ascii	"ction cpp.linker(prj, cfg, cc)\012local libdeps\012"
	.ascii	"local lddeps\012if #cfg.wholearchive > 0 then\012li"
	.ascii	"bdeps = {}\012lddeps  = {}\012for _, linkcfg in ipa"
	.ascii	"irs(premake.getlinks(cfg, \"siblings\", \"object\")"
	.ascii	") do\012local linkpath = path.rebase(linkcfg.linkta"
	.ascii	"rget.fullpath, linkcfg.location, cfg.location)\012i"
	.ascii	"f table.icontains(cfg.wholearchive, linkcfg.project"
	.ascii	".name) then\012lddeps = table.join(lddeps, cc.whole"
	.ascii	"archive(linkpath))\012else\012table.insert(lddeps, "
	.ascii	"linkpath)\012end\012table.insert(libdeps, linkpath)"
	.ascii	"\012end\012libdeps = make.list(_MAKE.esc(libdeps))\012"
	.ascii	"lddeps  = make.list(_MAKE.esc(lddeps))\012else\012l"
	.ascii	"ibdeps = make.list(_MAKE.esc(premake.getlinks(cfg, "
	.ascii	"\"siblings\", \"fullpath\")))\012lddeps  = libdeps\012"
	.ascii	"end\012_p('  ALL_LDFLAGS        += $(LDFLAGS)%s', m"
	.ascii	"ake.list(table.join(cc.getlibdirflags(cfg), cc.getl"
	.ascii	"dflags(cfg), cfg.linkoptions)))\012_p('  LIBDEPS   "
	.ascii	"         +=%s', libdeps)\012_p('  LDDEPS           "
	.ascii	"  +=%s', lddeps)\012if cfg.flags.UseLDResponseFile "
	.ascii	"then\012_p('  LDRESP              = $(OBJDIR)/%s_li"
	.ascii	"bs', prj.name)\012_p('  LIBS               += @$(LD"
	.ascii	"RESP)%s', make.list(cc.getlinkflags(cfg)))\012else\012"
	.ascii	"_p('  LDRESP              =')\012_p('  LIBS        "
	.ascii	"       += $(LDDEPS)%s', make.list(cc.getlinkflags(c"
	.ascii	"fg)))\012end\012_p('  EXTERNAL_LIBS      +=%s', mak"
	.ascii	"e.list(cc.getlibfiles(cfg)))\012_p('  LINKOBJS     "
	.ascii	"       = %s', (cfg.flags.UseObjectResponseFile and "
	.ascii	"\"@$(OBJRESP)\" or \"$(OB"
	.ascii	"JECTS)\"))\012if cfg.kind == \"StaticLib\" then\012"
	.ascii	"if (not prj.options.ArchiveSplit) then\012_p('  LIN"
	.ascii	"KCMD             = $(AR) %s $(TARGET)', make.list(c"
	.ascii	"c.getarchiveflags(prj, cfg, false)))\012else\012_p("
	.ascii	"'  LINKCMD             = $(AR) %s $(TARGET)', make."
	.ascii	"list(cc.getarchiveflags(prj, cfg, false)))\012_p(' "
	.ascii	" LINKCMD_NDX         = $(AR) %s $(TARGET)', make.li"
	.ascii	"st(cc.getarchiveflags(prj, cfg, true)))\012end\012e"
	.ascii	"lse\012local tool = iif(cfg.language == \"C\", \"CC"
	.ascii	"\", \"CXX\")\012local startgroup = ''\012local endg"
	.ascii	"roup = ''\012if (cfg.flags.LinkSupportCircularDepen"
	.ascii	"dencies) then\012startgroup = '-Wl,--start-group '\012"
	.ascii	"endgroup   = ' -Wl,--end-group'\012end\012_p('  LIN"
	.ascii	"KCMD             = $(%s) -o $(TARGET) $(LINKOBJS) $"
	.ascii	"(RESOURCES) $(ARCH) $(ALL_LDFLAGS) %s$(LIBS)%s', to"
	.ascii	"ol, startgroup, endgroup)\012end\012end\012function"
	.ascii	" cpp.pchconfig(cfg)\012if not cfg.pchheader or cfg."
	.ascii	"flags.NoPCH then\012return\012end\012local pch = cf"
	.ascii	"g.pchheader\012for _, incdir in ipairs(cfg.included"
	.ascii	"irs) do\012local abspath = path.getabsolute(path.jo"
	.ascii	"in(cfg.project.location, incdir))\012local testname"
	.ascii	" = path.join(abspath, pch)\012if os.isfile(testname"
	.ascii	") then\012pch = path.getrelative(cfg.location, test"
	.ascii	"name)\012break\012end\012end\012_p('  PCH          "
	.ascii	"       = %s', _MAKE.esc(pch))\012_p('  GCH         "
	.ascii	"        = $(OBJDIR)/$(notdir $(PCH)).gch')\012_p(' "
	.ascii	" GCH_OBJC            = $(OBJDIR)/$(notdir $(PCH))_o"
	.ascii	"bjc.gch')\012end\012function cpp.pchrules(prj)\012_"
	.ascii	"p('ifneq (,$(PCH))')\012_p('$(GCH): $(PCH) $(MAKEFI"
	.ascii	"LE) | $(OBJDIR)')\012if prj.msgprecompile then\012_"
	.ascii	"p('\\t@echo ' .. prj.msgprecompile)\012else\012_p('"
	.ascii	"\\t@echo $(notdir $<)')\012end\012local cmd = iif(p"
	.ascii	"rj.language == \"C\", \"$(CC) $(ALL_CFLAGS) -x c-he"
	.ascii	"ader\", \"$(CXX) $(ALL_CXXFLAGS) -x c++-header\")\012"
	.ascii	"_p('\\t$(SILENT) %s $(DEFINES) $(INCLUDES) -o \"$@\""
	.ascii	" -c \"$<\"', cmd)\012_p('')\012_p('$(GCH_OBJC): $(P"
	.ascii	"CH) $(MAKEFILE) | $(OBJDIR)')\012if prj.msgprecompi"
	.ascii	"le then\012_p('\\t@echo ' .. prj.msgprecompile)\012"
	.ascii	"else\012_p('\\t@echo $(notdir $<)')\012end\012local"
	.ascii	" cmd = iif(prj.language == \"C\", \"$(CC) $(ALL_OBJ"
	.ascii	"CFLAGS) -x objective-c-header\", \"$(CXX) $(ALL_OBJ"
	.ascii	"CPPFLAGS) -x objective-c++-header\")\012_p('\\t$(SI"
	.ascii	"LENT) %s $(DEFINES) $(INCLUDES) -o \"$@\" -c \"$"
	.ascii	"<\"', cmd)\012_p('endif')\012_p('')\012end\012funct"
	.ascii	"ion cpp.fileRules(prj, cc)\012local platforms = pre"
	.ascii	"make.filterplatforms(prj.solution, cc.platforms, \""
	.ascii	"Native\")\012_p('ifneq (,$(OBJRESP))')\012_p('$(OBJ"
	.ascii	"RESP): $(OBJECTS) | $(TARGETDIR) $(OBJDIRS)')\012_p"
	.ascii	"('\\t$(SILENT) echo $^')\012_p('\\t$(SILENT) echo $"
	.ascii	"^ > $@')\012_p('endif')\012_p('')\012_p('ifneq (,$("
	.ascii	"LDRESP))')\012_p('$(LDRESP): $(LDDEPS) | $(TARGETDI"
	.ascii	"R) $(OBJDIRS)')\012_p('\\t$(SILENT) echo $^')\012_p"
	.ascii	"('\\t$(SILENT) echo $^ > $@')\012_p('endif')\012_p("
	.ascii	"'')\012table.sort(prj.allfiles)\012for _, file in i"
	.ascii	"pairs(prj.allfiles or {}) do\012if path.issourcefil"
	.ascii	"e(file) then\012if (path.isobjcfile(file)) then\012"
	.ascii	"_p('$(OBJDIR)/%s.o: %s $(GCH_OBJC) $(MAKEFILE) | $("
	.ascii	"OBJDIR)/%s'\012, _MAKE.esc(path.trimdots(path.remov"
	.ascii	"eext(file)))\012, _MAKE.esc(file)\012, _MAKE.esc(pa"
	.ascii	"th.getdirectory(path.trimdots(file)))\012)\012else\012"
	.ascii	"_p('$(OBJDIR)/%s.o: %s $(GCH) $(MAKEFILE) | $(OBJDI"
	.ascii	"R)/%s'\012, _MAKE.esc(path.trimdots(path.removeext("
	.ascii	"file)))\012, _MAKE.esc(file)\012, _MAKE.esc(path.ge"
	.ascii	"tdirectory(path.trimdots(file)))\012)\012end\012if "
	.ascii	"(path.isobjcfile(file) and prj.msgcompile_objc) the"
	.ascii	"n\012_p('\\t@echo ' .. prj.msgcompile_objc)\012else"
	.ascii	"if prj.msgcompile then\012_p('\\t@echo ' .. prj.msg"
	.ascii	"compile)\012else\012_p('\\t@echo $(notdir $<)')\012"
	.ascii	"end\012if (path.isobjcfile(file)) then\012if (path."
	.ascii	"iscfile(file)) then\012_p('\\t$(SILENT) $(CXX) $(AL"
	.ascii	"L_OBJCFLAGS) $(FORCE_INCLUDE_OBJC) -o \"$@\" -c \"$"
	.ascii	"<\"')\012else\012_p('\\t$(SILENT) $(CXX) $(ALL_OBJC"
	.ascii	"PPFLAGS) $(FORCE_INCLUDE_OBJC) -o \"$@\" -c \"$<\"'"
	.ascii	")\012end\012elseif (path.isasmfile(file)) then\012_"
	.ascii	"p('\\t$(SILENT) $(CC) $(ALL_ASMFLAGS) -o \"$@\" -c "
	.ascii	"\"$<\"')\012else\012cpp.buildcommand(path.iscfile(f"
	.ascii	"ile) and not prj.options.ForceCPP, \"o\")\012end\012"
	.ascii	"for _, task in ipairs(prj.postcompiletasks or {}) d"
	.ascii	"o\012_p('\\t$(SILENT) %s', task)\012_p('')\012end\012"
	.ascii	"_p('')\012elseif (path.getextension(file) == \".rc\""
	.ascii	") then\012_p('$(OBJDIR)/%s.res: %s', _MAKE.esc(path"
	.ascii	".getbasename(file)), _MAKE.esc(file))\012if prj.msg"
	.ascii	"resource then\012_p('\\t@echo ' .. prj.msgresource)"
	.ascii	"\012else\012_p('\\t@echo $(notdir $<)')\012end\012_"
	.ascii	"p('\\t$(SILENT) $(RESCOMP) $< -O coff -o \"$@\" $(A"
	.ascii	"LL_RESFLAGS)')\012_p('')\012end\012end\012end\012fu"
	.ascii	"nction cpp.dependencyRules(prj)\012for _, dep"
	.ascii	"endency in ipairs(prj.dependency or {}) do\012for _"
	.ascii	", dep in ipairs(dependency or {}) do\012if (dep[3]="
	.ascii	"=nil or dep[3]==false) then\012_p('$(OBJDIR)/%s.o: "
	.ascii	"%s'\012, _MAKE.esc(path.trimdots(path.removeext(pat"
	.ascii	"h.getrelative(prj.location, dep[1]))))\012, _MAKE.e"
	.ascii	"sc(path.getrelative(prj.location, dep[2]))\012)\012"
	.ascii	"else\012_p('%s: %s'\012, _MAKE.esc(dep[1])\012, _MA"
	.ascii	"KE.esc(path.getrelative(prj.location, dep[2]))\012)"
	.ascii	"\012end\012_p('')\012end\012end\012end\012function "
	.ascii	"cpp.buildcommand(iscfile, objext)\012local flags = "
	.ascii	"iif(iscfile, '$(CC) $(ALL_CFLAGS)', '$(CXX) $(ALL_C"
	.ascii	"XXFLAGS)')\012_p('\\t$(SILENT) %s $(FORCE_INCLUDE) "
	.ascii	"-o \"$@\" -c \"$<\"', flags, objext)\012end\012\000"
	.align	2
.LC36:
	.ascii	"local function getresourcefilename(cfg, fname)\012i"
	.ascii	"f path.getextension(fname) == \".resx\" then\012loc"
	.ascii	"al name = cfg.buildtarget.basename .. \".\"\012loca"
	.ascii	"l dir = path.getdirectory(fname)\012if dir ~= \".\""
	.ascii	" then\012name = name .. path.translate(dir, \".\") "
	.ascii	".. \".\"\012end\012return \"$(OBJDIR)/\" .. _MAKE.e"
	.ascii	"sc(name .. path.getbasename(fname)) .. \".resources"
	.ascii	"\"\012else\012return fname\012end\012end\012functio"
	.ascii	"n premake.make_csharp(prj)\012local csc = premake.d"
	.ascii	"otnet\012local cfglibs = { }\012local cfgpairs = { "
	.ascii	"}\012local anycfg\012for cfg in premake.eachconfig("
	.ascii	"prj) do\012anycfg = cfg\012cfglibs[cfg] = premake.g"
	.ascii	"etlinks(cfg, \"siblings\", \"fullpath\")\012cfgpair"
	.ascii	"s[cfg] = { }\012for _, fname in ipairs(cfglibs[cfg]"
	.ascii	") do\012if path.getdirectory(fname) ~= cfg.buildtar"
	.ascii	"get.directory then\012cfgpairs[cfg][\"$(TARGETDIR)/"
	.ascii	"\" .. _MAKE.esc(path.getname(fname))] = _MAKE.esc(f"
	.ascii	"name)\012end\012end\012end\012local sources = {}\012"
	.ascii	"local embedded = { }\012local copypairs = { }\012fo"
	.ascii	"r fcfg in premake.project.eachfile(prj) do\012local"
	.ascii	" action = csc.getbuildaction(fcfg)\012if action == "
	.ascii	"\"Compile\" then\012table.insert(sources, fcfg.name"
	.ascii	")\012elseif action == \"EmbeddedResource\" then\012"
	.ascii	"table.insert(embedded, fcfg.name)\012elseif action "
	.ascii	"== \"Content\" then\012copypairs[\"$(TARGETDIR)/\" "
	.ascii	".. _MAKE.esc(path.getname(fcfg.name))] = _MAKE.esc("
	.ascii	"fcfg.name)\012elseif path.getname(fcfg.name):lower("
	.ascii	") == \"app.config\" then\012copypairs[\"$(TARGET).c"
	.ascii	"onfig\"] = _MAKE.esc(fcfg.name)\012end\012end\012lo"
	.ascii	"cal paths = table.translate(prj.libdirs, function(v"
	.ascii	") return path.join(prj.basedir, v) end)\012paths = "
	.ascii	"table.join({prj.basedir}, paths)\012for _, libname "
	.ascii	"in ipairs(premake.getlinks(prj, \"system\", \"fullp"
	.ascii	"ath\")) do\012local libdir = os.pathsearch(libname."
	.ascii	".\".dll\", unpack(paths))\012if (libdir) then\012lo"
	.ascii	"cal target = \"$(TARGETDIR)/\" .. _MAKE.esc(path.ge"
	.ascii	"tname(libname))\012local source = path.getrelative("
	.ascii	"prj.basedir, path.join(libdir, libname))..\".dll\"\012"
	.ascii	"copypairs[target] = _MAKE.esc(source)\012end\012end"
	.ascii	"\012_p('# %s project makefile autogenerated by GENi"
	.ascii	"e', premake.action.current().shortname)\012_p('')\012"
	.ascii	"_p('ifndef config')\012_p('  config=%s', _MAKE.esc("
	.ascii	"prj.configurations[1]:lower()))\012_p('endif')\012_"
	.ascii	"p('')\012_p('ifnd"
	.ascii	"ef verbose')\012_p('  SILENT = @')\012_p('endif')\012"
	.ascii	"_p('')\012_p('SHELLTYPE := msdos')\012_p('ifeq (,$("
	.ascii	"ComSpec)$(COMSPEC))')\012_p('  SHELLTYPE := posix')"
	.ascii	"\012_p('endif')\012_p('ifeq (/bin,$(findstring /bin"
	.ascii	",$(SHELL)))')\012_p('  SHELLTYPE := posix')\012_p('"
	.ascii	"endif')\012_p('ifeq (/bin,$(findstring /bin,$(MAKES"
	.ascii	"HELL)))')\012_p('  SHELLTYPE := posix')\012_p('endi"
	.ascii	"f')\012_p('')\012_p('ifeq (posix,$(SHELLTYPE))')\012"
	.ascii	"_p('  MKDIR = $(SILENT) mkdir -p \"$(1)\"')\012_p('"
	.ascii	"  COPY  = $(SILENT) cp -fR \"$(1)\" \"$(2)\"')\012_"
	.ascii	"p('else')\012_p('  MKDIR = $(SILENT) mkdir \"$(subs"
	.ascii	"t /,\\\\\\\\,$(1))\" 2> nul')\012_p('  COPY  = $(SI"
	.ascii	"LENT) copy /Y \"$(subst /,\\\\\\\\,$(1))\" \"$(subs"
	.ascii	"t /,\\\\\\\\,$(2))\"')\012_p('endif')\012_p('')\012"
	.ascii	"_p('ifndef CSC')\012_p('  CSC=%s', csc.getcompilerv"
	.ascii	"ar(prj))\012_p('endif')\012_p('')\012_p('ifndef RES"
	.ascii	"GEN')\012_p('  RESGEN=resgen')\012_p('endif')\012_p"
	.ascii	"('')\012local platforms = premake.filterplatforms(p"
	.ascii	"rj.solution, premake[_OPTIONS.cc].platforms)\012tab"
	.ascii	"le.insert(platforms, 1, \"\")\012for cfg in premake"
	.ascii	".eachconfig(prj) do\012premake.gmake_cs_config(cfg,"
	.ascii	" csc, cfglibs)\012end\012_p('# To maintain compatib"
	.ascii	"ility with VS.NET, these values must be set at the "
	.ascii	"project level')\012_p('TARGET     := $(TARGETDIR)/%"
	.ascii	"s', _MAKE.esc(prj.buildtarget.name))\012_p('FLAGS  "
	.ascii	"    += /t:%s %s', csc.getkind(prj):lower(), table.i"
	.ascii	"mplode(_MAKE.esc(prj.libdirs), \"/lib:\", \"\", \" "
	.ascii	"\"))\012_p('REFERENCES += %s', table.implode(_MAKE."
	.ascii	"esc(premake.getlinks(prj, \"system\", \"basename\")"
	.ascii	"), \"/r:\", \".dll\", \" \"))\012_p('')\012_p('SOUR"
	.ascii	"CES := \\\\')\012for _, fname in ipairs(sources) do"
	.ascii	"\012_p('\\t%s \\\\', _MAKE.esc(path.translate(fname"
	.ascii	")))\012end\012_p('')\012_p('EMBEDFILES := \\\\')\012"
	.ascii	"for _, fname in ipairs(embedded) do\012_p('\\t%s \\"
	.ascii	"\\', getresourcefilename(prj, fname))\012end\012_p("
	.ascii	"'')\012_p('COPYFILES += \\\\')\012for target, sourc"
	.ascii	"e in pairs(cfgpairs[anycfg]) do\012_p('\\t%s \\\\',"
	.ascii	" target)\012end\012for target, source in pairs(copy"
	.ascii	"pairs) do\012_p('\\t%s \\\\', target)\012end\012_p("
	.ascii	"'')\012_p('SHELLTYPE := msdos')\012_p('ifeq (,$(Com"
	.ascii	"Spec)$(COMSPEC))')\012_p('  SHELLTYPE := posix')\012"
	.ascii	"_p('endif')\012_p('ifeq (/bin,$(findstring /bin,$(S"
	.ascii	"HELL)))')\012_p('  SHELLTYPE := posix')\012_p('endi"
	.ascii	"f')\012_p('ifeq (/bin,$(findstring /bin,$(MAKESHELL"
	.ascii	")))')\012_p("
	.ascii	"'  SHELLTYPE := posix')\012_p('endif')\012_p('')\012"
	.ascii	"_p('.PHONY: clean prebuild prelink')\012_p('')\012_"
	.ascii	"p('all: $(TARGETDIR) $(OBJDIR) prebuild $(EMBEDFILE"
	.ascii	"S) $(COPYFILES) prelink $(TARGET)')\012_p('')\012_p"
	.ascii	"('$(TARGET): $(SOURCES) $(EMBEDFILES) $(DEPENDS)')\012"
	.ascii	"_p('\\t$(SILENT) $(CSC) /nologo /out:$@ $(FLAGS) $("
	.ascii	"REFERENCES) $(SOURCES) $(patsubst %%,/resource:%%,$"
	.ascii	"(EMBEDFILES))')\012_p('\\t$(POSTBUILDCMDS)')\012_p("
	.ascii	"'')\012_p('$(TARGETDIR):')\012premake.make_mkdirrul"
	.ascii	"e(\"$(TARGETDIR)\")\012_p('$(OBJDIR):')\012premake."
	.ascii	"make_mkdirrule(\"$(OBJDIR)\")\012_p('clean:')\012_p"
	.ascii	"('\\t@echo Cleaning %s', prj.name)\012_p('ifeq (pos"
	.ascii	"ix,$(SHELLTYPE))')\012_p('\\t$(SILENT) rm -f $(TARG"
	.ascii	"ET) $(COPYFILES)')\012_p('\\t$(SILENT) rm -rf $(OBJ"
	.ascii	"DIR)')\012_p('else')\012_p('\\t$(SILENT) if exist $"
	.ascii	"(subst /,\\\\\\\\,$(TARGETDIR)/%s.*) del $(subst /,"
	.ascii	"\\\\\\\\,$(TARGETDIR)/%s.*)', prj.buildtarget.basen"
	.ascii	"ame, prj.buildtarget.basename)\012for target, sourc"
	.ascii	"e in pairs(cfgpairs[anycfg]) do\012_p('\\t$(SILENT)"
	.ascii	" if exist $(subst /,\\\\\\\\,%s) del $(subst /,\\\\"
	.ascii	"\\\\,%s)', target, target)\012end\012for target, so"
	.ascii	"urce in pairs(copypairs) do\012_p('\\t$(SILENT) if "
	.ascii	"exist $(subst /,\\\\\\\\,%s) del $(subst /,\\\\\\\\"
	.ascii	",%s)', target, target)\012end\012_p('\\t$(SILENT) i"
	.ascii	"f exist $(subst /,\\\\\\\\,$(OBJDIR)) rmdir /s /q $"
	.ascii	"(subst /,\\\\\\\\,$(OBJDIR))')\012_p('endif')\012_p"
	.ascii	"('')\012_p('prebuild:')\012_p('\\t$(PREBUILDCMDS)')"
	.ascii	"\012_p('')\012_p('prelink:')\012_p('\\t$(PRELINKCMD"
	.ascii	"S)')\012_p('')\012_p('# Per-configuration copied fi"
	.ascii	"le rules')\012for cfg in premake.eachconfig(prj) do"
	.ascii	"\012_p('ifneq (,$(findstring %s,$(config)))', _MAKE"
	.ascii	".esc(cfg.name:lower()))\012for target, source in pa"
	.ascii	"irs(cfgpairs[cfg]) do\012premake.make_copyrule(sour"
	.ascii	"ce, target)\012end\012_p('endif')\012_p('')\012end\012"
	.ascii	"_p('# Copied file rules')\012for target, source in "
	.ascii	"pairs(copypairs) do\012premake.make_copyrule(source"
	.ascii	", target)\012end\012_p('# Embedded file rules')\012"
	.ascii	"for _, fname in ipairs(embedded) do\012if path.gete"
	.ascii	"xtension(fname) == \".resx\" then\012_p('%s: %s', g"
	.ascii	"etresourcefilename(prj, fname), _MAKE.esc(fname))\012"
	.ascii	"_p('\\t$(SILENT) $(RESGEN) $^ $@')\012end\012_p('')"
	.ascii	"\012end\012end\012function premake.gmake_cs_config("
	.ascii	"cfg, csc, cfglibs)\012local targetDir = _MAKE.esc(c"
	.ascii	"fg.buildtarget.directory)\012_p"
	.ascii	"('ifneq (,$(findstring %s,$(config)))', _MAKE.esc(c"
	.ascii	"fg.name:lower()))\012_p('  TARGETDIR  := %s', iif(t"
	.ascii	"argetDir == \"\", \".\", targetDir))\012_p('  OBJDI"
	.ascii	"R     := %s', _MAKE.esc(cfg.objectsdir))\012_p('  D"
	.ascii	"EPENDS    := %s', table.concat(_MAKE.esc(premake.ge"
	.ascii	"tlinks(cfg, \"dependencies\", \"fullpath\")), \" \""
	.ascii	"))\012_p('  REFERENCES := %s', table.implode(_MAKE."
	.ascii	"esc(cfglibs[cfg]), \"/r:\", \"\", \" \"))\012_p('  "
	.ascii	"FLAGS      += %s %s', table.implode(cfg.defines, \""
	.ascii	"/d:\", \"\", \" \"), table.concat(table.join(csc.ge"
	.ascii	"tflags(cfg), cfg.buildoptions), \" \"))\012_p('  de"
	.ascii	"fine PREBUILDCMDS')\012if #cfg.prebuildcommands > 0"
	.ascii	" then\012_p('\\t@echo Running pre-build commands')\012"
	.ascii	"_p('\\t%s', table.implode(cfg.prebuildcommands, \"\""
	.ascii	", \"\", \"\\n\\t\"))\012end\012_p('  endef')\012_p("
	.ascii	"'  define PRELINKCMDS')\012if #cfg.prelinkcommands "
	.ascii	"> 0 then\012_p('\\t@echo Running pre-link commands'"
	.ascii	")\012_p('\\t%s', table.implode(cfg.prelinkcommands,"
	.ascii	" \"\", \"\", \"\\n\\t\"))\012end\012_p('  endef')\012"
	.ascii	"_p('  define POSTBUILDCMDS')\012if #cfg.postbuildco"
	.ascii	"mmands > 0 then\012_p('\\t@echo Running post-build "
	.ascii	"commands')\012_p('\\t%s', table.implode(cfg.postbui"
	.ascii	"ldcommands, \"\", \"\", \"\\n\\t\"))\012end\012_p('"
	.ascii	"  endef')\012_p('endif')\012_p('')\012end\012\000"
	.align	2
.LC37:
	.ascii	"local make = premake.make\012function premake.make_"
	.ascii	"vala(prj)\012local valac = premake.gettool(prj)\012"
	.ascii	"local platforms = premake.filterplatforms(prj.solut"
	.ascii	"ion, valac.platforms, \"Native\")\012_p('# %s proje"
	.ascii	"ct makefile autogenerated by GENie', premake.action"
	.ascii	".current().shortname)\012_p('ifndef config')\012_p("
	.ascii	"'  config=%s', _MAKE.esc(premake.getconfigname(prj."
	.ascii	"solution.configurations[1], platforms[1], true)))\012"
	.ascii	"_p('endif')\012_p('')\012_p('ifndef verbose')\012_p"
	.ascii	"('  SILENT = @')\012_p('endif')\012_p('')\012_p('SH"
	.ascii	"ELLTYPE := msdos')\012_p('ifeq (,$(ComSpec)$(COMSPE"
	.ascii	"C))')\012_p('  SHELLTYPE := posix')\012_p('endif')\012"
	.ascii	"_p('ifeq (/bin,$(findstring /bin,$(SHELL)))')\012_p"
	.ascii	"('  SHELLTYPE := posix')\012_p('endif')\012_p('ifeq"
	.ascii	" (/bin,$(findstring /bin,$(MAKESHELL)))')\012_p('  "
	.ascii	"SHELLTYPE := posix')\012_p('endif')\012_p('')\012_p"
	.ascii	"('ifeq (posix,$(SHELLTYPE))')\012_p('  MKDIR = $(SI"
	.ascii	"LENT) mkdir -p \"$(1)\"')\012_p('  COPY  = $(SILENT"
	.ascii	") cp -fR \"$(1)\" \"$(2)\"')\012_p('  RM    = $(SIL"
	.ascii	"ENT) rm -f \"$(1)\"')\012_p('else')\012_p('  MKDIR "
	.ascii	"= $(SILENT) mkdir \"$(subst /,\\\\\\\\,$(1))\" 2> n"
	.ascii	"ul || exit 0')\012_p('  COPY  = $(SILENT) copy /Y \""
	.ascii	"$(subst /,\\\\\\\\,$(1))\" \"$(subst /,\\\\\\\\,$(2"
	.ascii	"))\"')\012_p('  RM    = $(SILENT) del /F \"$(subst "
	.ascii	"/,\\\\\\\\,$(1))\" 2> nul || exit 0')\012_p('endif'"
	.ascii	")\012_p('')\012_p('VALAC = %s', valac.valac)\012_p("
	.ascii	"'CC    = %s', valac.cc)\012_p('')\012for _, platfor"
	.ascii	"m in ipairs(platforms) do\012for cfg in premake.eac"
	.ascii	"hconfig(prj, platform) do\012premake.gmake_valac_co"
	.ascii	"nfig(prj, cfg, valac)\012end\012end\012_p('SOURCES "
	.ascii	":= \\\\')\012for _, file in ipairs(prj.files) do\012"
	.ascii	"if path.issourcefile(file) then\012if not table.ico"
	.ascii	"ntains(prj.excludes, file) then\012_p('\\t%s \\\\',"
	.ascii	" _MAKE.esc(file))\012end\012end\012end\012_p('')\012"
	.ascii	"_p('.PHONY: clean prebuild prelink')\012_p('')\012_"
	.ascii	"p('all: prebuild prelink $(TARGET) | $(TARGETDIR)')"
	.ascii	"\012_p('\\t@:')\012_p('')\012_p('$(TARGET): $(SOURC"
	.ascii	"ES) | $(TARGETDIR)')\012_p('\\t$(SILENT) $(VALAC) -"
	.ascii	"o $(TARGET) --cc=$(CC) $(FLAGS) $(SOURCES)')\012_p("
	.ascii	"'\\t$(POSTBUILDCMDS)')\012_p('')\012_p('$(TARGETDIR"
	.ascii	"):')\012premake.make_mkdirrule(\"$(TARGETDIR)\")\012"
	.ascii	"_p('clean:')\012if (not prj.solution.messageskip) o"
	.ascii	"r (not table.contains(prj.solution.messageskip, \"S"
	.ascii	"kipCleaningMessage\")) then\012_p('\\"
	.ascii	"t@echo Cleaning %s', prj.name)\012end\012_p('ifeq ("
	.ascii	"posix,$(SHELLTYPE))')\012_p('\\t$(SILENT) rm -f  $("
	.ascii	"TARGET)')\012_p('else')\012_p('\\t$(SILENT) if exis"
	.ascii	"t $(subst /,\\\\\\\\,$(TARGET)) del $(subst /,\\\\\\"
	.ascii	"\\,$(TARGET))')\012_p('endif')\012_p('')\012_p('pre"
	.ascii	"build:')\012_p('\\t$(PREBUILDCMDS)')\012_p('')\012_"
	.ascii	"p('prelink:')\012_p('\\t$(PRELINKCMDS)')\012_p('')\012"
	.ascii	"end\012function premake.gmake_valac_config(prj, cfg"
	.ascii	", valac)\012_p('ifeq ($(config),%s)', _MAKE.esc(cfg"
	.ascii	".shortname))\012_p('  TARGETDIR  = %s', _MAKE.esc(c"
	.ascii	"fg.buildtarget.directory))\012_p('  TARGET     = $("
	.ascii	"TARGETDIR)/%s', _MAKE.esc(cfg.buildtarget.name))\012"
	.ascii	"_p('  DEFINES    +=%s', make.list(valac.getdefines("
	.ascii	"cfg.defines)))\012_p('  VAPIDIRS   +=%s', make.list"
	.ascii	"(valac.getvapidirs(cfg.vapidirs)))\012_p('  PKGS   "
	.ascii	"    +=%s', make.list(valac.getlinks(cfg.links)))\012"
	.ascii	"_p('  FLAGS      += $(DEFINES) $(VAPIDIRS) $(PKGS)%"
	.ascii	"s', make.list(table.join(valac.getvalaflags(cfg), v"
	.ascii	"alac.getbuildoptions(cfg.buildoptions), valac.getbu"
	.ascii	"ildoptions(cfg.buildoptions_c), cfg.buildoptions_va"
	.ascii	"la)))\012_p('  define PREBUILDCMDS')\012if #cfg.pre"
	.ascii	"buildcommands > 0 then\012_p('\\t@echo Running pre-"
	.ascii	"build commands')\012_p('\\t%s', table.implode(cfg.p"
	.ascii	"rebuildcommands, \"\", \"\", \"\\n\\t\"))\012end\012"
	.ascii	"_p('  endef')\012_p('  define PRELINKCMDS')\012if #"
	.ascii	"cfg.prelinkcommands > 0 then\012_p('\\t@echo Runnin"
	.ascii	"g pre-link commands')\012_p('\\t%s', table.implode("
	.ascii	"cfg.prelinkcommands, \"\", \"\", \"\\n\\t\"))\012en"
	.ascii	"d\012_p('  endef')\012_p('  define POSTBUILDCMDS')\012"
	.ascii	"if #cfg.postbuildcommands > 0 then\012_p('\\t@echo "
	.ascii	"Running post-build commands')\012_p('\\t%s', table."
	.ascii	"implode(cfg.postbuildcommands, \"\", \"\", \"\\n\\t"
	.ascii	"\"))\012end\012_p('  endef')\012_p('endif')\012_p('"
	.ascii	"')\012end\012\000"
	.align	2
.LC38:
	.ascii	"local make = premake.make\012local swift = { }\012f"
	.ascii	"unction premake.make_swift(prj)\012local tool = pre"
	.ascii	"make.gettool(prj)\012local platforms = premake.filt"
	.ascii	"erplatforms(prj.solution, tool.platforms, \"Native\""
	.ascii	")\012_p('# %s project makefile autogenerated by GEN"
	.ascii	"ie', premake.action.current().shortname)\012_p('ifn"
	.ascii	"def config')\012_p(1, 'config=%s', _MAKE.esc(premak"
	.ascii	"e.getconfigname(prj.solution.configurations[1], pla"
	.ascii	"tforms[1], true)))\012_p('endif')\012_p('')\012_p('"
	.ascii	"ifndef verbose')\012_p(1, 'SILENT = @')\012_p('endi"
	.ascii	"f')\012_p('')\012_p('SHELLTYPE := msdos')\012_p('if"
	.ascii	"eq (,$(ComSpec)$(COMSPEC))')\012_p(1, 'SHELLTYPE :="
	.ascii	" posix')\012_p('endif')\012_p('ifeq (/bin,$(findstr"
	.ascii	"ing /bin,$(SHELL)))')\012_p(1, 'SHELLTYPE := posix'"
	.ascii	")\012_p('endif')\012_p('ifeq (/bin,$(findstring /bi"
	.ascii	"n,$(MAKESHELL)))')\012_p(1, 'SHELLTYPE := posix')\012"
	.ascii	"_p('endif')\012_p('')\012_p('ifeq (posix,$(SHELLTYP"
	.ascii	"E))')\012_p(1, 'MKDIR = $(SILENT) mkdir -p \"$(1)\""
	.ascii	"')\012_p(1, 'COPY  = $(SILENT) cp -fR \"$(1)\" \"$("
	.ascii	"2)\"')\012_p(1, 'RM    = $(SILENT) rm -f \"$(1)\"')"
	.ascii	"\012_p('else')\012_p(1, 'MKDIR = $(SILENT) mkdir \""
	.ascii	"$(subst /,\\\\\\\\,$(1))\" 2> nul || exit 0')\012_p"
	.ascii	"(1, 'COPY  = $(SILENT) copy /Y \"$(subst /,\\\\\\\\"
	.ascii	",$(1))\" \"$(subst /,\\\\\\\\,$(2))\"')\012_p(1, 'R"
	.ascii	"M    = $(SILENT) del /F \"$(subst /,\\\\\\\\,$(1))\""
	.ascii	" 2> nul || exit 0')\012_p('endif')\012_p('')\012_p("
	.ascii	"'SWIFTC = %s', tool.swift)\012_p('SWIFTLINK = %s', "
	.ascii	"tool.swiftc)\012_p('DSYMUTIL = %s', tool.dsymutil)\012"
	.ascii	"_p('AR = %s', tool.ar)\012_p('')\012for _, platform"
	.ascii	" in ipairs(platforms) do\012for cfg in premake.each"
	.ascii	"config(prj, platform) do\012swift.generate_config(p"
	.ascii	"rj, cfg, tool)\012end\012end\012_p('.PHONY: ')\012_"
	.ascii	"p('')\012_p('all: $(WORK_DIRS) $(TARGET)')\012_p(''"
	.ascii	")\012_p('$(WORK_DIRS):')\012_p(1, '$(SILENT) $(call"
	.ascii	" MKDIR,$@)')\012_p('')\012_p('SOURCES := \\\\')\012"
	.ascii	"for _, file in ipairs(prj.files) do\012if path.issw"
	.ascii	"iftfile(file) then\012_p(1, '%s \\\\', _MAKE.esc(fi"
	.ascii	"le))\012end\012end\012_p('')\012local objfiles = {}"
	.ascii	"\012_p('OBJECTS_WITNESS := $(OBJDIR)/build.stamp')\012"
	.ascii	"_p('OBJECTS := \\\\')\012for _, file in ipairs(prj."
	.ascii	"files) do\012if path.isswiftfile(file) then\012loca"
	.ascii	"l objname = _MAKE.esc(swift.objectname(file))\012ta"
	.ascii	"ble.insert(objfiles, objname)\012_p(1, '%s \\\\', o"
	.ascii	"bjname)\012end\012end\012_p('')\012swift.file_rul"
	.ascii	"es(prj, objfiles)\012swift.linker(prj, tool)\012swi"
	.ascii	"ft.generate_clean(prj)\012end\012function swift.obj"
	.ascii	"ectname(file)\012return path.join(\"$(OBJDIR)\", pa"
	.ascii	"th.getname(file)..\".o\")\012end\012function swift."
	.ascii	"file_rules(prj, objfiles)\012_p('$(OBJECTS_WITNESS)"
	.ascii	": $(SOURCES)')\012_p(1, \"@rm -f $(OBJDIR)/data.tmp"
	.ascii	"\")\012_p(1, \"@touch $(OBJDIR)/data.tmp\")\012_p(1"
	.ascii	", \"$(SILENT) $(SWIFTC) -frontend -c $(SOURCES) -en"
	.ascii	"able-objc-interop $(SDK) -I $(OUT_DIR) $(SWIFTC_FLA"
	.ascii	"GS) -module-cache-path $(MODULECACHE_DIR) -D SWIFT_"
	.ascii	"PACKAGE $(MODULE_MAPS) -emit-module-doc-path $(OUT_"
	.ascii	"DIR)/$(MODULE_NAME).swiftdoc -module-name $(MODULE_"
	.ascii	"NAME) -emit-module-path $(OUT_DIR)/$(MODULE_NAME).s"
	.ascii	"wiftmodule -num-threads 8 %s\", table.arglist(\"-o\""
	.ascii	", objfiles))\012_p(1, \"@mv -f $(OBJDIR)/data.tmp $"
	.ascii	"(OBJECTS_WITNESS)\")\012_p('')\012_p('$(OBJECTS): $"
	.ascii	"(OBJECTS_WITNESS)')\012_p(1, '@if test -f $@; then "
	.ascii	":; else \\\\')\012_p(2, 'rm -f $(OBJECTS_WITNESS); "
	.ascii	"\\\\')\012_p(2, '$(MAKE) $(AM_MAKEFLAGS) $(OBJECTS_"
	.ascii	"WITNESS); \\\\')\012_p(1, 'fi')\012_p('')\012end\012"
	.ascii	"function swift.linker(prj, tool)\012local lddeps = "
	.ascii	"make.list(premake.getlinks(prj, \"siblings\", \"ful"
	.ascii	"lpath\")) \012if prj.kind == \"StaticLib\" then\012"
	.ascii	"_p(\"$(TARGET): $(OBJECTS) %s \", lddeps)\012_p(1, "
	.ascii	"\"$(SILENT) $(AR) cr $(AR_FLAGS) $@ $(OBJECTS) %s\""
	.ascii	", (os.is(\"MacOSX\") and \" 2>&1 > /dev/null | sed "
	.ascii	"-e '/.o) has no symbols$$/d'\" or \"\"))\012else\012"
	.ascii	"_p(\"$(TARGET): $(OBJECTS) $(LDDEPS)\", lddeps)\012"
	.ascii	"_p(1, \"$(SILENT) $(SWIFTLINK) $(SDK) -L $(OUT_DIR)"
	.ascii	" -o $@ $(SWIFTLINK_FLAGS) $(LD_FLAGS) $(OBJECTS)\")"
	.ascii	"\012_p(\"ifdef SYMBOLS\")\012_p(1, \"$(SILENT) $(DS"
	.ascii	"YMUTIL) $(TARGET) -o $(SYMBOLS)\")\012_p(\"endif\")"
	.ascii	"\012end\012_p('')\012end\012function swift.generate"
	.ascii	"_clean(prj)\012_p('clean:')\012if (not prj.solution"
	.ascii	".messageskip) or (not table.contains(prj.solution.m"
	.ascii	"essageskip, \"SkipCleaningMessage\")) then\012_p('\\"
	.ascii	"t@echo Cleaning %s', prj.name)\012end\012_p('ifeq ("
	.ascii	"posix,$(SHELLTYPE))')\012_p('\\t$(SILENT) rm -f  $("
	.ascii	"TARGET)')\012_p('\\t$(SILENT) rm -rf $(OBJDIR)')\012"
	.ascii	"_p('\\t$(SILENT) rm -rf $(SYMBOLS)')\012_p('\\t$(SI"
	.ascii	"LENT) rm -rf $(MODULECACHE_DIR)')\012_p('else')\012"
	.ascii	"_p('\\t$(SILENT) if exist $(subst /,\\\\\\\\,$(TARG"
	.ascii	"ET)) del $(subst /,\\\\\\\\,$(TARGET))')\012_p('\\t"
	.ascii	"$(SILE"
	.ascii	"NT) if exist $(subst /,\\\\\\\\,$(OBJDIR)) rmdir /s"
	.ascii	" /q $(subst /,\\\\\\\\,$(OBJDIR))')\012_p('\\t$(SIL"
	.ascii	"ENT) if exist $(subst /,\\\\\\\\,$(SYMBOLS)) rmdir "
	.ascii	"/s /q $(subst /,\\\\\\\\,$(SYMBOLS))')\012_p('\\t$("
	.ascii	"SILENT) if exist $(subst /,\\\\\\\\,$(MODULECACHE_D"
	.ascii	"IR)) rmdir /s /q $(subst /,\\\\\\\\,$(MODULECACHE_D"
	.ascii	"IR))')\012_p('endif')\012_p('')\012end\012function "
	.ascii	"swift.generate_config(prj, cfg, tool)\012_p('ifeq ("
	.ascii	"$(config),%s)', _MAKE.esc(cfg.shortname))\012_p(1, "
	.ascii	"\"OUT_DIR = %s\", cfg.buildtarget.directory)\012  _"
	.ascii	"p(1, \"MODULECACHE_DIR = $(OUT_DIR)/ModuleCache\")\012"
	.ascii	"_p(1, \"TARGET = $(OUT_DIR)/%s\", _MAKE.esc(cfg.bui"
	.ascii	"ldtarget.name))\012local objdir = path.join(cfg.obj"
	.ascii	"ectsdir, prj.name .. \".build\")\012_p(1, \"OBJDIR "
	.ascii	"= %s\", objdir)\012_p(1, \"MODULE_NAME = %s\", prj."
	.ascii	"name)\012_p(1, \"MODULE_MAPS = %s\", make.list(tool"
	.ascii	".getmodulemaps(cfg)))\012_p(1, \"SWIFTC_FLAGS = %s\""
	.ascii	", make.list(tool.getswiftcflags(cfg)))\012_p(1, \"S"
	.ascii	"WIFTLINK_FLAGS = %s\", make.list(tool.getswiftlinkf"
	.ascii	"lags(cfg)))\012_p(1, \"AR_FLAGS = %s\", make.list(t"
	.ascii	"ool.getarchiveflags(cfg, cfg, false)))\012_p(1, \"L"
	.ascii	"D_FLAGS = %s\", make.list(tool.getldflags(cfg)))\012"
	.ascii	"_p(1, \"LDDEPS = %s\", make.list(premake.getlinks(c"
	.ascii	"fg, \"siblings\", \"fullpath\")))\012if cfg.flags.S"
	.ascii	"ymbols then\012_p(1, \"SYMBOLS = $(TARGET).dSYM\")\012"
	.ascii	"end\012local sdk = tool.get_sdk_path(cfg)\012if sdk"
	.ascii	" then\012_p(1, \"TOOLCHAIN_PATH = %s\", tool.get_to"
	.ascii	"olchain_path(cfg))\012_p(1, \"SDK_PATH = %s\", sdk)"
	.ascii	"\012_p(1, \"PLATFORM_PATH = %s\", tool.get_sdk_plat"
	.ascii	"form_path(cfg))\012_p(1, \"SDK = -sdk $(SDK_PATH)\""
	.ascii	")\012else\012_p(1, \"SDK_PATH =\")\012_p(1, \"SDK ="
	.ascii	"\")\012end\012_p(1,'WORK_DIRS = $(OUT_DIR) $(OBJDIR"
	.ascii	")')\012_p('endif')\012_p('')\012end\000"
	.align	2
.LC39:
	.ascii	"premake.vstudio = { }\012local toolsets = {\012vs20"
	.ascii	"10 = \"v100\",\012vs2012 = \"v110\",\012vs2013 = \""
	.ascii	"v120\",\012vs2015 = \"v140\",\012vs2017 = \"v141\","
	.ascii	"\012vs2019 = \"v142\",\012}\012premake.vstudio.tool"
	.ascii	"set = toolsets[_ACTION] or \"unknown?\"\012premake."
	.ascii	"vstudio.splashpath = ''\012premake.vstudio.xpwarnin"
	.ascii	"g = true\012local vstudio = premake.vstudio\012vstu"
	.ascii	"dio.platforms = {\012any     = \"Any CPU\",\012mixe"
	.ascii	"d   = \"Mixed Platforms\",\012Native  = \"Win32\",\012"
	.ascii	"x86     = \"x86\",\012x32     = \"Win32\",\012x64  "
	.ascii	"   = \"x64\",\012PS3     = \"PS3\",\012Xbox360 = \""
	.ascii	"Xbox 360\",\012ARM     = \"ARM\",\012Orbis   = \"OR"
	.ascii	"BIS\",\012Durango = \"Durango\",\012TegraAndroid = "
	.ascii	"\"Tegra-Android\",\012NX32    = \"NX32\",\012NX64  "
	.ascii	"  = \"NX64\",\012Emscripten = \"Emscripten\",\012}\012"
	.ascii	"function vstudio.arch(prj)\012if (prj.language == \""
	.ascii	"C#\") then\012return \"Any CPU\"\012else\012return "
	.ascii	"\"Win32\"\012end\012end\012function vstudio.iswinrt"
	.ascii	"()\012return vstudio.storeapp ~= nil and vstudio.st"
	.ascii	"oreapp ~= ''\012end\012function vstudio.buildconfig"
	.ascii	"s(sln)\012local cfgs = { }\012local platforms = pre"
	.ascii	"make.filterplatforms(sln, vstudio.platforms, \"Nati"
	.ascii	"ve\")\012local hascpp    = premake.hascppproject(sl"
	.ascii	"n)\012local hasdotnet = premake.hasdotnetproject(sl"
	.ascii	"n)\012if hasdotnet and (_ACTION > \"vs2008\" or has"
	.ascii	"cpp) then\012table.insert(platforms, 1, \"mixed\")\012"
	.ascii	"end\012if hasdotnet and (_ACTION < \"vs2010\" or no"
	.ascii	"t hascpp) then\012table.insert(platforms, 1, \"any\""
	.ascii	")\012end\012if _ACTION > \"vs2008\" then\012local p"
	.ascii	"latforms2010 = { }\012for _, platform in ipairs(pla"
	.ascii	"tforms) do\012if vstudio.platforms[platform] == \"W"
	.ascii	"in32\" then\012if hascpp then\012table.insert(platf"
	.ascii	"orms2010, platform)\012end\012if hasdotnet then\012"
	.ascii	"table.insert(platforms2010, \"x86\")\012end\012else"
	.ascii	"\012table.insert(platforms2010, platform)\012end\012"
	.ascii	"end\012platforms = platforms2010\012end\012for _, b"
	.ascii	"uildcfg in ipairs(sln.configurations) do\012for _, "
	.ascii	"platform in ipairs(platforms) do\012local entry = {"
	.ascii	" }\012entry.src_buildcfg = buildcfg\012entry.src_pl"
	.ascii	"atform = platform\012if platform ~= \"PS3\" or _ACT"
	.ascii	"ION > \"vs2008\" then\012entry.buildcfg = buildcfg\012"
	.ascii	"entry.platform = vstudio.platforms[platform]\012els"
	.ascii	"e\012entry.buildcfg = platform .. \" \" .. buildcfg"
	.ascii	"\012entry.platform = \"Win32\"\012end\012entry.name"
	.ascii	" = entry.buildcfg .. \"|\" .. entry.platform\012ent"
	.ascii	"ry.isr"
	.ascii	"eal = (platform ~= \"any\" and platform ~= \"mixed\""
	.ascii	")\012table.insert(cfgs, entry)\012end\012end\012ret"
	.ascii	"urn cfgs\012end\012function premake.vstudio.bakeimp"
	.ascii	"orts(sln)\012for _,iprj in ipairs(sln.importedproje"
	.ascii	"cts) do\012if string.find(iprj.location, \".csproj\""
	.ascii	") ~= nil then\012iprj.language = \"C#\"\012else\012"
	.ascii	"iprj.language = \"C++\"\012end\012local f, err = io"
	.ascii	".open(iprj.location, \"r\")\012if (not f) then\012e"
	.ascii	"rror(err, 1)\012end\012local projcontents = f:read("
	.ascii	"\"*all\")\012f:close()\012local found, _, uuid = st"
	.ascii	"ring.find(projcontents, \"<ProjectGuid>{([%w%-]+)}<"
	.ascii	"/ProjectGuid>\")\012if not found then\012error(\"Co"
	.ascii	"uld not find ProjectGuid element in project \" .. i"
	.ascii	"prj.location, 1)\012end\012iprj.uuid = uuid\012if i"
	.ascii	"prj.language == \"C++\" and string.find(projcontent"
	.ascii	"s, \"<CLRSupport>true</CLRSupport>\") then\012iprj."
	.ascii	"flags.Managed = true\012end\012iprj.relpath = path."
	.ascii	"getrelative(sln.location, iprj.location)\012end\012"
	.ascii	"end\012function premake.vstudio.getimportprj(prjpat"
	.ascii	"h, sln)\012for _,iprj in ipairs(sln.importedproject"
	.ascii	"s) do\012if prjpath == iprj.relpath then\012return "
	.ascii	"iprj\012end\012end\012error(\"Could not find refere"
	.ascii	"nce import project \" .. prjpath, 1)\012end\012func"
	.ascii	"tion vstudio.cleansolution(sln)\012premake.clean.fi"
	.ascii	"le(sln, \"%%.sln\")\012premake.clean.file(sln, \"%%"
	.ascii	".suo\")\012premake.clean.file(sln, \"%%.ncb\")\012p"
	.ascii	"remake.clean.file(sln, \"%%.userprefs\")\012premake"
	.ascii	".clean.file(sln, \"%%.usertasks\")\012end\012functi"
	.ascii	"on vstudio.cleanproject(prj)\012local fname = prema"
	.ascii	"ke.project.getfilename(prj, \"%%\")\012os.remove(fn"
	.ascii	"ame .. \".vcproj\")\012os.remove(fname .. \".vcproj"
	.ascii	".user\")\012os.remove(fname .. \".vcxproj\")\012os."
	.ascii	"remove(fname .. \".vcxproj.user\")\012os.remove(fna"
	.ascii	"me .. \".vcxproj.filters\")\012os.remove(fname .. \""
	.ascii	".csproj\")\012os.remove(fname .. \".csproj.user\")\012"
	.ascii	"os.remove(fname .. \".pidb\")\012os.remove(fname .."
	.ascii	" \".sdf\")\012end\012function vstudio.cleantarget(n"
	.ascii	"ame)\012os.remove(name .. \".pdb\")\012os.remove(na"
	.ascii	"me .. \".idb\")\012os.remove(name .. \".ilk\")\012o"
	.ascii	"s.remove(name .. \".vshost.exe\")\012os.remove(name"
	.ascii	" .. \".exe.manifest\")\012end\012function vstudio.p"
	.ascii	"rojectfile(prj)\012local pattern\012if prj.language"
	.ascii	" == \"C#\" then\012pattern = \"%%.csproj\"\012else\012"
	.ascii	"pattern = iif(_ACTION > \"vs2008\", \"%%.vcxproj\","
	.ascii	" \"%%.vcproj\")\012end\012local fn"
	.ascii	"ame = premake.project.getbasename(prj.name, pattern"
	.ascii	")\012fname = path.join(prj.location, fname)\012retu"
	.ascii	"rn fname\012end\012function vstudio.tool(prj)\012if"
	.ascii	" (prj.language == \"C#\") then\012return \"FAE04EC0"
	.ascii	"-301F-11D3-BF4B-00C04F79EFBC\"\012else\012return \""
	.ascii	"8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942\"\012end\012en"
	.ascii	"d\012\000"
	.align	2
.LC40:
	.ascii	"premake.vstudio.sln2005 = { }\012local vstudio = pr"
	.ascii	"emake.vstudio\012local sln2005 = premake.vstudio.sl"
	.ascii	"n2005\012function sln2005.generate(sln)\012io.eol ="
	.ascii	" '\\r\\n'\012sln.vstudio_configs = premake.vstudio."
	.ascii	"buildconfigs(sln)\012premake.vstudio.bakeimports(sl"
	.ascii	"n)\012_p('\\239\\187\\191')\012sln2005.reorderProje"
	.ascii	"cts(sln)\012sln2005.header(sln)\012for grp in prema"
	.ascii	"ke.solution.eachgroup(sln) do\012sln2005.group(grp)"
	.ascii	"\012end\012for prj in premake.solution.eachproject("
	.ascii	"sln) do\012sln2005.project(prj)\012end\012        \012"
	.ascii	"for _,iprj in ipairs(sln.importedprojects) do\012sl"
	.ascii	"n2005.importproject(iprj)\012end\012_p('Global')\012"
	.ascii	"sln2005.platforms(sln)\012sln2005.project_platforms"
	.ascii	"(sln)\012sln2005.properties(sln)\012sln2005.project"
	.ascii	"_groups(sln)\012_p('EndGlobal')\012end\012function "
	.ascii	"sln2005.reorderProjects(sln)\012if sln.startproject"
	.ascii	" then\012for i, prj in ipairs(sln.projects) do\012i"
	.ascii	"f sln.startproject == prj.name then\012local cur = "
	.ascii	"prj.group\012while cur ~= nil do\012for j, group in"
	.ascii	" ipairs(sln.groups) do\012if group == cur then\012t"
	.ascii	"able.remove(sln.groups, j)\012break\012end\012end\012"
	.ascii	"table.insert(sln.groups, 1, cur)\012cur = cur.paren"
	.ascii	"t\012end\012table.remove(sln.projects, i)\012table."
	.ascii	"insert(sln.projects, 1, prj)\012break\012end\012end"
	.ascii	"\012end\012end\012function sln2005.header(sln)\012l"
	.ascii	"ocal action = premake.action.current()\012_p('Micro"
	.ascii	"soft Visual Studio Solution File, Format Version %d"
	.ascii	".00', action.vstudio.solutionVersion)\012if(_ACTION"
	.ascii	":sub(3) == \"2015\" or  _ACTION:sub(3) == \"2017\")"
	.ascii	" then\012_p('# Visual Studio %s', action.vstudio.to"
	.ascii	"olsVersion:sub(1,2))\012else\012_p('# Visual Studio"
	.ascii	" %s', _ACTION:sub(3))\012end\012end\012function sln"
	.ascii	"2005.project(prj)\012local projpath = path.translat"
	.ascii	"e(path.getrelative(prj.solution.location, vstudio.p"
	.ascii	"rojectfile(prj)), \"\\\\\")\012_p('Project(\"{%s}\""
	.ascii	") = \"%s\", \"%s\", \"{%s}\"', vstudio.tool(prj), p"
	.ascii	"rj.name, projpath, prj.uuid)\012sln2005.projectdepe"
	.ascii	"ndencies(prj)\012_p('EndProject')\012end\012functio"
	.ascii	"n sln2005.group(grp)\012_p('Project(\"{2150E333-8FD"
	.ascii	"C-42A3-9474-1A3956D46DE8}\") = \"%s\", \"%s\", \"{%"
	.ascii	"s}\"', grp.name, grp.name, grp.uuid)\012_p('EndProj"
	.ascii	"ect')\012end\012    \012function sln2005.importproj"
	.ascii	"ect(iprj)\012_p('Project(\"{%s}\") = \"%s\", \"%s\""
	.ascii	", \"{%s}\"', vstudio.tool(iprj), path.getbasenam"
	.ascii	"e(iprj.location), iprj.relpath, iprj.uuid)\012_p('E"
	.ascii	"ndProject')\012end\012function sln2005.projectdepen"
	.ascii	"dencies(prj)\012local deps = premake.getdependencie"
	.ascii	"s(prj)\012if #deps > 0 then\012local function compa"
	.ascii	"reuuid(a, b) return a.uuid < b.uuid end\012table.so"
	.ascii	"rt(deps, compareuuid)\012_p('\\tProjectSection(Proj"
	.ascii	"ectDependencies) = postProject')\012for _, dep in i"
	.ascii	"pairs(deps) do\012_p('\\t\\t{%s} = {%s}', dep.uuid,"
	.ascii	" dep.uuid)\012end\012_p('\\tEndProjectSection')\012"
	.ascii	"end\012end\012function sln2005.platforms(sln)\012_p"
	.ascii	"('\\tGlobalSection(SolutionConfigurationPlatforms) "
	.ascii	"= preSolution')\012for _, cfg in ipairs(sln.vstudio"
	.ascii	"_configs) do\012_p('\\t\\t%s = %s', cfg.name, cfg.n"
	.ascii	"ame)\012end\012_p('\\tEndGlobalSection')\012end\012"
	.ascii	"function sln2005.project_platform(prj, sln)\012for "
	.ascii	"_, cfg in ipairs(sln.vstudio_configs) do\012local m"
	.ascii	"apped\012local buildfor\012if premake.isdotnetproje"
	.ascii	"ct(prj) then\012buildfor = \"x64\"\012mapped = \"An"
	.ascii	"y CPU\"\012elseif prj.flags and prj.flags.Managed t"
	.ascii	"hen\012mapped = \"x64\"\012else\012if cfg.platform "
	.ascii	"== \"Any CPU\" or cfg.platform == \"Mixed Platforms"
	.ascii	"\" then\012mapped = sln.vstudio_configs[3].platform"
	.ascii	"\012else\012mapped = cfg.platform\012end\012end\012"
	.ascii	"local build_project = true\012if prj.solution ~= ni"
	.ascii	"l then\012    build_project = premake.getconfig(prj"
	.ascii	", cfg.src_buildcfg, cfg.src_platform).build\012end\012"
	.ascii	"_p('\\t\\t{%s}.%s.ActiveCfg = %s|%s', prj.uuid, cfg"
	.ascii	".name, cfg.buildcfg, mapped)\012if build_project th"
	.ascii	"en\012    if mapped == cfg.platform or cfg.platform"
	.ascii	" == \"Mixed Platforms\" or buildfor == cfg.platform"
	.ascii	" then\012    _p('\\t\\t{%s}.%s.Build.0 = %s|%s',  p"
	.ascii	"rj.uuid, cfg.name, cfg.buildcfg, mapped)\012    end"
	.ascii	"\012    if premake.vstudio.iswinrt() and prj.kind ="
	.ascii	"= \"WindowedApp\" then\012       _p('\\t\\t{%s}.%s."
	.ascii	"Deploy.0 = %s|%s',  prj.uuid, cfg.name, cfg.buildcf"
	.ascii	"g, mapped)\012    end\012end\012end\012end\012funct"
	.ascii	"ion sln2005.project_platforms(sln)\012_p('\\tGlobal"
	.ascii	"Section(ProjectConfigurationPlatforms) = postSoluti"
	.ascii	"on')\012for prj in premake.solution.eachproject(sln"
	.ascii	") do\012sln2005.project_platform(prj, sln)\012end\012"
	.ascii	"for _,iprj in ipairs(sln.importedprojects) do\012sl"
	.ascii	"n2005.project_platform(iprj, sln)\012end\012_p('\\t"
	.ascii	"EndGlobalSection')\012end\012function sln2005.prope"
	.ascii	"rties(sln)\012_p('\\tGlob"
	.ascii	"alSection(SolutionProperties) = preSolution')\012_p"
	.ascii	"('\\t\\tHideSolutionNode = FALSE')\012_p('\\tEndGlo"
	.ascii	"balSection')\012end\012function sln2005.project_gro"
	.ascii	"ups(sln)\012_p('\\tGlobalSection(NestedProjects) = "
	.ascii	"preSolution')\012for grp in premake.solution.eachgr"
	.ascii	"oup(sln) do\012if grp.parent ~= nil then\012_p('\\t"
	.ascii	"\\t{%s} = {%s}', grp.uuid, grp.parent.uuid)\012end\012"
	.ascii	"end\012for prj in premake.solution.eachproject(sln)"
	.ascii	" do\012if prj.group ~= nil then\012_p('\\t\\t{%s} ="
	.ascii	" {%s}', prj.uuid, prj.group.uuid)\012end\012end\012"
	.ascii	"for _,iprj in ipairs(sln.importedprojects) do\012if"
	.ascii	" iprj.group ~= nil then\012_p('\\t\\t{%s} = {%s}', "
	.ascii	"iprj.uuid, iprj.group.uuid)\012end\012end\012      "
	.ascii	"  \012_p('\\tEndGlobalSection')\012end\000"
	.align	2
.LC41:
	.ascii	"premake.vstudio.vc2010 = { }\012local vc2010 = prem"
	.ascii	"ake.vstudio.vc2010\012local vstudio = premake.vstud"
	.ascii	"io\012local function vs2010_config(prj)\012for _, c"
	.ascii	"fginfo in ipairs(prj.solution.vstudio_configs) do\012"
	.ascii	"if cfginfo.src_platform == \"TegraAndroid\" then\012"
	.ascii	"_p(1,'<PropertyGroup Label=\"NsightTegraProject\">'"
	.ascii	")\012_p(2,'<NsightTegraProjectRevisionNumber>11</Ns"
	.ascii	"ightTegraProjectRevisionNumber>')\012_p(1,'</Proper"
	.ascii	"tyGroup>')\012break\012end\012end\012_p(1,'<ItemGro"
	.ascii	"up Label=\"ProjectConfigurations\">')\012for _, cfg"
	.ascii	"info in ipairs(prj.solution.vstudio_configs) do\012"
	.ascii	"_p(2,'<ProjectConfiguration Include=\"%s\">', prema"
	.ascii	"ke.esc(cfginfo.name))\012_p(3,'<Configuration>%s</C"
	.ascii	"onfiguration>',cfginfo.buildcfg)\012_p(3,'<Platform"
	.ascii	">%s</Platform>',cfginfo.platform)\012_p(2,'</Projec"
	.ascii	"tConfiguration>')\012end\012_p(1,'</ItemGroup>')\012"
	.ascii	"end\012local function vs2010_globals(prj)\012local "
	.ascii	"action = premake.action.current()\012_p(1,'<Propert"
	.ascii	"yGroup Label=\"Globals\">')\012_p(2, '<ProjectGuid>"
	.ascii	"{%s}</ProjectGuid>',prj.uuid)\012_p(2, '<RootNamesp"
	.ascii	"ace>%s</RootNamespace>',prj.name)\012if vstudio.sto"
	.ascii	"reapp ~= \"durango\" then\012local windowsTargetPla"
	.ascii	"tformVersion = prj.windowstargetplatformversion or "
	.ascii	"action.vstudio.windowsTargetPlatformVersion\012if w"
	.ascii	"indowsTargetPlatformVersion ~= nil then\012_p(2,'<W"
	.ascii	"indowsTargetPlatformVersion>%s</WindowsTargetPlatfo"
	.ascii	"rmVersion>',windowsTargetPlatformVersion)\012if win"
	.ascii	"dowsTargetPlatformVersion and string.startswith(win"
	.ascii	"dowsTargetPlatformVersion, \"10.\") then\012_p(2,'<"
	.ascii	"WindowsTargetPlatformMinVersion>%s</WindowsTargetPl"
	.ascii	"atformMinVersion>', prj.windowstargetplatformminver"
	.ascii	"sion or \"10.0.10240.0\")\012end\012end\012end\012i"
	.ascii	"f prj.flags and prj.flags.Managed then\012local fra"
	.ascii	"meworkVersion = prj.framework or \"4.0\"\012_p(2, '"
	.ascii	"<TargetFrameworkVersion>v%s</TargetFrameworkVersion"
	.ascii	">', frameworkVersion)\012_p(2, '<Keyword>ManagedCPr"
	.ascii	"oj</Keyword>')\012elseif vstudio.iswinrt() then\012"
	.ascii	"_p(2, '<DefaultLanguage>en-US</DefaultLanguage>')\012"
	.ascii	"if vstudio.storeapp == \"durango\" then\012_p(2, '<"
	.ascii	"Keyword>Win32Proj</Keyword>')\012_p(2, '<Applicatio"
	.ascii	"nEnvironment>title</ApplicationEnvironment>')\012_p"
	.ascii	"(2, '<MinimumVisualStudioVersion>14.0</MinimumVisua"
	.ascii	"lStu"
	.ascii	"dioVersion>')\012_p(2, '<TargetRuntime>Native</Targ"
	.ascii	"etRuntime>')\012else\012_p(2, '<AppContainerApplica"
	.ascii	"tion>true</AppContainerApplication>')\012_p(2, '<Mi"
	.ascii	"nimumVisualStudioVersion>12.0</MinimumVisualStudioV"
	.ascii	"ersion>')\012_p(2, '<ApplicationType>Windows Store<"
	.ascii	"/ApplicationType>')\012_p(2, '<ApplicationTypeRevis"
	.ascii	"ion>%s</ApplicationTypeRevision>', vstudio.storeapp"
	.ascii	")\012end\012else\012_p(2, '<Keyword>Win32Proj</Keyw"
	.ascii	"ord>')\012end\012if not vstudio.xpwarning then\012_"
	.ascii	"p(2, '<XPDeprecationWarning>false</XPDeprecationWar"
	.ascii	"ning>')\012end\012_p(1,'</PropertyGroup>')\012end\012"
	.ascii	"function vc2010.config_type(config)\012local t =\012"
	.ascii	"{\012SharedLib = \"DynamicLibrary\",\012StaticLib ="
	.ascii	" \"StaticLibrary\",\012ConsoleApp = \"Application\""
	.ascii	",\012WindowedApp = \"Application\"\012}\012return t"
	.ascii	"[config.kind]\012end\012local function if_config_an"
	.ascii	"d_platform()\012return 'Condition=\"\\'$(Configurat"
	.ascii	"ion)|$(Platform)\\'==\\'%s\\'\"'\012end\012local fu"
	.ascii	"nction optimisation(cfg)\012local result = \"Disabl"
	.ascii	"ed\"\012for _, value in ipairs(cfg.flags) do\012if "
	.ascii	"(value == \"Optimize\") then\012result = \"Full\"\012"
	.ascii	"elseif (value == \"OptimizeSize\") then\012result ="
	.ascii	" \"MinSpace\"\012elseif (value == \"OptimizeSpeed\""
	.ascii	") then\012result = \"MaxSpeed\"\012end\012end\012re"
	.ascii	"turn result\012end\012function vc2010.configuration"
	.ascii	"PropertyGroup(cfg, cfginfo)\012_p(1, '<PropertyGrou"
	.ascii	"p '..if_config_and_platform() ..' Label=\"Configura"
	.ascii	"tion\">'\012, premake.esc(cfginfo.name))\012local i"
	.ascii	"s2019 = premake.action.current() == premake.action."
	.ascii	"get(\"vs2019\")\012if is2019 then\012    _p(2, '<VC"
	.ascii	"ProjectVersion>%s</VCProjectVersion>', action.vstud"
	.ascii	"io.toolsVersion)\012if cfg.flags.UnitySupport then\012"
	.ascii	"    _p(2, '<EnableUnitySupport>true</EnableUnitySup"
	.ascii	"port>')\012end\012end\012_p(2, '<ConfigurationType>"
	.ascii	"%s</ConfigurationType>', vc2010.config_type(cfg))\012"
	.ascii	"_p(2, '<UseDebugLibraries>%s</UseDebugLibraries>', "
	.ascii	"iif(optimisation(cfg) == \"Disabled\",\"true\",\"fa"
	.ascii	"lse\"))\012_p(2, '<PlatformToolset>%s</PlatformTool"
	.ascii	"set>',     premake.vstudio.toolset)\012if os.is64bi"
	.ascii	"t() then\012_p(2, '<PreferredToolArchitecture>x64</"
	.ascii	"PreferredToolArchitecture>')\012end\012if cfg.flags"
	.ascii	".MFC then\012_p(2,'<UseOfMfc>%s</UseOfMfc>', iif(cf"
	.ascii	"g.flags.StaticRuntime, \"Static\", \"Dynamic\"))\012"
	.ascii	"end\012if cfg.flags.A"
	.ascii	"TL or cfg.flags.StaticATL then\012_p(2,'<UseOfAtl>%"
	.ascii	"s</UseOfAtl>', iif(cfg.flags.StaticATL, \"Static\","
	.ascii	" \"Dynamic\"))\012end\012if cfg.flags.Unicode then\012"
	.ascii	"_p(2,'<CharacterSet>Unicode</CharacterSet>')\012end"
	.ascii	"\012if cfg.flags.Managed then\012_p(2,'<CLRSupport>"
	.ascii	"true</CLRSupport>')\012end\012if cfg.platform == \""
	.ascii	"TegraAndroid\" then\012if cfg.androidtargetapi then"
	.ascii	"\012_p(2,'<AndroidTargetAPI>android-%s</AndroidTarg"
	.ascii	"etAPI>', cfg.androidtargetapi)\012end\012if cfg.and"
	.ascii	"roidminapi then\012_p(2,'<AndroidMinAPI>android-%s<"
	.ascii	"/AndroidMinAPI>', cfg.androidminapi)\012end\012if c"
	.ascii	"fg.androidarch then\012_p(2,'<AndroidArch>%s</Andro"
	.ascii	"idArch>', cfg.androidarch)\012end\012if cfg.android"
	.ascii	"ndktoolchainversion then\012_p(2,'<NdkToolchainVers"
	.ascii	"ion>%s</NdkToolchainVersion>', cfg.androidndktoolch"
	.ascii	"ainversion)\012end\012if cfg.androidstltype then\012"
	.ascii	"_p(2,'<AndroidStlType>%s</AndroidStlType>', cfg.and"
	.ascii	"roidstltype)\012end\012end\012if cfg.platform == \""
	.ascii	"NX32\" or cfg.platform == \"NX64\" then\012_p(2,'<N"
	.ascii	"intendoSdkRoot>$(NINTENDO_SDK_ROOT)\\\\</NintendoSd"
	.ascii	"kRoot>')\012_p(2,'<NintendoSdkSpec>NX</NintendoSdkS"
	.ascii	"pec>')\012if premake.config.isdebugbuild(cfg) then\012"
	.ascii	"_p(2,'<NintendoSdkBuildType>Debug</NintendoSdkBuild"
	.ascii	"Type>')\012else\012_p(2,'<NintendoSdkBuildType>Rele"
	.ascii	"ase</NintendoSdkBuildType>')\012end\012end\012if cf"
	.ascii	"g.flags.Symbols and (premake.action.current() == pr"
	.ascii	"emake.action.get(\"vs2017\") or is2019) then\012_p("
	.ascii	"2, '<DebugSymbols>true</DebugSymbols>')\012end\012_"
	.ascii	"p(1,'</PropertyGroup>')\012end\012local function im"
	.ascii	"port_props(prj)\012for _, cfginfo in ipairs(prj.sol"
	.ascii	"ution.vstudio_configs) do\012local cfg = premake.ge"
	.ascii	"tconfig(prj, cfginfo.src_buildcfg, cfginfo.src_plat"
	.ascii	"form)\012_p(1,'<ImportGroup '..if_config_and_platfo"
	.ascii	"rm() ..' Label=\"PropertySheets\">'\012,premake.esc"
	.ascii	"(cfginfo.name))\012_p(2,'<Import Project=\"$(UserRo"
	.ascii	"otDir)\\\\Microsoft.Cpp.$(Platform).user.props\" Co"
	.ascii	"ndition=\"exists(\\'$(UserRootDir)\\\\Microsoft.Cpp"
	.ascii	".$(Platform).user.props\\')\" Label=\"LocalAppDataP"
	.ascii	"latform\" />')\012if #cfg.propertysheets > 0 then\012"
	.ascii	"local dirs = cfg.propertysheets\012for _, dir in ip"
	.ascii	"airs(dirs) do\012_p(2,'<Import Project=\"%s\" />', "
	.ascii	"path.translate(dir))\012end\012end\012_p(1,'</Impor"
	.ascii	"tGroup>')\012end\012end\012local function ad"
	.ascii	"d_trailing_backslash(dir)\012if dir:len() > 0 and d"
	.ascii	"ir:sub(-1) ~= \"\\\\\" then\012return dir..\"\\\\\""
	.ascii	"\012end\012return dir\012end\012function vc2010.out"
	.ascii	"putProperties(prj)\012for _, cfginfo in ipairs(prj."
	.ascii	"solution.vstudio_configs) do\012local cfg = premake"
	.ascii	".getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_p"
	.ascii	"latform)\012local target = cfg.buildtarget\012local"
	.ascii	" outdir = add_trailing_backslash(target.directory)\012"
	.ascii	"local intdir = add_trailing_backslash(iif(action.vs"
	.ascii	"tudio.intDirAbsolute\012, path.translate(\012  path"
	.ascii	".join(prj.solution.location, cfg.objectsdir)\012, '"
	.ascii	"\\\\')\012, cfg.objectsdir\012))\012_p(1,'<Property"
	.ascii	"Group '..if_config_and_platform() ..'>', premake.es"
	.ascii	"c(cfginfo.name))\012_p(2,'<OutDir>%s</OutDir>', iif"
	.ascii	"(outdir:len() > 0, premake.esc(outdir), \".\\\\\"))"
	.ascii	"\012if cfg.platform == \"Xbox360\" then\012_p(2,'<O"
	.ascii	"utputFile>$(OutDir)%s</OutputFile>', premake.esc(ta"
	.ascii	"rget.name))\012end\012_p(2,'<IntDir>%s</IntDir>', p"
	.ascii	"remake.esc(intdir))\012_p(2,'<TargetName>%s</Target"
	.ascii	"Name>', premake.esc(path.getbasename(target.name)))"
	.ascii	"\012_p(2,'<TargetExt>%s</TargetExt>', premake.esc(p"
	.ascii	"ath.getextension(target.name)))\012if cfg.kind == \""
	.ascii	"SharedLib\" then\012local ignore = (cfg.flags.NoImp"
	.ascii	"ortLib ~= nil)\012_p(2,'<IgnoreImportLibrary>%s</Ig"
	.ascii	"noreImportLibrary>', tostring(ignore))\012end\012if"
	.ascii	" cfg.platform == \"Durango\" then\012_p(2, '<Refere"
	.ascii	"ncePath>$(Console_SdkLibPath);$(Console_SdkWindowsM"
	.ascii	"etadataPath)</ReferencePath>')\012_p(2, '<LibraryPa"
	.ascii	"th>$(Console_SdkLibPath)</LibraryPath>')\012_p(2, '"
	.ascii	"<LibraryWPath>$(Console_SdkLibPath);$(Console_SdkWi"
	.ascii	"ndowsMetadataPath)</LibraryWPath>')\012_p(2, '<Incl"
	.ascii	"udePath>$(Console_SdkIncludeRoot)</IncludePath>')\012"
	.ascii	"_p(2, '<ExecutablePath>$(Console_SdkRoot)bin;$(VCIn"
	.ascii	"stallDir)bin\\\\x86_amd64;$(VCInstallDir)bin;$(Wind"
	.ascii	"owsSDK_ExecutablePath_x86);$(VSInstallDir)Common7\\"
	.ascii	"\\Tools\\\\bin;$(VSInstallDir)Common7\\\\tools;$(VS"
	.ascii	"InstallDir)Common7\\\\ide;$(ProgramFiles)\\\\HTML H"
	.ascii	"elp Workshop;$(MSBuildToolsPath32);$(FxCopDir);$(PA"
	.ascii	"TH);</ExecutablePath>')\012if cfg.imagepath then\012"
	.ascii	"_p(2, '<LayoutDir>%s</LayoutDir>', cfg.imagepath)\012"
	.ascii	"else\012_p(2, '<LayoutDir>%s</LayoutDir>', prj.name"
	.ascii	")\012end\012if cfg.pullmappingfile ~= nil then\012_"
	.ascii	"p(2,"
	.ascii	"'<PullMappingFile>%s</PullMappingFile>', premake.es"
	.ascii	"c(cfg.pullmappingfile))\012end\012_p(2, '<LayoutExt"
	.ascii	"ensionFilter>*.pdb;*.ilk;*.exp;*.lib;*.winmd;*.appx"
	.ascii	"recipe;*.pri;*.idb</LayoutExtensionFilter>')\012_p("
	.ascii	"2, '<IsolateConfigurationsOnDeploy>true</IsolateCon"
	.ascii	"figurationsOnDeploy>')\012end\012if cfg.kind ~= \"S"
	.ascii	"taticLib\" then\012_p(2,'<LinkIncremental>%s</LinkI"
	.ascii	"ncremental>', tostring(premake.config.isincremental"
	.ascii	"link(cfg)))\012end\012if cfg.applicationdatadir ~= "
	.ascii	"nil then\012_p(2,'<ApplicationDataDir>%s</Applicati"
	.ascii	"onDataDir>', premake.esc(cfg.applicationdatadir))\012"
	.ascii	"end\012if cfg.flags.NoManifest then\012_p(2,'<Gener"
	.ascii	"ateManifest>false</GenerateManifest>')\012end\012_p"
	.ascii	"(1,'</PropertyGroup>')\012end\012end\012local funct"
	.ascii	"ion runtime(cfg)\012local runtime\012local flags = "
	.ascii	"cfg.flags\012if premake.config.isdebugbuild(cfg) th"
	.ascii	"en\012runtime = iif(flags.StaticRuntime and not fla"
	.ascii	"gs.Managed, \"MultiThreadedDebug\", \"MultiThreaded"
	.ascii	"DebugDLL\")\012else\012runtime = iif(flags.StaticRu"
	.ascii	"ntime and not flags.Managed, \"MultiThreaded\", \"M"
	.ascii	"ultiThreadedDLL\")\012end\012return runtime\012end\012"
	.ascii	"local function precompiled_header(cfg)\012      if "
	.ascii	"not cfg.flags.NoPCH and cfg.pchheader then\012_p(3,"
	.ascii	"'<PrecompiledHeader>Use</PrecompiledHeader>')\012_p"
	.ascii	"(3,'<PrecompiledHeaderFile>%s</PrecompiledHeaderFil"
	.ascii	"e>', cfg.pchheader)\012else\012_p(3,'<PrecompiledHe"
	.ascii	"ader></PrecompiledHeader>')\012end\012end\012local "
	.ascii	"function preprocessor(indent,cfg,escape)\012if #cfg"
	.ascii	".defines > 0 then\012local defines = table.concat(c"
	.ascii	"fg.defines, \";\")\012if escape then\012defines = d"
	.ascii	"efines:gsub('\"', '\\\\\"')\012end\012local isPrepr"
	.ascii	"ocessorDefinitionPresent = string.find(defines, \"%"
	.ascii	"%%(PreprocessorDefinitions%)\")\012if isPreprocesso"
	.ascii	"rDefinitionPresent then\012_p(indent,'<Preprocessor"
	.ascii	"Definitions>%s</PreprocessorDefinitions>'\012,prema"
	.ascii	"ke.esc(defines))\012else\012_p(indent,'<Preprocesso"
	.ascii	"rDefinitions>%s;%%(PreprocessorDefinitions)</Prepro"
	.ascii	"cessorDefinitions>'\012,premake.esc(defines))\012en"
	.ascii	"d\012else\012_p(indent,'<PreprocessorDefinitions></"
	.ascii	"PreprocessorDefinitions>')\012end\012end\012local f"
	.ascii	"unction include_dirs(indent,cfg)\012local includedi"
	.ascii	"rs = table.join(cfg.userincludedirs, cfg.includedir"
	.ascii	"s, cfg.systemincludedirs)\012if #inc"
	.ascii	"ludedirs> 0 then\012_p(indent,'<AdditionalIncludeDi"
	.ascii	"rectories>%s;%%(AdditionalIncludeDirectories)</Addi"
	.ascii	"tionalIncludeDirectories>'\012,premake.esc(path.tra"
	.ascii	"nslate(table.concat(includedirs, \";\"), '\\\\')))\012"
	.ascii	"end\012end\012local function using_dirs(indent,cfg)"
	.ascii	"\012if #cfg.usingdirs > 0 then\012_p(indent,'<Addit"
	.ascii	"ionalUsingDirectories>%s;%%(AdditionalUsingDirector"
	.ascii	"ies)</AdditionalUsingDirectories>'\012,premake.esc("
	.ascii	"path.translate(table.concat(cfg.usingdirs, \";\"), "
	.ascii	"'\\\\')))\012end\012end\012local function resource_"
	.ascii	"compile(cfg)\012_p(2,'<ResourceCompile>')\012prepro"
	.ascii	"cessor(3,cfg,true)\012include_dirs(3,cfg)\012_p(2,'"
	.ascii	"</ResourceCompile>')\012end\012local function cppst"
	.ascii	"andard_vs2017_or_2019(cfg)\012if cfg.flags.CppLates"
	.ascii	"t then\012_p(3, '<LanguageStandard>stdcpplatest</La"
	.ascii	"nguageStandard>')\012_p(3, '<EnableModules>true</En"
	.ascii	"ableModules>')\012elseif cfg.flags.Cpp17 then\012_p"
	.ascii	"(3, '<LanguageStandard>stdcpp17</LanguageStandard>'"
	.ascii	")\012elseif cfg.flags.Cpp14 then\012_p(3, '<Languag"
	.ascii	"eStandard>stdcpp14</LanguageStandard>')\012end\012e"
	.ascii	"nd\012local function exceptions(cfg)\012if cfg.plat"
	.ascii	"form == \"Orbis\" then\012if cfg.flags.NoExceptions"
	.ascii	" then\012_p(3, '<CppExceptions>false</CppExceptions"
	.ascii	">')\012end\012elseif cfg.platform == \"TegraAndroid"
	.ascii	"\" then\012if cfg.flags.NoExceptions then\012_p(3, "
	.ascii	"'<GccExceptionHandling>false</GccExceptionHandling>"
	.ascii	"')\012end\012else\012if cfg.flags.NoExceptions then"
	.ascii	"\012_p(3, '<ExceptionHandling>false</ExceptionHandl"
	.ascii	"ing>')\012elseif cfg.flags.SEH then\012_p(3, '<Exce"
	.ascii	"ptionHandling>Async</ExceptionHandling>')\012end\012"
	.ascii	"end\012end\012local function rtti(cfg)\012if cfg.fl"
	.ascii	"ags.NoRTTI and not cfg.flags.Managed then\012_p(3,'"
	.ascii	"<RuntimeTypeInfo>false</RuntimeTypeInfo>')\012end\012"
	.ascii	"end\012local function calling_convention(cfg)\012if"
	.ascii	" cfg.flags.FastCall then\012_p(3,'<CallingConventio"
	.ascii	"n>FastCall</CallingConvention>')\012elseif cfg.flag"
	.ascii	"s.StdCall then\012_p(3,'<CallingConvention>StdCall<"
	.ascii	"/CallingConvention>')\012end\012end\012local functi"
	.ascii	"on wchar_t_builtin(cfg)\012if cfg.flags.NativeWChar"
	.ascii	" then\012_p(3,'<TreatWChar_tAsBuiltInType>true</Tre"
	.ascii	"atWChar_tAsBuiltInType>')\012elseif cfg.flags.NoNat"
	.ascii	"iveWChar then\012_p(3,'<TreatWChar_tAsBuiltInType>f"
	.ascii	"alse</TreatWChar_tAsBuiltInType>')\012end\012end\012"
	.ascii	"l"
	.ascii	"ocal function sse(cfg)\012if cfg.flags.EnableSSE th"
	.ascii	"en\012_p(3, '<EnableEnhancedInstructionSet>Streamin"
	.ascii	"gSIMDExtensions</EnableEnhancedInstructionSet>')\012"
	.ascii	"elseif cfg.flags.EnableSSE2 then\012_p(3, '<EnableE"
	.ascii	"nhancedInstructionSet>StreamingSIMDExtensions2</Ena"
	.ascii	"bleEnhancedInstructionSet>')\012elseif cfg.flags.En"
	.ascii	"ableAVX then\012_p(3, '<EnableEnhancedInstructionSe"
	.ascii	"t>AdvancedVectorExtensions</EnableEnhancedInstructi"
	.ascii	"onSet>')\012elseif cfg.flags.EnableAVX2 then\012_p("
	.ascii	"3, '<EnableEnhancedInstructionSet>AdvancedVectorExt"
	.ascii	"ensions2</EnableEnhancedInstructionSet>')\012end\012"
	.ascii	"end\012local function floating_point(cfg)\012if cfg"
	.ascii	".platform == \"Orbis\" then\012if cfg.flags.FloatFa"
	.ascii	"st then\012_p(3,'<FastMath>true</FastMath>')\012end"
	.ascii	"\012elseif cfg.platform == \"TegraAndroid\" then\012"
	.ascii	"else\012if cfg.flags.FloatFast then\012_p(3,'<Float"
	.ascii	"ingPointModel>Fast</FloatingPointModel>')\012elseif"
	.ascii	" cfg.flags.FloatStrict and not cfg.flags.Managed th"
	.ascii	"en\012_p(3,'<FloatingPointModel>Strict</FloatingPoi"
	.ascii	"ntModel>')\012end\012end\012end\012local function d"
	.ascii	"ebug_info(cfg)\012local debug_info = ''\012if cfg.f"
	.ascii	"lags.Symbols then\012if cfg.flags.C7DebugInfo then\012"
	.ascii	"debug_info = \"OldStyle\"\012elseif (action.vstudio"
	.ascii	".supports64bitEditContinue == false and cfg.platfor"
	.ascii	"m == \"x64\")\012or not premake.config.iseditandcon"
	.ascii	"tinue(cfg)\012then\012debug_info = \"ProgramDatabas"
	.ascii	"e\"\012else\012debug_info = \"EditAndContinue\"\012"
	.ascii	"end\012end\012_p(3,'<DebugInformationFormat>%s</Deb"
	.ascii	"ugInformationFormat>',debug_info)\012end\012local f"
	.ascii	"unction minimal_build(cfg)\012if premake.config.isd"
	.ascii	"ebugbuild(cfg) and cfg.flags.EnableMinimalRebuild t"
	.ascii	"hen\012_p(3,'<MinimalRebuild>true</MinimalRebuild>'"
	.ascii	")\012else\012_p(3,'<MinimalRebuild>false</MinimalRe"
	.ascii	"build>')\012end\012end\012local function compile_la"
	.ascii	"nguage(cfg)\012if cfg.options.ForceCPP then\012_p(3"
	.ascii	",'<CompileAs>CompileAsCpp</CompileAs>')\012else\012"
	.ascii	"if cfg.language == \"C\" then\012_p(3,'<CompileAs>C"
	.ascii	"ompileAsC</CompileAs>')\012end\012end\012end\012loc"
	.ascii	"al function forcedinclude_files(indent,cfg)\012if #"
	.ascii	"cfg.forcedincludes > 0 then\012_p(indent,'<ForcedIn"
	.ascii	"cludeFiles>%s</ForcedIncludeFiles>'\012,premake.esc"
	.ascii	"(path.translate(table.concat(cfg.forcedincludes, \""
	.ascii	";\"), '\\\\')))\012end\012end\012local function vs1"
	.ascii	"0_clc"
	.ascii	"ompile(cfg)\012_p(2,'<ClCompile>')\012local unsigne"
	.ascii	"dChar = \"/J \"\012local buildoptions = cfg.buildop"
	.ascii	"tions\012if cfg.platform == \"Orbis\" then\012unsig"
	.ascii	"nedChar = \"-funsigned-char \";\012_p(3,'<GenerateD"
	.ascii	"ebugInformation>%s</GenerateDebugInformation>', tos"
	.ascii	"tring(cfg.flags.Symbols ~= nil))\012end\012if cfg.l"
	.ascii	"anguage == \"C\" and not cfg.options.ForceCPP then\012"
	.ascii	"buildoptions = table.join(buildoptions, cfg.buildop"
	.ascii	"tions_c)\012else\012buildoptions = table.join(build"
	.ascii	"options, cfg.buildoptions_cpp)\012end\012_p(3,'<Add"
	.ascii	"itionalOptions>%s %s%%(AdditionalOptions)</Addition"
	.ascii	"alOptions>'\012, table.concat(premake.esc(buildopti"
	.ascii	"ons), \" \")\012, iif(cfg.flags.UnsignedChar and cf"
	.ascii	"g.platform ~= \"TegraAndroid\", unsignedChar, \" \""
	.ascii	")\012)\012if cfg.platform == \"TegraAndroid\" then\012"
	.ascii	"_p(3,'<SignedChar>%s</SignedChar>', tostring(cfg.fl"
	.ascii	"ags.UnsignedChar == nil))\012_p(3,'<GenerateDebugIn"
	.ascii	"formation>%s</GenerateDebugInformation>', tostring("
	.ascii	"cfg.flags.Symbols ~= nil))\012if cfg.androidcppstan"
	.ascii	"dard then\012_p(3,'<CppLanguageStandard>%s</CppLang"
	.ascii	"uageStandard>', cfg.androidcppstandard)\012end\012e"
	.ascii	"nd\012if cfg.platform == \"Orbis\" then\012local op"
	.ascii	"t = optimisation(cfg)\012if opt == \"Disabled\" the"
	.ascii	"n\012_p(3,'<OptimizationLevel>Level0</OptimizationL"
	.ascii	"evel>')\012elseif opt == \"MinSpace\" then\012_p(3,"
	.ascii	"'<OptimizationLevel>Levelz</OptimizationLevel>') --"
	.ascii	" Oz is more aggressive than Os\012elseif opt == \"M"
	.ascii	"axSpeed\" then\012_p(3,'<OptimizationLevel>Level3</"
	.ascii	"OptimizationLevel>')\012else\012_p(3,'<Optimization"
	.ascii	"Level>Level2</OptimizationLevel>')\012end\012elseif"
	.ascii	" cfg.platform == \"TegraAndroid\" then\012local opt"
	.ascii	" = optimisation(cfg)\012if opt == \"Disabled\" then"
	.ascii	"\012_p(3,'<OptimizationLevel>O0</OptimizationLevel>"
	.ascii	"')\012elseif opt == \"MinSpace\" then\012_p(3,'<Opt"
	.ascii	"imizationLevel>Os</OptimizationLevel>')\012elseif o"
	.ascii	"pt == \"MaxSpeed\" then\012_p(3,'<OptimizationLevel"
	.ascii	">O3</OptimizationLevel>')\012else\012_p(3,'<Optimiz"
	.ascii	"ationLevel>O2</OptimizationLevel>')\012end\012else\012"
	.ascii	"_p(3,'<Optimization>%s</Optimization>', optimisatio"
	.ascii	"n(cfg))\012end\012include_dirs(3, cfg)\012using_dir"
	.ascii	"s(3, cfg)\012preprocessor(3, cfg)\012minimal_build("
	.ascii	"cfg)\012if premake.config.isoptimizedbuild(cfg.flag"
	.ascii	"s) then\012if cfg.flags.NoOptimizeLink and "
	.ascii	"cfg.flags.NoEditAndContinue then\012_p(3, '<StringP"
	.ascii	"ooling>false</StringPooling>')\012_p(3, '<FunctionL"
	.ascii	"evelLinking>false</FunctionLevelLinking>')\012else\012"
	.ascii	"_p(3, '<StringPooling>true</StringPooling>')\012_p("
	.ascii	"3, '<FunctionLevelLinking>true</FunctionLevelLinkin"
	.ascii	"g>')\012end\012else\012_p(3, '<FunctionLevelLinking"
	.ascii	">true</FunctionLevelLinking>')\012if cfg.flags.NoRu"
	.ascii	"ntimeChecks then\012_p(3, '<BasicRuntimeChecks>Defa"
	.ascii	"ult</BasicRuntimeChecks>')\012elseif not cfg.flags."
	.ascii	"Managed then\012_p(3, '<BasicRuntimeChecks>EnableFa"
	.ascii	"stChecks</BasicRuntimeChecks>')\012end\012if cfg.fl"
	.ascii	"ags.ExtraWarnings then\012end\012end\012if cfg.plat"
	.ascii	"form == \"Durango\" or cfg.flags.NoWinRT then\012_p"
	.ascii	"(3, '<CompileAsWinRT>false</CompileAsWinRT>')\012en"
	.ascii	"d\012_p(3, '<RuntimeLibrary>%s</RuntimeLibrary>', r"
	.ascii	"untime(cfg))\012if cfg.flags.NoBufferSecurityCheck "
	.ascii	"then\012_p(3, '<BufferSecurityCheck>false</BufferSe"
	.ascii	"curityCheck>')\012end\012if not cfg.flags.NoMultiPr"
	.ascii	"ocessorCompilation and not cfg.flags.EnableMinimalR"
	.ascii	"ebuild then\012_p(3, '<MultiProcessorCompilation>tr"
	.ascii	"ue</MultiProcessorCompilation>')\012else\012_p(3, '"
	.ascii	"<MultiProcessorCompilation>false</MultiProcessorCom"
	.ascii	"pilation>')\012end\012precompiled_header(cfg)\012if"
	.ascii	" cfg.platform == \"Orbis\" then\012if cfg.flags.Ped"
	.ascii	"anticWarnings then\012_p(3, '<Warnings>MoreWarnings"
	.ascii	"</Warnings>')\012_p(3, '<ExtraWarnings>true</ExtraW"
	.ascii	"arnings>')\012elseif cfg.flags.ExtraWarnings then\012"
	.ascii	"_p(3, '<Warnings>NormalWarnings</Warnings>')\012_p("
	.ascii	"3, '<ExtraWarnings>true</ExtraWarnings>')\012elseif"
	.ascii	" cfg.flags.MinimumWarnings then\012_p(3, '<Warnings"
	.ascii	">WarningsOff</Warnings>')\012_p(3, '<ExtraWarnings>"
	.ascii	"false</ExtraWarnings>')\012else\012_p(3, '<Warnings"
	.ascii	">NormalWarnings</Warnings>')\012_p(3, '<ExtraWarnin"
	.ascii	"gs>false</ExtraWarnings>')\012end\012if cfg.flags.F"
	.ascii	"atalWarnings then\012_p(3, '<WarningsAsErrors>true<"
	.ascii	"/WarningsAsErrors>')\012end\012elseif cfg.platform "
	.ascii	"== \"TegraAndroid\" then\012if cfg.flags.PedanticWa"
	.ascii	"rnings or cfg.flags.ExtraWarnings then\012_p(3, '<W"
	.ascii	"arnings>AllWarnings</Warnings>')\012elseif cfg.flag"
	.ascii	"s.MinimumWarnings then\012_p(3, '<Warnings>DisableA"
	.ascii	"llWarnings</Warnings>')\012else\012_p(3, '<Warnings"
	.ascii	">NormalWarnings</Warnings>')\012end\012if cfg.flags"
	.ascii	".FatalWarnings then\012_p(3"
	.ascii	", '<WarningsAsErrors>true</WarningsAsErrors>')\012e"
	.ascii	"nd\012else\012if cfg.flags.PedanticWarnings then\012"
	.ascii	"_p(3, '<WarningLevel>EnableAllWarnings</WarningLeve"
	.ascii	"l>')\012elseif cfg.flags.ExtraWarnings then\012_p(3"
	.ascii	", '<WarningLevel>Level4</WarningLevel>')\012elseif "
	.ascii	"cfg.flags.MinimumWarnings then\012_p(3, '<WarningLe"
	.ascii	"vel>Level1</WarningLevel>')\012else\012_p(3 ,'<Warn"
	.ascii	"ingLevel>Level3</WarningLevel>')\012end\012end\012i"
	.ascii	"f cfg.flags.FatalWarnings then\012_p(3, '<TreatWarn"
	.ascii	"ingAsError>true</TreatWarningAsError>')\012end\012i"
	.ascii	"f premake.action.current() == premake.action.get(\""
	.ascii	"vs2017\") or\012   premake.action.current() == prem"
	.ascii	"ake.action.get(\"vs2019\") then\012cppstandard_vs20"
	.ascii	"17_or_2019(cfg)\012end\012exceptions(cfg)\012rtti(c"
	.ascii	"fg)\012calling_convention(cfg)\012wchar_t_builtin(c"
	.ascii	"fg)\012sse(cfg)\012floating_point(cfg)\012debug_inf"
	.ascii	"o(cfg)\012if cfg.flags.Symbols then\012if cfg.kind "
	.ascii	"== \"StaticLib\" then\012_p(3, '<ProgramDataBaseFil"
	.ascii	"eName>$(OutDir)%s.pdb</ProgramDataBaseFileName>'\012"
	.ascii	", path.getbasename(cfg.buildtarget.name)\012)\012el"
	.ascii	"se\012_p(3, '<ProgramDataBaseFileName>$(IntDir)%s.c"
	.ascii	"ompile.pdb</ProgramDataBaseFileName>'\012, path.get"
	.ascii	"basename(cfg.buildtarget.name)\012)\012end\012end\012"
	.ascii	"if cfg.flags.Hotpatchable then\012_p(3, '<CreateHot"
	.ascii	"patchableImage>true</CreateHotpatchableImage>')\012"
	.ascii	"end\012if cfg.flags.NoFramePointer then\012_p(3, '<"
	.ascii	"OmitFramePointers>true</OmitFramePointers>')\012end"
	.ascii	"\012if cfg.flags.UseFullPaths then\012_p(3, '<UseFu"
	.ascii	"llPaths>true</UseFullPaths>')\012end\012if cfg.flag"
	.ascii	"s.NoJMC then\012_p(3,'<SupportJustMyCode>false</Sup"
	.ascii	"portJustMyCode>' )\012end\012compile_language(cfg)\012"
	.ascii	"forcedinclude_files(3,cfg);\012if vstudio.diagforma"
	.ascii	"t then\012_p(3, '<DiagnosticsFormat>%s</Diagnostics"
	.ascii	"Format>', vstudio.diagformat)\012else\012_p(3, '<Di"
	.ascii	"agnosticsFormat>Caret</DiagnosticsFormat>')\012end\012"
	.ascii	"_p(2,'</ClCompile>')\012end\012local function event"
	.ascii	"_hooks(cfg)\012if #cfg.postbuildcommands> 0 then\012"
	.ascii	"    _p(2,'<PostBuildEvent>')\012_p(3,'<Command>%s</"
	.ascii	"Command>',premake.esc(table.implode(cfg.postbuildco"
	.ascii	"mmands, \"\", \"\", \"\\r\\n\")))\012_p(2,'</PostBu"
	.ascii	"ildEvent>')\012end\012if #cfg.prebuildcommands> 0 t"
	.ascii	"hen\012    _p(2,'<PreBuildEvent>')\012_p(3,'<Comman"
	.ascii	"d>%s</Command>',premake.esc(table.implode(cfg.prebu"
	.ascii	"ildcommands"
	.ascii	", \"\", \"\", \"\\r\\n\")))\012_p(2,'</PreBuildEven"
	.ascii	"t>')\012end\012if #cfg.prelinkcommands> 0 then\012 "
	.ascii	"   _p(2,'<PreLinkEvent>')\012_p(3,'<Command>%s</Com"
	.ascii	"mand>',premake.esc(table.implode(cfg.prelinkcommand"
	.ascii	"s, \"\", \"\", \"\\r\\n\")))\012_p(2,'</PreLinkEven"
	.ascii	"t>')\012end\012end\012local function additional_opt"
	.ascii	"ions(indent,cfg)\012if #cfg.linkoptions > 0 then\012"
	.ascii	"_p(indent,'<AdditionalOptions>%s %%(AdditionalOptio"
	.ascii	"ns)</AdditionalOptions>',\012table.concat(premake.e"
	.ascii	"sc(cfg.linkoptions), \" \"))\012end\012end\012local"
	.ascii	" function link_target_machine(index,cfg)\012local p"
	.ascii	"latforms = {x32 = 'MachineX86', x64 = 'MachineX64'}"
	.ascii	"\012if platforms[cfg.platform] then\012_p(index,'<T"
	.ascii	"argetMachine>%s</TargetMachine>', platforms[cfg.pla"
	.ascii	"tform])\012end\012end\012local function item_def_li"
	.ascii	"b(cfg)\012if cfg.kind == 'StaticLib' and cfg.platfo"
	.ascii	"rm ~= \"Xbox360\" then\012_p(1,'<Lib>')\012_p(2,'<O"
	.ascii	"utputFile>$(OutDir)%s</OutputFile>',cfg.buildtarget"
	.ascii	".name)\012additional_options(2,cfg)\012link_target_"
	.ascii	"machine(2,cfg)\012_p(1,'</Lib>')\012end\012end\012l"
	.ascii	"ocal function import_lib(cfg)\012if cfg.kind == \"S"
	.ascii	"haredLib\" then\012local implibname = cfg.linktarge"
	.ascii	"t.fullpath\012_p(3,'<ImportLibrary>%s</ImportLibrar"
	.ascii	"y>',iif(cfg.flags.NoImportLib, cfg.objectsdir .. \""
	.ascii	"\\\\\" .. path.getname(implibname), implibname))\012"
	.ascii	"end\012end\012local function hasmasmfiles(prj)\012l"
	.ascii	"ocal files = vc2010.getfilegroup(prj, \"MASM\")\012"
	.ascii	"return #files > 0\012end\012local function ismanage"
	.ascii	"dprj(prj, cfgname, pltname)\012local cfg = premake."
	.ascii	"getconfig(prj, cfgname, pltname)\012return cfg.flag"
	.ascii	"s.Managed == true\012end\012local function getcfgli"
	.ascii	"nks(cfg)\012local haswholearchive = #cfg.wholearchi"
	.ascii	"ve > 0\012local msvcnaming   = premake.getnamestyle"
	.ascii	"(cfg) == \"windows\"\012local iscppprj     = premak"
	.ascii	"e.iscppproject(cfg)\012local isnetprj     = premake"
	.ascii	".isdotnetproject(cfg)\012local linkobjs     = {}\012"
	.ascii	"local links        = iif(haswholearchive\012, prema"
	.ascii	"ke.getlinks(cfg, \"all\", \"object\")\012, premake."
	.ascii	"getlinks(cfg, \"system\", \"fullpath\")\012)\012for"
	.ascii	" _, link in ipairs(links) do\012local name      = n"
	.ascii	"il\012local directory = nil\012local whole     = ni"
	.ascii	"l\012if type(link) == \"table\" then\012if not isma"
	.ascii	"nagedprj(link.project, cfg.name, cfg.platform) then"
	.ascii	"\012name      = link.lin"
	.ascii	"ktarget.basename\012directory = path.rebase(link.li"
	.ascii	"nktarget.directory, link.location, cfg.location)\012"
	.ascii	"whole     = table.icontains(cfg.wholearchive, link."
	.ascii	"project.name)\012end\012else\012name      = link\012"
	.ascii	"whole     = table.icontains(cfg.wholearchive, link)"
	.ascii	"\012end\012if name then\012if haswholearchive and m"
	.ascii	"svcnaming then\012if iscppprj then\012name = name ."
	.ascii	". \".lib\"\012elseif isnetprj then\012name = name ."
	.ascii	". \".dll\"\012end\012end\012table.insert(linkobjs, "
	.ascii	"{name=name, directory=directory, wholearchive=whole"
	.ascii	"})\012end\012end\012return linkobjs\012end\012local"
	.ascii	" function vs10_masm(prj, cfg)\012if hasmasmfiles(pr"
	.ascii	"j) then\012_p(2, '<MASM>')\012_p(3,'<AdditionalOpti"
	.ascii	"ons>%s %%(AdditionalOptions)</AdditionalOptions>'\012"
	.ascii	", table.concat(premake.esc(table.join(cfg.buildopti"
	.ascii	"ons, cfg.buildoptions_asm)), \" \")\012)\012local i"
	.ascii	"ncludedirs = table.join(cfg.userincludedirs, cfg.in"
	.ascii	"cludedirs, cfg.systemincludedirs)\012if #includedir"
	.ascii	"s > 0 then\012_p(3, '<IncludePaths>%s;%%(IncludePat"
	.ascii	"hs)</IncludePaths>'\012, premake.esc(path.translate"
	.ascii	"(table.concat(includedirs, \";\"), '\\\\'))\012)\012"
	.ascii	"end\012local defines = table.join(cfg.defines)\012t"
	.ascii	"able.insertflat(defines, iif(premake.config.isdebug"
	.ascii	"build(cfg), \"_DEBUG\", {}))\012table.insert(define"
	.ascii	"s, iif(cfg.platform == \"x64\", \"_WIN64\", \"_WIN3"
	.ascii	"2\"))\012table.insert(defines, iif(prj.kind == \"Sh"
	.ascii	"aredLib\", \"_EXPORT=EXPORT\", \"_EXPORT=\"))\012_p"
	.ascii	"(3, '<PreprocessorDefinitions>%s;%%(PreprocessorDef"
	.ascii	"initions)</PreprocessorDefinitions>'\012, premake.e"
	.ascii	"sc(table.concat(defines, \";\"))\012)\012if cfg.fla"
	.ascii	"gs.FatalWarnings then\012_p(3,'<TreatWarningsAsErro"
	.ascii	"rs>true</TreatWarningsAsErrors>')\012end\012if cfg."
	.ascii	"flags.MinimumWarnings then\012_p(3,'<WarningLevel>0"
	.ascii	"</WarningLevel>')\012else\012_p(3,'<WarningLevel>3<"
	.ascii	"/WarningLevel>')\012end\012_p(2, '</MASM>')\012end\012"
	.ascii	"end\012local function additional_manifest(cfg)\012i"
	.ascii	"f(cfg.dpiawareness ~= nil) then\012_p(2,'<Manifest>"
	.ascii	"')\012if(cfg.dpiawareness == \"None\") then\012_p(3"
	.ascii	", '<EnableDpiAwareness>false</EnableDpiAwareness>')"
	.ascii	"\012end\012if(cfg.dpiawareness == \"High\") then\012"
	.ascii	"_p(3, '<EnableDpiAwareness>true</EnableDpiAwareness"
	.ascii	">')\012end\012if(cfg.dpiawareness == \"HighPerMonit"
	.ascii	"or\") then\012_p(3, '<EnableDpiAwareness>PerMonitor"
	.ascii	"HighDPIAware<"
	.ascii	"/EnableDpiAwareness>')\012end\012_p(2,'</Manifest>'"
	.ascii	")\012end\012end\012function vc2010.link(cfg)\012loc"
	.ascii	"al vs2017OrLater = premake.action.current() == prem"
	.ascii	"ake.action.get(\"vs2017\") or\012    premake.action"
	.ascii	".current() == premake.action.get(\"vs2019\")\012loc"
	.ascii	"al links  = getcfglinks(cfg)\012_p(2,'<Link>')\012_"
	.ascii	"p(3,'<SubSystem>%s</SubSystem>', iif(cfg.kind == \""
	.ascii	"ConsoleApp\", \"Console\", \"Windows\"))\012if vs20"
	.ascii	"17OrLater and cfg.flags.FullSymbols then\012_p(3,'<"
	.ascii	"GenerateDebugInformation>DebugFull</GenerateDebugIn"
	.ascii	"formation>')\012else\012_p(3,'<GenerateDebugInforma"
	.ascii	"tion>%s</GenerateDebugInformation>', tostring(cfg.f"
	.ascii	"lags.Symbols ~= nil))\012end\012if cfg.flags.Symbol"
	.ascii	"s then\012_p(3, '<ProgramDatabaseFile>$(OutDir)%s.p"
	.ascii	"db</ProgramDatabaseFile>'\012, path.getbasename(cfg"
	.ascii	".buildtarget.name)\012)\012end\012if premake.config"
	.ascii	".islinkeroptimizedbuild(cfg.flags) then\012if cfg.p"
	.ascii	"latform == \"Orbis\" then\012_p(3,'<DataStripping>S"
	.ascii	"tripFuncsAndData</DataStripping>')\012_p(3,'<Duplic"
	.ascii	"ateStripping>true</DuplicateStripping>')\012else\012"
	.ascii	"_p(3,'<EnableCOMDATFolding>true</EnableCOMDATFoldin"
	.ascii	"g>')\012_p(3,'<OptimizeReferences>true</OptimizeRef"
	.ascii	"erences>')\012end\012elseif cfg.platform == \"Orbis"
	.ascii	"\" and premake.config.iseditandcontinue(cfg) then\012"
	.ascii	"_p(3,'<EditAndContinue>true</EditAndContinue>')\012"
	.ascii	"end\012if cfg.finalizemetasource ~= nil then\012_p("
	.ascii	"3,'<FinalizeMetaSource>%s</FinalizeMetaSource>', pr"
	.ascii	"emake.esc(cfg.finalizemetasource))\012end\012if cfg"
	.ascii	".kind ~= 'StaticLib' then\012vc2010.additionalDepen"
	.ascii	"dencies(3, cfg, links)\012vc2010.additionalLibraryD"
	.ascii	"irectories(3, cfg, links)\012_p(3,'<OutputFile>$(Ou"
	.ascii	"tDir)%s</OutputFile>', cfg.buildtarget.name)\012if "
	.ascii	"vc2010.config_type(cfg) == 'Application' and not cf"
	.ascii	"g.flags.WinMain and not cfg.flags.Managed then\012i"
	.ascii	"f cfg.flags.Unicode then\012_p(3,'<EntryPointSymbol"
	.ascii	">wmainCRTStartup</EntryPointSymbol>')\012else\012_p"
	.ascii	"(3,'<EntryPointSymbol>mainCRTStartup</EntryPointSym"
	.ascii	"bol>')\012end\012end\012import_lib(cfg)\012local de"
	.ascii	"ffile = premake.findfile(cfg, \".def\")\012if deffi"
	.ascii	"le then\012_p(3,'<ModuleDefinitionFile>%s</ModuleDe"
	.ascii	"finitionFile>', deffile)\012end\012link_target_mach"
	.ascii	"ine(3,cfg)\012additional_options(3,cfg)\012if cfg.f"
	.ascii	"lags.NoWinMD and vstudio.iswin"
	.ascii	"rt() and prj.kind == \"WindowedApp\" then\012_p(3,'"
	.ascii	"<GenerateWindowsMetadata>false</GenerateWindowsMeta"
	.ascii	"data>' )\012end\012end\012if cfg.platform == \"Tegr"
	.ascii	"aAndroid\" then\012if cfg.androidlinker then\012_p("
	.ascii	"3,'<UseLinker>%s</UseLinker>',cfg.androidlinker)\012"
	.ascii	"end\012end\012if cfg.flags.Hotpatchable then\012_p("
	.ascii	"3, '<CreateHotPatchableImage>Enabled</CreateHotPatc"
	.ascii	"hableImage>')\012end\012if cfg.flags.GenerateMapFil"
	.ascii	"es then\012_p(3, '<GenerateMapFile>true</GenerateMa"
	.ascii	"pFile>')\012end\012_p(2,'</Link>')\012if #cfg.whole"
	.ascii	"archive > 0 then\012_p(2, '<ProjectReference>')\012"
	.ascii	"_p(3, '<LinkLibraryDependencies>false</LinkLibraryD"
	.ascii	"ependencies>')\012_p(2, '</ProjectReference>')\012e"
	.ascii	"nd\012end\012function vc2010.additionalLibraryDirec"
	.ascii	"tories(tab, cfg, links)\012local dirs = cfg.libdirs"
	.ascii	"\012for _, link in ipairs(links) do\012if link.dire"
	.ascii	"ctory and not table.icontains(dirs, link.directory)"
	.ascii	" then\012table.insert(dirs, link.directory)\012end\012"
	.ascii	"end\012_p(tab, '<AdditionalLibraryDirectories>%s;%%"
	.ascii	"(AdditionalLibraryDirectories)</AdditionalLibraryDi"
	.ascii	"rectories>'\012, premake.esc(path.translate(table.c"
	.ascii	"oncat(dirs, ';'), '\\\\'))\012)\012end\012function "
	.ascii	"vc2010.additionalDependencies(tab, cfg, links)\012i"
	.ascii	"f #links > 0 then\012local deps = \"\"\012if cfg.pl"
	.ascii	"atform == \"Orbis\" then\012local iswhole = false\012"
	.ascii	"for _, link in ipairs(links) do\012if link.wholearc"
	.ascii	"hive and not iswhole then\012deps = deps .. \"--who"
	.ascii	"le-archive;\"\012iswhole = true\012elseif not link."
	.ascii	"wholearchive and iswhole then\012deps = deps .. \"-"
	.ascii	"-no-whole-archive;\"\012iswhole = false\012end\012d"
	.ascii	"eps = deps .. \"-l\" .. link.name .. \";\"\012end\012"
	.ascii	"else\012for _, link in ipairs(links) do\012if link."
	.ascii	"wholearchive then\012deps = deps .. \"/WHOLEARCHIVE"
	.ascii	":\" .. link.name .. \";\"\012else\012deps = deps .."
	.ascii	" link.name .. \";\"\012end\012end\012end\012if cfg."
	.ascii	"platform == \"TegraAndroid\" then\012deps = \"-Wl,-"
	.ascii	"-start-group;\" .. deps .. \";-Wl,--end-group\"\012"
	.ascii	"end\012_p(tab, '<AdditionalDependencies>%s;%s</Addi"
	.ascii	"tionalDependencies>'\012, deps\012, iif(cfg.platfor"
	.ascii	"m == \"Durango\"\012, '%(XboxExtensionsDependencies"
	.ascii	")'\012, '%(AdditionalDependencies)'\012)\012)\012el"
	.ascii	"seif cfg.platform == \"Durango\" then\012_p(tab, '<"
	.ascii	"AdditionalDependencies>%%(XboxExtensionsDependencie"
	.ascii	"s)</AdditionalDependencies>')\012end\012end"
	.ascii	"\012function ant_build(prj, cfg)\012if cfg.platform"
	.ascii	" == \"TegraAndroid\" then\012local files = vc2010.g"
	.ascii	"etfilegroup(prj, \"AndroidBuild\")\012_p(2,'<AntBui"
	.ascii	"ld>')\012if #files > 0 then\012_p(3,'<AndroidManife"
	.ascii	"stLocation>%s</AndroidManifestLocation>',path.trans"
	.ascii	"late(files[1].name))\012end\012local isdebugbuild ="
	.ascii	" premake.config.isdebugbuild(cfg)\012_p(3,'<AntBuil"
	.ascii	"dType>%s</AntBuildType>',iif(isdebugbuild, 'Debug',"
	.ascii	"'Release'))\012_p(3,'<Debuggable>%s</Debuggable>',t"
	.ascii	"ostring(cfg.flags.AntBuildDebuggable ~= nil))\012if"
	.ascii	" #cfg.antbuildjavasourcedirs > 0 then\012local dirs"
	.ascii	" = table.concat(cfg.antbuildjavasourcedirs,\";\")\012"
	.ascii	"_p(3,'<JavaSourceDir>%s</JavaSourceDir>',dirs)\012e"
	.ascii	"nd\012if #cfg.antbuildjardirs > 0 then\012local dir"
	.ascii	"s = table.concat(cfg.antbuildjardirs,\";\")\012_p(3"
	.ascii	",'<JarDirectories>%s</JarDirectories>',dirs)\012end"
	.ascii	"\012if #cfg.antbuildjardependencies > 0 then\012loc"
	.ascii	"al dirs = table.concat(cfg.antbuildjardependencies,"
	.ascii	"\";\")\012_p(3,'<JarDependencies>%s</JarDependencie"
	.ascii	"s>',dirs)\012end\012if #cfg.antbuildnativelibdirs >"
	.ascii	" 0 then\012local dirs = table.concat(cfg.antbuildna"
	.ascii	"tivelibdirs,\";\")\012_p(3,'<NativeLibDirectories>%"
	.ascii	"s</NativeLibDirectories>',dirs)\012end\012if #cfg.a"
	.ascii	"ntbuildnativelibdependencies > 0 then\012local dirs"
	.ascii	" = table.concat(cfg.antbuildnativelibdependencies,\""
	.ascii	";\")\012_p(3,'<NativeLibDependencies>%s</NativeLibD"
	.ascii	"ependencies>',dirs)\012end\012if #cfg.antbuildasset"
	.ascii	"sdirs > 0 then\012local dirs = table.concat(cfg.ant"
	.ascii	"buildassetsdirs,\";\")\012_p(3,'<AssetsDirectories>"
	.ascii	"%s</AssetsDirectories>',dirs)\012end\012_p(2,'</Ant"
	.ascii	"Build>')\012end\012end\012local function item_defin"
	.ascii	"itions(prj)\012for _, cfginfo in ipairs(prj.solutio"
	.ascii	"n.vstudio_configs) do\012local cfg = premake.getcon"
	.ascii	"fig(prj, cfginfo.src_buildcfg, cfginfo.src_platform"
	.ascii	")\012_p(1,'<ItemDefinitionGroup ' ..if_config_and_p"
	.ascii	"latform() ..'>'\012,premake.esc(cfginfo.name))\012v"
	.ascii	"s10_clcompile(cfg)\012resource_compile(cfg)\012item"
	.ascii	"_def_lib(cfg)\012vc2010.link(cfg)\012ant_build(prj,"
	.ascii	" cfg)\012event_hooks(cfg)\012vs10_masm(prj, cfg)\012"
	.ascii	"additional_manifest(cfg)\012_p(1,'</ItemDefinitionG"
	.ascii	"roup>')\012end\012end\012function vc2010.getfilegro"
	.ascii	"up(prj, group)\012local sortedfiles = prj.vc2010sor"
	.ascii	"tedfiles\012if not sortedfiles then\012so"
	.ascii	"rtedfiles = {\012ClCompile = {},\012ClInclude = {},"
	.ascii	"\012MASM = {},\012Object = {},\012None = {},\012Res"
	.ascii	"ourceCompile = {},\012AppxManifest = {},\012Android"
	.ascii	"Build = {},\012Natvis = {},\012Image = {},\012Deplo"
	.ascii	"ymentContent = {}\012}\012local foundAppxManifest ="
	.ascii	" false\012for file in premake.project.eachfile(prj,"
	.ascii	" true) do\012if path.issourcefilevs(file.name) then"
	.ascii	"\012table.insert(sortedfiles.ClCompile, file)\012el"
	.ascii	"seif path.iscppheader(file.name) then\012if not tab"
	.ascii	"le.icontains(prj.removefiles, file) then\012table.i"
	.ascii	"nsert(sortedfiles.ClInclude, file)\012end\012elseif"
	.ascii	" path.isobjectfile(file.name) then\012table.insert("
	.ascii	"sortedfiles.Object, file)\012elseif path.isresource"
	.ascii	"file(file.name) then\012table.insert(sortedfiles.Re"
	.ascii	"sourceCompile, file)\012elseif path.isimagefile(fil"
	.ascii	"e.name) then\012table.insert(sortedfiles.Image, fil"
	.ascii	"e)\012elseif path.isappxmanifest(file.name) then\012"
	.ascii	"foundAppxManifest = true\012table.insert(sortedfile"
	.ascii	"s.AppxManifest, file)\012elseif path.isandroidbuild"
	.ascii	"file(file.name) then\012table.insert(sortedfiles.An"
	.ascii	"droidBuild, file)\012elseif path.isnatvis(file.name"
	.ascii	") then\012table.insert(sortedfiles.Natvis, file)\012"
	.ascii	"elseif path.isasmfile(file.name) then\012table.inse"
	.ascii	"rt(sortedfiles.MASM, file)\012elseif file.flags and"
	.ascii	" table.icontains(file.flags, \"DeploymentContent\")"
	.ascii	" then\012table.insert(sortedfiles.DeploymentContent"
	.ascii	", file)\012else\012table.insert(sortedfiles.None, f"
	.ascii	"ile)\012end\012end\012if vstudio.iswinrt() and prj."
	.ascii	"kind == \"WindowedApp\" and not foundAppxManifest t"
	.ascii	"hen\012vstudio.needAppxManifest = true\012local fcf"
	.ascii	"g = {}\012fcfg.name = prj.name .. \"/Package.appxma"
	.ascii	"nifest\"\012fcfg.vpath = premake.project.getvpath(p"
	.ascii	"rj, fcfg.name)\012table.insert(sortedfiles.AppxMani"
	.ascii	"fest, fcfg)\012local logo = {}\012logo.name  = prj."
	.ascii	"name .. \"/Logo.png\"\012logo.vpath = logo.name\012"
	.ascii	"table.insert(sortedfiles.Image, logo)\012local smal"
	.ascii	"lLogo = {}\012smallLogo.name  = prj.name .. \"/Smal"
	.ascii	"lLogo.png\"\012smallLogo.vpath = smallLogo.name\012"
	.ascii	"table.insert(sortedfiles.Image, smallLogo)\012local"
	.ascii	" storeLogo = {}\012storeLogo.name  = prj.name .. \""
	.ascii	"/StoreLogo.png\"\012storeLogo.vpath = storeLogo.nam"
	.ascii	"e\012table.insert(sortedfiles.Image, storeLogo)\012"
	.ascii	"local splashScreen = {}\012splashScreen.name  = prj"
	.ascii	".name .. \"/SplashScreen.png\"\012splashScreen.vpat"
	.ascii	"h = splashScreen.name\012table.insert(sortedfiles.I"
	.ascii	"mage, splashScreen)\012end\012prj.vc2010sortedfiles"
	.ascii	" = sortedfiles\012end\012return sortedfiles[group]\012"
	.ascii	"end\012function vc2010.files(prj)\012vc2010.simplef"
	.ascii	"ilesgroup(prj, \"ClInclude\")\012vc2010.compilerfil"
	.ascii	"esgroup(prj)\012vc2010.simplefilesgroup(prj, \"Obje"
	.ascii	"ct\")\012vc2010.simplefilesgroup(prj, \"None\")\012"
	.ascii	"vc2010.customtaskgroup(prj)\012vc2010.simplefilesgr"
	.ascii	"oup(prj, \"ResourceCompile\")\012vc2010.simplefiles"
	.ascii	"group(prj, \"AppxManifest\")\012vc2010.simplefilesg"
	.ascii	"roup(prj, \"AndroidBuild\")\012vc2010.simplefilesgr"
	.ascii	"oup(prj, \"Natvis\")\012vc2010.deploymentcontentgro"
	.ascii	"up(prj, \"Image\")\012vc2010.deploymentcontentgroup"
	.ascii	"(prj, \"DeploymentContent\", \"None\")\012end\012fu"
	.ascii	"nction vc2010.customtaskgroup(prj)\012local files ="
	.ascii	" { }\012for _, custombuildtask in ipairs(prj.custom"
	.ascii	"buildtask or {}) do\012for _, buildtask in ipairs(c"
	.ascii	"ustombuildtask or {}) do\012local fcfg = { }\012fcf"
	.ascii	"g.name = path.getrelative(prj.location,buildtask[1]"
	.ascii	")\012fcfg.vpath = path.trimdots(fcfg.name)\012table"
	.ascii	".insert(files, fcfg)\012end\012end\012if #files > 0"
	.ascii	"  then\012_p(1,'<ItemGroup>')\012local groupedBuild"
	.ascii	"Tasks = {}\012local buildTaskNames = {}\012for _, c"
	.ascii	"ustombuildtask in ipairs(prj.custombuildtask or {})"
	.ascii	" do\012for _, buildtask in ipairs(custombuildtask o"
	.ascii	"r {}) do\012if (groupedBuildTasks[buildtask[1]] == "
	.ascii	"nil) then\012groupedBuildTasks[buildtask[1]] = {}\012"
	.ascii	"table.insert(buildTaskNames, buildtask[1])\012end\012"
	.ascii	"table.insert(groupedBuildTasks[buildtask[1]], build"
	.ascii	"task)\012end\012end\012for _, name in ipairs(buildT"
	.ascii	"askNames) do\012custombuildtask = groupedBuildTasks"
	.ascii	"[name]\012_p(2,'<CustomBuild Include=\\\"%s\\\">', "
	.ascii	"path.translate(path.getrelative(prj.location,name),"
	.ascii	" \"\\\\\"))\012_p(3,'<FileType>Text</FileType>')\012"
	.ascii	"local cmd = \"\"\012local outputs = \"\"\012for _, "
	.ascii	"buildtask in ipairs(custombuildtask or {}) do\012fo"
	.ascii	"r _, cmdline in ipairs(buildtask[4] or {}) do\012cm"
	.ascii	"d = cmd .. cmdline\012local num = 1\012for _, depda"
	.ascii	"ta in ipairs(buildtask[3] or {}) do\012cmd = string"
	.ascii	".gsub(cmd,\"%$%(\" .. num ..\"%)\", string.format(\""
	.ascii	"%s \",path.getrelative(prj.location,depdata)))\012n"
	.ascii	"um = num + 1\012end\012cmd = string.gsub(cmd, \"%$%"
	.ascii	"(<%)\", string"
	.ascii	".format(\"%s \",path.getrelative(prj.location,build"
	.ascii	"task[1])))\012cmd = string.gsub(cmd, \"%$%(@%)\", s"
	.ascii	"tring.format(\"%s \",path.getrelative(prj.location,"
	.ascii	"buildtask[2])))\012cmd = cmd .. \"\\r\\n\"\012end\012"
	.ascii	"outputs = outputs .. path.getrelative(prj.location,"
	.ascii	"buildtask[2]) .. \";\"\012end\012_p(3,'<Command>%s<"
	.ascii	"/Command>',cmd)\012_p(3,'<Outputs>%s%%(Outputs)</Ou"
	.ascii	"tputs>',outputs)\012_p(3,'<SubType>Designer</SubTyp"
	.ascii	"e>')\012_p(3,'<Message></Message>')\012_p(2,'</Cust"
	.ascii	"omBuild>')\012end\012_p(1,'</ItemGroup>')\012end\012"
	.ascii	"end\012function vc2010.simplefilesgroup(prj, sectio"
	.ascii	"n, subtype)\012local configs = prj.solution.vstudio"
	.ascii	"_configs\012local files = vc2010.getfilegroup(prj, "
	.ascii	"section)\012if #files > 0  then\012local config_map"
	.ascii	"pings = {}\012for _, cfginfo in ipairs(configs) do\012"
	.ascii	"local cfg = premake.getconfig(prj, cfginfo.src_buil"
	.ascii	"dcfg, cfginfo.src_platform)\012if cfg.pchheader and"
	.ascii	" cfg.pchsource and not cfg.flags.NoPCH then\012conf"
	.ascii	"ig_mappings[cfginfo] = path.translate(cfg.pchsource"
	.ascii	", \"\\\\\")\012end\012end\012_p(1,'<ItemGroup>')\012"
	.ascii	"for _, file in ipairs(files) do\012local prjexclude"
	.ascii	"d = table.icontains(prj.excludes, file.name)\012loc"
	.ascii	"al excludedcfgs = {}\012if not prjexcluded then\012"
	.ascii	"for _, vsconfig in ipairs(configs) do\012local cfg "
	.ascii	"= premake.getconfig(prj, vsconfig.src_buildcfg, vsc"
	.ascii	"onfig.src_platform)\012local fileincfg = table.icon"
	.ascii	"tains(cfg.files, file.name)\012local cfgexcluded = "
	.ascii	"table.icontains(cfg.excludes, file.name)\012if not "
	.ascii	"fileincfg or cfgexcluded then\012table.insert(exclu"
	.ascii	"dedcfgs, vsconfig.name)\012end\012end\012end\012if "
	.ascii	"subtype or prjexcluded or #excludedcfgs > 0 then\012"
	.ascii	"_p(2, '<%s Include=\\\"%s\\\">', section, path.tran"
	.ascii	"slate(file.name, \"\\\\\"))\012if prjexcluded then\012"
	.ascii	"_p(3, '<ExcludedFromBuild>true</ExcludedFromBuild>'"
	.ascii	")\012else\012for _, cfgname in ipairs(excludedcfgs)"
	.ascii	" do\012_p(3, '<ExcludedFromBuild '\012.. if_config_"
	.ascii	"and_platform()\012.. '>true</ExcludedFromBuild>'\012"
	.ascii	", premake.esc(cfgname)\012)\012end\012end\012if sub"
	.ascii	"type then\012_p(3, '<SubType>%s</SubType>', subtype"
	.ascii	")\012end\012_p(2,'</%s>', section)\012else\012_p(2,"
	.ascii	" '<%s Include=\\\"%s\\\" />', section, path.transla"
	.ascii	"te(file.name, \"\\\\\"))\012end\012end\012_p(1,'</I"
	.ascii	"temGroup>')\012end\012end\012function vc2010.deploy"
	.ascii	"mentcontentgroup(pr"
	.ascii	"j, section, filetype)\012if filetype == nil then\012"
	.ascii	"filetype = section\012end\012local files = vc2010.g"
	.ascii	"etfilegroup(prj, section)\012if #files > 0  then\012"
	.ascii	"_p(1,'<ItemGroup>')\012for _, file in ipairs(files)"
	.ascii	" do\012_p(2,'<%s Include=\\\"%s\\\">', filetype, pa"
	.ascii	"th.translate(file.name, \"\\\\\"))\012_p(3,'<Deploy"
	.ascii	"mentContent>true</DeploymentContent>')\012_p(3,'<Li"
	.ascii	"nk>%s</Link>', path.translate(file.vpath, \"\\\\\")"
	.ascii	")\012_p(2,'</%s>', filetype)\012end\012_p(1,'</Item"
	.ascii	"Group>')\012end\012end\012function vc2010.compilerf"
	.ascii	"ilesgroup(prj)\012local configs = prj.solution.vstu"
	.ascii	"dio_configs\012local files = vc2010.getfilegroup(pr"
	.ascii	"j, \"ClCompile\")\012if #files > 0  then\012local c"
	.ascii	"onfig_mappings = {}\012for _, cfginfo in ipairs(con"
	.ascii	"figs) do\012local cfg = premake.getconfig(prj, cfgi"
	.ascii	"nfo.src_buildcfg, cfginfo.src_platform)\012if cfg.p"
	.ascii	"chheader and cfg.pchsource and not cfg.flags.NoPCH "
	.ascii	"then\012config_mappings[cfginfo] = path.translate(c"
	.ascii	"fg.pchsource, \"\\\\\")\012end\012end\012_p(1,'<Ite"
	.ascii	"mGroup>')\012local existingBasenames = {};\012for _"
	.ascii	", file in ipairs(files) do\012local filename = stri"
	.ascii	"ng.lower(path.getbasename(file.name))\012local disa"
	.ascii	"mbiguation = existingBasenames[filename] or 0;\012e"
	.ascii	"xistingBasenames[filename] = disambiguation + 1\012"
	.ascii	"local translatedpath = path.translate(file.name, \""
	.ascii	"\\\\\")\012_p(2, '<ClCompile Include=\\\"%s\\\">', "
	.ascii	"translatedpath)\012for _, vsconfig in ipairs(config"
	.ascii	"s) do\012local cfg = premake.getconfig(prj, vsconfi"
	.ascii	"g.src_buildcfg, vsconfig.src_platform)\012local nam"
	.ascii	"estyle = premake.getnamestyle(cfg)\012if namestyle "
	.ascii	"== \"TegraAndroid\" or namestyle == \"NX\" then\012"
	.ascii	"_p(3, '<ObjectFileName '.. if_config_and_platform()"
	.ascii	" .. '>$(IntDir)%s.o</ObjectFileName>', premake.esc("
	.ascii	"vsconfig.name), premake.esc(path.translate(path.tri"
	.ascii	"mdots(path.removeext(file.name)))) )\012else\012if "
	.ascii	"disambiguation > 0 then\012_p(3, '<ObjectFileName '"
	.ascii	".. if_config_and_platform() .. '>$(IntDir)%s\\\\</O"
	.ascii	"bjectFileName>', premake.esc(vsconfig.name), tostri"
	.ascii	"ng(disambiguation))\012end\012end\012end\012if path"
	.ascii	".iscxfile(file.name) then\012_p(3, '<CompileAsWinRT"
	.ascii	">true</CompileAsWinRT>')\012_p(3, '<RuntimeTypeInfo"
	.ascii	">true</RuntimeTypeInfo>')\012_p(3, '<PrecompiledHea"
	.ascii	"der>NotUsing</PrecompiledHeader>')\012"
	.ascii	"end\012if vstudio.iswinrt() and string.len(file.nam"
	.ascii	"e) > 2 and string.sub(file.name, -2) == \".c\" then"
	.ascii	"\012_p(3,'<CompileAsWinRT>FALSE</CompileAsWinRT>')\012"
	.ascii	"end\012for _, cfginfo in ipairs(configs) do\012if c"
	.ascii	"onfig_mappings[cfginfo] and translatedpath == confi"
	.ascii	"g_mappings[cfginfo] then\012_p(3,'<PrecompiledHeade"
	.ascii	"r '.. if_config_and_platform() .. '>Create</Precomp"
	.ascii	"iledHeader>', premake.esc(cfginfo.name))\012config_"
	.ascii	"mappings[cfginfo] = nil  --only one source file per"
	.ascii	" pch\012end\012end\012local nopch = table.icontains"
	.ascii	"(prj.nopch, file.name)\012for _, vsconfig in ipairs"
	.ascii	"(configs) do\012local cfg = premake.getconfig(prj, "
	.ascii	"vsconfig.src_buildcfg, vsconfig.src_platform)\012if"
	.ascii	" nopch or table.icontains(cfg.nopch, file.name) the"
	.ascii	"n\012_p(3,'<PrecompiledHeader '.. if_config_and_pla"
	.ascii	"tform() .. '>NotUsing</PrecompiledHeader>', premake"
	.ascii	".esc(vsconfig.name))\012end\012end\012local exclude"
	.ascii	"d = table.icontains(prj.excludes, file.name)\012for"
	.ascii	" _, vsconfig in ipairs(configs) do\012local cfg = p"
	.ascii	"remake.getconfig(prj, vsconfig.src_buildcfg, vsconf"
	.ascii	"ig.src_platform)\012local fileincfg = table.icontai"
	.ascii	"ns(cfg.files, file.name)\012local cfgexcluded = tab"
	.ascii	"le.icontains(cfg.excludes, file.name)\012if exclude"
	.ascii	"d or not fileincfg or cfgexcluded then\012_p(3, '<E"
	.ascii	"xcludedFromBuild '\012.. if_config_and_platform()\012"
	.ascii	".. '>true</ExcludedFromBuild>'\012, premake.esc(vsc"
	.ascii	"onfig.name)\012)\012end\012end\012if prj.flags and "
	.ascii	"prj.flags.Managed then\012local prjforcenative = ta"
	.ascii	"ble.icontains(prj.forcenative, file.name)\012for _,"
	.ascii	"vsconfig in ipairs(configs) do\012local cfg = prema"
	.ascii	"ke.getconfig(prj, vsconfig.src_buildcfg, vsconfig.s"
	.ascii	"rc_platform)\012if prjforcenative or table.icontain"
	.ascii	"s(cfg.forcenative, file.name) then\012_p(3, '<Compi"
	.ascii	"leAsManaged ' .. if_config_and_platform() .. '>fals"
	.ascii	"e</CompileAsManaged>', premake.esc(vsconfig.name))\012"
	.ascii	"end\012end\012end\012_p(2,'</ClCompile>')\012end\012"
	.ascii	"_p(1,'</ItemGroup>')\012end\012end\012function vc20"
	.ascii	"10.masmfiles(prj)\012local configs = prj.solution.v"
	.ascii	"studio_configs\012local files = vc2010.getfilegroup"
	.ascii	"(prj, \"MASM\")\012if #files > 0 then\012_p(1, '<It"
	.ascii	"emGroup>')\012for _, file in ipairs(files) do\012lo"
	.ascii	"cal translatedpath = path.translate(file.name, \"\\"
	.ascii	"\\\")\012_"
	.ascii	"p(2, '<MASM Include=\"%s\">', translatedpath)\012lo"
	.ascii	"cal excluded = table.icontains(prj.excludes, file.n"
	.ascii	"ame)\012for _, vsconfig in ipairs(configs) do\012lo"
	.ascii	"cal cfg = premake.getconfig(prj, vsconfig.src_build"
	.ascii	"cfg, vsconfig.src_platform)\012local fileincfg = ta"
	.ascii	"ble.icontains(cfg.files, file.name)\012local cfgexc"
	.ascii	"luded = table.icontains(cfg.excludes, file.name)\012"
	.ascii	"if excluded or not fileincfg or cfgexcluded then\012"
	.ascii	"_p(3, '<ExcludedFromBuild '\012.. if_config_and_pla"
	.ascii	"tform()\012.. '>true</ExcludedFromBuild>'\012, prem"
	.ascii	"ake.esc(vsconfig.name)\012)\012end\012end\012_p(2, "
	.ascii	"'</MASM>')\012end\012_p(1, '</ItemGroup>')\012end\012"
	.ascii	"end\012function vc2010.header(targets)\012io.eol = "
	.ascii	"\"\\r\\n\"\012_p('<?xml version=\"1.0\" encoding=\""
	.ascii	"utf-8\"?>')\012local t = \"\"\012if targets then\012"
	.ascii	"t = ' DefaultTargets=\"' .. targets .. '\"'\012end\012"
	.ascii	"_p('<Project%s ToolsVersion=\"%s\" xmlns=\"http://s"
	.ascii	"chemas.microsoft.com/developer/msbuild/2003\">', t,"
	.ascii	" action.vstudio.toolsVersion)\012end\012function pr"
	.ascii	"emake.vs2010_vcxproj(prj)\012local usemasm = hasmas"
	.ascii	"mfiles(prj)\012io.indent = \"  \"\012vc2010.header("
	.ascii	"\"Build\")\012vs2010_config(prj)\012vs2010_globals("
	.ascii	"prj)\012_p(1,'<Import Project=\"$(VCTargetsPath)\\\\"
	.ascii	"Microsoft.Cpp.Default.props\" />')\012for _, cfginf"
	.ascii	"o in ipairs(prj.solution.vstudio_configs) do\012loc"
	.ascii	"al cfg = premake.getconfig(prj, cfginfo.src_buildcf"
	.ascii	"g, cfginfo.src_platform)\012vc2010.configurationPro"
	.ascii	"pertyGroup(cfg, cfginfo)\012end\012_p(1,'<Import Pr"
	.ascii	"oject=\"$(VCTargetsPath)\\\\Microsoft.Cpp.props\" /"
	.ascii	">')\012_p(1,'<ImportGroup Label=\"ExtensionSettings"
	.ascii	"\">')\012if usemasm then\012_p(2, '<Import Project="
	.ascii	"\"$(VCTargetsPath)\\\\BuildCustomizations\\\\masm.p"
	.ascii	"rops\" />')\012end\012_p(1,'</ImportGroup>')\012imp"
	.ascii	"ort_props(prj)\012_p(1,'<PropertyGroup Label=\"User"
	.ascii	"Macros\" />')\012vc2010.outputProperties(prj)\012it"
	.ascii	"em_definitions(prj)\012vc2010.files(prj)\012vc2010."
	.ascii	"clrReferences(prj)\012vc2010.projectReferences(prj)"
	.ascii	"\012vc2010.sdkReferences(prj)\012vc2010.masmfiles(p"
	.ascii	"rj)\012_p(1,'<Import Project=\"$(VCTargetsPath)\\\\"
	.ascii	"Microsoft.Cpp.targets\" />')\012_p(1,'<ImportGroup "
	.ascii	"Label=\"ExtensionTargets\">')\012if usemasm then\012"
	.ascii	"_p(2, '<Import Project=\"$(VCTargetsPath)\\\\BuildC"
	.ascii	"ustomizations\\\\masm.targets\" />')\012end\012_p(1"
	.ascii	",'</ImportGroup>')\012_p('</P"
	.ascii	"roject>')\012end\012function vc2010.clrReferences(p"
	.ascii	"rj)\012if #prj.clrreferences == 0 then\012return\012"
	.ascii	"end\012_p(1,'<ItemGroup>')\012for _, ref in ipairs("
	.ascii	"prj.clrreferences) do\012if os.isfile(ref) then\012"
	.ascii	"local assembly = path.getbasename(ref)\012_p(2,'<Re"
	.ascii	"ference Include=\"%s\">', assembly)\012_p(3,'<HintP"
	.ascii	"ath>%s</HintPath>', path.getrelative(prj.location, "
	.ascii	"ref))\012_p(2,'</Reference>')\012else\012_p(2,'<Ref"
	.ascii	"erence Include=\"%s\" />', ref)\012end\012end\012_p"
	.ascii	"(1,'</ItemGroup>')\012end\012function vc2010.projec"
	.ascii	"tReferences(prj)\012local deps = premake.getdepende"
	.ascii	"ncies(prj)\012if #deps == 0 and #prj.vsimportrefere"
	.ascii	"nces == 0 then\012return\012end\012local function c"
	.ascii	"ompareuuid(a, b) return a.uuid < b.uuid end\012tabl"
	.ascii	"e.sort(deps, compareuuid)\012table.sort(table.join("
	.ascii	"prj.vsimportreferences), compareuuid)\012_p(1,'<Ite"
	.ascii	"mGroup>')\012for _, dep in ipairs(deps) do\012local"
	.ascii	" deppath = path.getrelative(prj.location, vstudio.p"
	.ascii	"rojectfile(dep))\012_p(2,'<ProjectReference Include"
	.ascii	"=\\\"%s\\\">', path.translate(deppath, \"\\\\\"))\012"
	.ascii	"_p(3,'<Project>{%s}</Project>', dep.uuid)\012if vst"
	.ascii	"udio.iswinrt() then\012_p(3,'<ReferenceOutputAssemb"
	.ascii	"ly>false</ReferenceOutputAssembly>')\012end\012_p(2"
	.ascii	",'</ProjectReference>')\012end\012for _, ref in ipa"
	.ascii	"irs(prj.vsimportreferences) do\012local slnrelpath "
	.ascii	"= path.rebase(ref, prj.location, sln.location)\012l"
	.ascii	"ocal iprj = premake.vstudio.getimportprj(slnrelpath"
	.ascii	", prj.solution)\012_p(2,'<ProjectReference Include="
	.ascii	"\\\"%s\\\">', ref)\012_p(3,'<Project>{%s}</Project>"
	.ascii	"', iprj.uuid)\012_p(2,'</ProjectReference>')\012end"
	.ascii	"\012_p(1,'</ItemGroup>')\012end\012function vc2010."
	.ascii	"sdkReferences(prj)\012local refs = prj.sdkreference"
	.ascii	"s\012if #refs > 0 then\012_p(1,'<ItemGroup>')\012fo"
	.ascii	"r _, ref in ipairs(refs) do\012_p(2,'<SDKReference "
	.ascii	"Include=\\\"%s\\\" />', ref)\012end\012_p(1,'</Item"
	.ascii	"Group>')\012end\012end\012function vc2010.debugdir("
	.ascii	"cfg)\012local isnx = (cfg.platform == \"NX32\" or c"
	.ascii	"fg.platform == \"NX64\")\012local debuggerFlavor =\012"
	.ascii	"  iif(isnx,                           'OasisNXDebug"
	.ascii	"ger'\012, iif(cfg.platform == \"Orbis\",        'OR"
	.ascii	"BISDebugger'\012, iif(cfg.platform == \"Durango\", "
	.ascii	"     'XboxOneVCppDebugger'\012, iif(cfg.platform =="
	.ascii	" \"TegraAndroid\", 'AndroidDebugger'\012, iif(vstud"
	.ascii	"io.iswinrt(),       "
	.ascii	"       'AppHostLocalDebugger'\012,                 "
	.ascii	"                    'WindowsLocalDebugger'\012)))))"
	.ascii	"\012_p(2, '<DebuggerFlavor>%s</DebuggerFlavor>', de"
	.ascii	"buggerFlavor)\012if cfg.debugdir and not vstudio.is"
	.ascii	"winrt() then\012_p(2, '<LocalDebuggerWorkingDirecto"
	.ascii	"ry>%s</LocalDebuggerWorkingDirectory>'\012, path.tr"
	.ascii	"anslate(cfg.debugdir, '\\\\')\012)\012end\012if cfg"
	.ascii	".debugcmd then\012_p(2, '<LocalDebuggerCommand>%s</"
	.ascii	"LocalDebuggerCommand>', cfg.debugcmd)\012end\012if "
	.ascii	"cfg.debugargs then\012_p(2, '<LocalDebuggerCommandA"
	.ascii	"rguments>%s</LocalDebuggerCommandArguments>'\012, t"
	.ascii	"able.concat(cfg.debugargs, \" \")\012)\012end\012if"
	.ascii	" cfg.debugenvs and #cfg.debugenvs > 0 then\012_p(2,"
	.ascii	" '<LocalDebuggerEnvironment>%s%s</LocalDebuggerEnvi"
	.ascii	"ronment>'\012, table.concat(cfg.debugenvs, \"\\n\")"
	.ascii	"\012, iif(cfg.flags.DebugEnvsInherit,'\\n$(LocalDeb"
	.ascii	"uggerEnvironment)', '')\012)\012if cfg.flags.DebugE"
	.ascii	"nvsDontMerge then\012_p(2, '<LocalDebuggerMergeEnvi"
	.ascii	"ronment>false</LocalDebuggerMergeEnvironment>')\012"
	.ascii	"end\012end\012if cfg.deploymode then\012_p(2, '<Dep"
	.ascii	"loyMode>%s</DeployMode>', cfg.deploymode)\012end\012"
	.ascii	"if cfg.platform == \"TegraAndroid\" then\012if cfg."
	.ascii	"androiddebugintentparams then\012_p(2, '<IntentPara"
	.ascii	"ms>%s</IntentParams>'\012, table.concat(cfg.android"
	.ascii	"debugintentparams, \" \")\012)\012end\012end\012end"
	.ascii	"\012function premake.vs2010_vcxproj_user(prj)\012io"
	.ascii	".indent = \"  \"\012vc2010.header()\012for _, cfgin"
	.ascii	"fo in ipairs(prj.solution.vstudio_configs) do\012lo"
	.ascii	"cal cfg = premake.getconfig(prj, cfginfo.src_buildc"
	.ascii	"fg, cfginfo.src_platform)\012_p('  <PropertyGroup '"
	.ascii	".. if_config_and_platform() ..'>', premake.esc(cfgi"
	.ascii	"nfo.name))\012vc2010.debugdir(cfg)\012_p('  </Prope"
	.ascii	"rtyGroup>')\012end\012_p('</Project>')\012end\012lo"
	.ascii	"cal png1x1data = {\0120x89, 0x50, 0x4e, 0x47, 0x0d,"
	.ascii	" 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x"
	.ascii	"48, 0x44, 0x52, -- .PNG........IHDR\0120x00, 0x00, "
	.ascii	"0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x0"
	.ascii	"0, 0x00, 0x00, 0x25, 0xdb, 0x56, -- .............%."
	.ascii	"V\0120xca, 0x00, 0x00, 0x00, 0x03, 0x50, 0x4c, 0x54"
	.ascii	", 0x45, 0x00, 0x00, 0x00, 0xa7, 0x7a, 0x3d, 0xda, -"
	.ascii	"- .....PLTE....z=.\0120x00, 0x00, 0x00, 0x01, 0x74,"
	.ascii	" 0x52, 0x4e, 0x53, 0x00, 0x40, 0xe6, 0xd8, 0x66, 0x"
	.ascii	"00, 0x00, 0x00, -- ....tRNS"
	.ascii	".@..f...\0120x0a, 0x49, 0x44, 0x41, 0x54, 0x08, 0xd"
	.ascii	"7, 0x63, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, "
	.ascii	"0xe2, -- .IDAT..c`.......\0120x21, 0xbc, 0x33, 0x00"
	.ascii	", 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0"
	.ascii	"x42, 0x60, 0x82,       -- !.3....IEND.B`.\012}\012f"
	.ascii	"unction png1x1(obj, filename)\012filename = premake"
	.ascii	".project.getfilename(obj, filename)\012local f, err"
	.ascii	" = io.open(filename, \"wb\")\012if f then\012for _,"
	.ascii	" byte in ipairs(png1x1data) do\012f:write(string.ch"
	.ascii	"ar(byte))\012end\012f:close()\012end\012end\012func"
	.ascii	"tion premake.vs2010_appxmanifest(prj)\012io.indent "
	.ascii	"= \"  \"\012io.eol = \"\\r\\n\"\012_p('<?xml versio"
	.ascii	"n=\"1.0\" encoding=\"utf-8\"?>')\012if vstudio.stor"
	.ascii	"eapp == \"10.0\" then\012_p('<Package')\012_p(1, 'x"
	.ascii	"mlns=\"http://schemas.microsoft.com/appx/manifest/f"
	.ascii	"oundation/windows10\"')\012_p(1, 'xmlns:mp=\"http:/"
	.ascii	"/schemas.microsoft.com/appx/2014/phone/manifest\"')"
	.ascii	"\012_p(1, 'xmlns:uap=\"http://schemas.microsoft.com"
	.ascii	"/appx/manifest/uap/windows10\"')\012_p(1, 'Ignorabl"
	.ascii	"eNamespaces=\"uap mp\">')\012elseif vstudio.storeap"
	.ascii	"p == \"durango\" then\012_p('<Package xmlns=\"http:"
	.ascii	"//schemas.microsoft.com/appx/2010/manifest\" xmlns:"
	.ascii	"mx=\"http://schemas.microsoft.com/appx/2013/xbox/ma"
	.ascii	"nifest\" IgnorableNamespaces=\"mx\">')\012end\012_p"
	.ascii	"(1, '<Identity')\012_p(2, 'Name=\"' .. prj.uuid .. "
	.ascii	"'\"')\012_p(2, 'Publisher=\"CN=Publisher\"')\012_p("
	.ascii	"2, 'Version=\"1.0.0.0\" />')\012if vstudio.storeapp"
	.ascii	" == \"10.0\" then\012_p(1, '<mp:PhoneIdentity')\012"
	.ascii	"_p(2, 'PhoneProductId=\"' .. prj.uuid .. '\"')\012_"
	.ascii	"p(2, 'PhonePublisherId=\"00000000-0000-0000-0000-00"
	.ascii	"0000000000\"/>')\012end\012_p(1, '<Properties>')\012"
	.ascii	"_p(2, '<DisplayName>' .. prj.name .. '</DisplayName"
	.ascii	">')\012_p(2, '<PublisherDisplayName>PublisherDispla"
	.ascii	"yName</PublisherDisplayName>')\012_p(2, '<Logo>' .."
	.ascii	" prj.name .. '\\\\StoreLogo.png</Logo>')\012png1x1("
	.ascii	"prj, \"%%/StoreLogo.png\")\012_p(2, '<Description>'"
	.ascii	" .. prj.name .. '</Description>')\012_p(1,'</Proper"
	.ascii	"ties>')\012if vstudio.storeapp == \"10.0\" then\012"
	.ascii	"_p(1, '<Dependencies>')\012_p(2, '<TargetDeviceFami"
	.ascii	"ly Name=\"Windows.Universal\" MinVersion=\"10.0.100"
	.ascii	"69.0\" MaxVersionTested=\"10.0.10069.0\" />')\012_p"
	.ascii	"(1, '</Dependencies>')\012elseif vstudio.storeapp ="
	.ascii	"= \"durango\" then\012_p(1, '<Prerequisites>')\012_"
	.ascii	"p(2, '<OS"
	.ascii	"MinVersion>6.2</OSMinVersion>')\012_p(2, '<OSMaxVer"
	.ascii	"sionTested>6.2</OSMaxVersionTested>')\012_p(1, '</P"
	.ascii	"rerequisites>')\012end\012_p(1, '<Resources>')\012_"
	.ascii	"p(2, '<Resource Language=\"en-us\"/>')\012_p(1, '</"
	.ascii	"Resources>')\012_p(1, '<Applications>')\012_p(2, '<"
	.ascii	"Application Id=\"App\"')\012_p(3, 'Executable=\"$ta"
	.ascii	"rgetnametoken$.exe\"')\012_p(3, 'EntryPoint=\"' .. "
	.ascii	"prj.name .. '.App\">')\012if vstudio.storeapp == \""
	.ascii	"10.0\" then\012_p(3, '<uap:VisualElements')\012_p(4"
	.ascii	", 'DisplayName=\"' .. prj.name .. '\"')\012_p(4, 'S"
	.ascii	"quare150x150Logo=\"' .. prj.name .. '\\\\Logo.png\""
	.ascii	"')\012png1x1(prj, \"%%/Logo.png\")\012if vstudio.st"
	.ascii	"oreapp == \"10.0\" then\012_p(4, 'Square44x44Logo=\""
	.ascii	"' .. prj.name .. '\\\\SmallLogo.png\"')\012png1x1(p"
	.ascii	"rj, \"%%/SmallLogo.png\")\012else\012_p(4, 'Square3"
	.ascii	"0x30Logo=\"' .. prj.name .. '\\\\SmallLogo.png\"')\012"
	.ascii	"png1x1(prj, \"%%/SmallLogo.png\")\012end\012_p(4, '"
	.ascii	"Description=\"' .. prj.name .. '\"')\012_p(4, 'Back"
	.ascii	"groundColor=\"transparent\">')\012_p(4, '<uap:Splas"
	.ascii	"hScreen Image=\"' .. prj.name .. '\\\\SplashScreen."
	.ascii	"png\" />')\012png1x1(prj, \"%%/SplashScreen.png\")\012"
	.ascii	"_p(3, '</uap:VisualElements>')\012elseif vstudio.st"
	.ascii	"oreapp == \"durango\" then\012_p(3, '<VisualElement"
	.ascii	"s')\012_p(4, 'DisplayName=\"' .. prj.name .. '\"')\012"
	.ascii	"_p(4, 'Logo=\"' .. prj.name .. '\\\\Logo.png\"')\012"
	.ascii	"png1x1(prj, \"%%/Logo.png\")\012_p(4, 'SmallLogo=\""
	.ascii	"' .. prj.name .. '\\\\SmallLogo.png\"')\012png1x1(p"
	.ascii	"rj, \"%%/SmallLogo.png\")\012_p(4, 'Description=\"'"
	.ascii	" .. prj.name .. '\"')\012_p(4, 'ForegroundText=\"li"
	.ascii	"ght\"')\012_p(4, 'BackgroundColor=\"transparent\">'"
	.ascii	")\012_p(5, '<SplashScreen Image=\"' .. prj.name .. "
	.ascii	"'\\\\SplashScreen.png\" />')\012png1x1(prj, \"%%/Sp"
	.ascii	"lashScreen.png\")\012_p(3, '</VisualElements>')\012"
	.ascii	"_p(3, '<Extensions>')\012_p(4, '<mx:Extension Categ"
	.ascii	"ory=\"xbox.system.resources\">')\012_p(4, '<mx:Xbox"
	.ascii	"SystemResources />')\012_p(4, '</mx:Extension>')\012"
	.ascii	"_p(3, '</Extensions>')\012end\012_p(2, '</Applicati"
	.ascii	"on>')\012_p(1, '</Applications>')\012_p('</Package>"
	.ascii	"')\012end\012\000"
	.align	2
.LC42:
	.ascii	"local vc2010 = premake.vstudio.vc2010\012local proj"
	.ascii	"ect = premake.project\012function vc2010.filteridgr"
	.ascii	"oup(prj)\012local filters = { }\012local filterfoun"
	.ascii	"d = false\012for file in premake.project.eachfile(p"
	.ascii	"rj, true) do\012local folders = string.explode(file"
	.ascii	".vpath, \"/\", true)\012local path = \"\"\012for i "
	.ascii	"= 1, #folders - 1 do\012if not filterfound then\012"
	.ascii	"filterfound = true\012_p(1,'<ItemGroup>')\012end\012"
	.ascii	"path = path .. folders[i]\012if not filters[path] t"
	.ascii	"hen\012filters[path] = true\012_p(2, '<Filter Inclu"
	.ascii	"de=\"%s\">', path)\012_p(3, '<UniqueIdentifier>{%s}"
	.ascii	"</UniqueIdentifier>', os.uuid(path))\012_p(2, '</Fi"
	.ascii	"lter>')\012end\012path = path .. \"\\\\\"\012end\012"
	.ascii	"end\012for _, custombuildtask in ipairs(prj.customb"
	.ascii	"uildtask or {}) do\012for _, buildtask in ipairs(cu"
	.ascii	"stombuildtask or {}) do\012local folders = string.e"
	.ascii	"xplode(path.trimdots(path.getrelative(prj.location,"
	.ascii	"buildtask[1])), \"/\", true)\012local path = \"\"\012"
	.ascii	"for i = 1, #folders - 1 do\012if not filterfound th"
	.ascii	"en\012filterfound = true\012_p(1,'<ItemGroup>')\012"
	.ascii	"end\012path = path .. folders[i]\012if not filters["
	.ascii	"path] then\012filters[path] = true\012_p(2, '<Filte"
	.ascii	"r Include=\"%s\">', path)\012_p(3, '<UniqueIdentifi"
	.ascii	"er>{%s}</UniqueIdentifier>', os.uuid(path))\012_p(2"
	.ascii	", '</Filter>')\012end\012path = path .. \"\\\\\"\012"
	.ascii	"end\012end\012end\012if filterfound then\012_p(1,'<"
	.ascii	"/ItemGroup>')\012end\012end\012function vc2010.file"
	.ascii	"filtergroup(prj, section, kind)\012local files = vc"
	.ascii	"2010.getfilegroup(prj, section) or {}\012if kind =="
	.ascii	" nill then\012kind = section\012end\012if (section "
	.ascii	"== \"CustomBuild\") then\012for _, custombuildtask "
	.ascii	"in ipairs(prj.custombuildtask or {}) do\012for _, b"
	.ascii	"uildtask in ipairs(custombuildtask or {}) do\012loc"
	.ascii	"al fcfg = { }\012fcfg.name = path.getrelative(prj.l"
	.ascii	"ocation,buildtask[1])\012fcfg.vpath = path.trimdots"
	.ascii	"(fcfg.name)\012table.insert(files, fcfg)\012end\012"
	.ascii	"end\012end\012if #files > 0 then\012_p(1,'<ItemGrou"
	.ascii	"p>')\012for _, file in ipairs(files) do\012local fi"
	.ascii	"lter\012if file.name ~= file.vpath then\012filter ="
	.ascii	" path.getdirectory(file.vpath)\012else\012filter = "
	.ascii	"path.getdirectory(file.name)\012end\012if filter ~="
	.ascii	" \".\" then\012_p(2,'<%s Include=\\\"%s\\\">', kind"
	.ascii	", path.translate(file.name, \"\\\\\"))\012_p(3,'<Fi"
	.ascii	"lter>%s</Filter>', path.translate(filter, \"\\\\\")"
	.ascii	")\012_p(2"
	.ascii	",'</%s>', kind)\012else\012_p(2,'<%s Include=\\\"%s"
	.ascii	"\\\" />', kind, path.translate(file.name, \"\\\\\")"
	.ascii	")\012end\012end\012_p(1,'</ItemGroup>')\012end\012e"
	.ascii	"nd\012function vc2010.generate_filters(prj)\012io.i"
	.ascii	"ndent = \"  \"\012vc2010.header()\012vc2010.filteri"
	.ascii	"dgroup(prj)\012vc2010.filefiltergroup(prj, \"None\""
	.ascii	")\012vc2010.filefiltergroup(prj, \"ClInclude\")\012"
	.ascii	"vc2010.filefiltergroup(prj, \"ClCompile\")\012vc201"
	.ascii	"0.filefiltergroup(prj, \"Object\")\012vc2010.filefi"
	.ascii	"ltergroup(prj, \"ResourceCompile\")\012vc2010.filef"
	.ascii	"iltergroup(prj, \"CustomBuild\")\012vc2010.filefilt"
	.ascii	"ergroup(prj, \"AppxManifest\")\012vc2010.filefilter"
	.ascii	"group(prj, \"Natvis\")\012vc2010.filefiltergroup(pr"
	.ascii	"j, \"Image\")\012vc2010.filefiltergroup(prj, \"Depl"
	.ascii	"oymentContent\", \"None\")\012vc2010.filefiltergrou"
	.ascii	"p(prj, \"MASM\")\012_p('</Project>')\012end\012\000"
	.align	2
.LC43:
	.ascii	"local vc2010 = premake.vstudio.vc2010\012local vstu"
	.ascii	"dio = premake.vstudio\012newaction\012{\012trigger "
	.ascii	"        = \"vs2010\",\012shortname       = \"Visual"
	.ascii	" Studio 2010\",\012description     = \"Generate Mic"
	.ascii	"rosoft Visual Studio 2010 project files\",\012os   "
	.ascii	"           = \"windows\",\012valid_kinds     = { \""
	.ascii	"ConsoleApp\", \"WindowedApp\", \"StaticLib\", \"Sha"
	.ascii	"redLib\", \"Bundle\" },\012valid_languages = { \"C\""
	.ascii	", \"C++\", \"C#\"},\012valid_tools     = {\012cc   "
	.ascii	"  = { \"msc\"   },\012dotnet = { \"msnet\" },\012},"
	.ascii	"\012onsolution = function(sln)\012premake.generate("
	.ascii	"sln, \"%%.sln\", vstudio.sln2005.generate)\012end,\012"
	.ascii	"onproject = function(prj)\012if premake.isdotnetpro"
	.ascii	"ject(prj) then\012premake.generate(prj, \"%%.csproj"
	.ascii	"\", vstudio.cs2005.generate)\012premake.generate(pr"
	.ascii	"j, \"%%.csproj.user\", vstudio.cs2005.generate_user"
	.ascii	")\012else\012premake.generate(prj, \"%%.vcxproj\", "
	.ascii	"premake.vs2010_vcxproj)\012premake.generate(prj, \""
	.ascii	"%%.vcxproj.user\", premake.vs2010_vcxproj_user)\012"
	.ascii	"premake.generate(prj, \"%%.vcxproj.filters\", vstud"
	.ascii	"io.vc2010.generate_filters)\012end\012end,\012oncle"
	.ascii	"ansolution = premake.vstudio.cleansolution,\012oncl"
	.ascii	"eanproject  = premake.vstudio.cleanproject,\012oncl"
	.ascii	"eantarget   = premake.vstudio.cleantarget,\012vstud"
	.ascii	"io = {\012productVersion  = \"8.0.30703\",\012solut"
	.ascii	"ionVersion = \"11\",\012targetFramework = \"4.0\",\012"
	.ascii	"toolsVersion    = \"4.0\",\012supports64bitEditCont"
	.ascii	"inue = false,\012intDirAbsolute  = false,\012}\012}"
	.ascii	"\012\000"
	.align	2
.LC44:
	.ascii	"premake.vstudio.vc2012 = {}\012local vc2012 = prema"
	.ascii	"ke.vstudio.vc2012\012local vstudio = premake.vstudi"
	.ascii	"o\012newaction\012{\012trigger         = \"vs2012\""
	.ascii	",\012shortname       = \"Visual Studio 2012\",\012d"
	.ascii	"escription     = \"Generate Microsoft Visual Studio"
	.ascii	" 2012 project files\",\012os              = \"windo"
	.ascii	"ws\",\012valid_kinds     = { \"ConsoleApp\", \"Wind"
	.ascii	"owedApp\", \"StaticLib\", \"SharedLib\", \"Bundle\""
	.ascii	" },\012valid_languages = { \"C\", \"C++\", \"C#\"},"
	.ascii	"\012valid_tools     = {\012cc     = { \"msc\"   },\012"
	.ascii	"dotnet = { \"msnet\" },\012},\012onsolution = funct"
	.ascii	"ion(sln)\012premake.generate(sln, \"%%.sln\", vstud"
	.ascii	"io.sln2005.generate)\012end,\012onproject = functio"
	.ascii	"n(prj)\012if premake.isdotnetproject(prj) then\012p"
	.ascii	"remake.generate(prj, \"%%.csproj\", vstudio.cs2005."
	.ascii	"generate)\012premake.generate(prj, \"%%.csproj.user"
	.ascii	"\", vstudio.cs2005.generate_user)\012else\012premak"
	.ascii	"e.generate(prj, \"%%.vcxproj\", premake.vs2010_vcxp"
	.ascii	"roj)\012premake.generate(prj, \"%%.vcxproj.user\", "
	.ascii	"premake.vs2010_vcxproj_user)\012premake.generate(pr"
	.ascii	"j, \"%%.vcxproj.filters\", vstudio.vc2010.generate_"
	.ascii	"filters)\012end\012end,\012oncleansolution = premak"
	.ascii	"e.vstudio.cleansolution,\012oncleanproject  = prema"
	.ascii	"ke.vstudio.cleanproject,\012oncleantarget   = prema"
	.ascii	"ke.vstudio.cleantarget,\012vstudio = {\012solutionV"
	.ascii	"ersion = \"12\",\012targetFramework = \"4.5\",\012t"
	.ascii	"oolsVersion    = \"4.0\",\012supports64bitEditConti"
	.ascii	"nue = false,\012intDirAbsolute  = false,\012}\012}\012"
	.ascii	"\000"
	.align	2
.LC45:
	.ascii	"premake.vstudio.vc2013 = {}\012local vc2013 = prema"
	.ascii	"ke.vstudio.vc2013\012local vstudio = premake.vstudi"
	.ascii	"o\012newaction\012{\012trigger         = \"vs2013\""
	.ascii	",\012shortname       = \"Visual Studio 2013\",\012d"
	.ascii	"escription     = \"Generate Microsoft Visual Studio"
	.ascii	" 2013 project files\",\012os              = \"windo"
	.ascii	"ws\",\012valid_kinds     = { \"ConsoleApp\", \"Wind"
	.ascii	"owedApp\", \"StaticLib\", \"SharedLib\", \"Bundle\""
	.ascii	" },\012valid_languages = { \"C\", \"C++\", \"C#\"},"
	.ascii	"\012valid_tools     = {\012cc     = { \"msc\"   },\012"
	.ascii	"dotnet = { \"msnet\" },\012},\012onsolution = funct"
	.ascii	"ion(sln)\012premake.generate(sln, \"%%.sln\", vstud"
	.ascii	"io.sln2005.generate)\012end,\012onproject = functio"
	.ascii	"n(prj)\012if premake.isdotnetproject(prj) then\012p"
	.ascii	"remake.generate(prj, \"%%.csproj\", vstudio.cs2005."
	.ascii	"generate)\012premake.generate(prj, \"%%.csproj.user"
	.ascii	"\", vstudio.cs2005.generate_user)\012else\012premak"
	.ascii	"e.vstudio.needAppxManifest = false\012premake.gener"
	.ascii	"ate(prj, \"%%.vcxproj\", premake.vs2010_vcxproj)\012"
	.ascii	"premake.generate(prj, \"%%.vcxproj.user\", premake."
	.ascii	"vs2010_vcxproj_user)\012premake.generate(prj, \"%%."
	.ascii	"vcxproj.filters\", vstudio.vc2010.generate_filters)"
	.ascii	"\012if premake.vstudio.needAppxManifest then\012pre"
	.ascii	"make.generate(prj, \"%%/Package.appxmanifest\", pre"
	.ascii	"make.vs2010_appxmanifest)\012end\012end\012end,\012"
	.ascii	"oncleansolution = premake.vstudio.cleansolution,\012"
	.ascii	"oncleanproject  = premake.vstudio.cleanproject,\012"
	.ascii	"oncleantarget   = premake.vstudio.cleantarget,\012v"
	.ascii	"studio = {\012solutionVersion = \"12\",\012targetFr"
	.ascii	"amework = \"4.5\",\012toolsVersion    = \"12.0\",\012"
	.ascii	"supports64bitEditContinue = false,\012intDirAbsolut"
	.ascii	"e  = false,\012}\012}\012\000"
	.align	2
.LC46:
	.ascii	"premake.vstudio.vc2015 = {}\012local vc2015 = prema"
	.ascii	"ke.vstudio.vc2015\012local vstudio = premake.vstudi"
	.ascii	"o\012newaction\012{\012trigger         = \"vs2015\""
	.ascii	",\012shortname       = \"Visual Studio 2015\",\012d"
	.ascii	"escription     = \"Generate Microsoft Visual Studio"
	.ascii	" 2015 project files\",\012os              = \"windo"
	.ascii	"ws\",\012valid_kinds     = { \"ConsoleApp\", \"Wind"
	.ascii	"owedApp\", \"StaticLib\", \"SharedLib\", \"Bundle\""
	.ascii	" },\012valid_languages = { \"C\", \"C++\", \"C#\" }"
	.ascii	",\012valid_tools     = {\012cc     = { \"msc\"   },"
	.ascii	"\012dotnet = { \"msnet\" },\012},\012onsolution = f"
	.ascii	"unction(sln)\012premake.generate(sln, \"%%.sln\", v"
	.ascii	"studio.sln2005.generate)\012end,\012onproject = fun"
	.ascii	"ction(prj)\012if premake.isdotnetproject(prj) then\012"
	.ascii	"premake.generate(prj, \"%%.csproj\", vstudio.cs2005"
	.ascii	".generate)\012premake.generate(prj, \"%%.csproj.use"
	.ascii	"r\", vstudio.cs2005.generate_user)\012else\012prema"
	.ascii	"ke.vstudio.needAppxManifest = false\012premake.gene"
	.ascii	"rate(prj, \"%%.vcxproj\", premake.vs2010_vcxproj)\012"
	.ascii	"premake.generate(prj, \"%%.vcxproj.user\", premake."
	.ascii	"vs2010_vcxproj_user)\012premake.generate(prj, \"%%."
	.ascii	"vcxproj.filters\", vstudio.vc2010.generate_filters)"
	.ascii	"\012if premake.vstudio.needAppxManifest then\012pre"
	.ascii	"make.generate(prj, \"%%/Package.appxmanifest\", pre"
	.ascii	"make.vs2010_appxmanifest)\012end\012end\012end,\012"
	.ascii	"oncleansolution = premake.vstudio.cleansolution,\012"
	.ascii	"oncleanproject  = premake.vstudio.cleanproject,\012"
	.ascii	"oncleantarget   = premake.vstudio.cleantarget,\012v"
	.ascii	"studio = {\012solutionVersion = \"12\",\012targetFr"
	.ascii	"amework = \"4.5\",\012toolsVersion    = \"14.0\",\012"
	.ascii	"windowsTargetPlatformVersion = \"8.1\",\012supports"
	.ascii	"64bitEditContinue    = true,\012intDirAbsolute  = f"
	.ascii	"alse,\012}\012}\012\000"
	.align	2
.LC47:
	.ascii	"premake.vstudio.vc2017 = {}\012local vc2017 = prema"
	.ascii	"ke.vstudio.vc2017\012local vstudio = premake.vstudi"
	.ascii	"o\012newaction\012{\012trigger         = \"vs2017\""
	.ascii	",\012shortname       = \"Visual Studio 2017\",\012d"
	.ascii	"escription     = \"Generate Microsoft Visual Studio"
	.ascii	" 2017 project files\",\012os              = \"windo"
	.ascii	"ws\",\012valid_kinds     = { \"ConsoleApp\", \"Wind"
	.ascii	"owedApp\", \"StaticLib\", \"SharedLib\", \"Bundle\""
	.ascii	" },\012valid_languages = { \"C\", \"C++\", \"C#\" }"
	.ascii	",\012valid_tools     = {\012cc     = { \"msc\"   },"
	.ascii	"\012dotnet = { \"msnet\" },\012},\012onsolution = f"
	.ascii	"unction(sln)\012premake.generate(sln, \"%%.sln\", v"
	.ascii	"studio.sln2005.generate)\012end,\012onproject = fun"
	.ascii	"ction(prj)\012if premake.isdotnetproject(prj) then\012"
	.ascii	"premake.generate(prj, \"%%.csproj\", vstudio.cs2005"
	.ascii	".generate)\012premake.generate(prj, \"%%.csproj.use"
	.ascii	"r\", vstudio.cs2005.generate_user)\012else\012prema"
	.ascii	"ke.vstudio.needAppxManifest = false\012premake.gene"
	.ascii	"rate(prj, \"%%.vcxproj\", premake.vs2010_vcxproj)\012"
	.ascii	"premake.generate(prj, \"%%.vcxproj.user\", premake."
	.ascii	"vs2010_vcxproj_user)\012premake.generate(prj, \"%%."
	.ascii	"vcxproj.filters\", vstudio.vc2010.generate_filters)"
	.ascii	"\012if premake.vstudio.needAppxManifest then\012pre"
	.ascii	"make.generate(prj, \"%%/Package.appxmanifest\", pre"
	.ascii	"make.vs2010_appxmanifest)\012end\012end\012end,\012"
	.ascii	"oncleansolution = premake.vstudio.cleansolution,\012"
	.ascii	"oncleanproject  = premake.vstudio.cleanproject,\012"
	.ascii	"oncleantarget   = premake.vstudio.cleantarget,\012v"
	.ascii	"studio = {\012solutionVersion = \"12\",\012targetFr"
	.ascii	"amework = \"4.5.2\",\012toolsVersion    = \"15.0\","
	.ascii	"\012windowsTargetPlatformVersion = \"8.1\",\012supp"
	.ascii	"orts64bitEditContinue    = true,\012intDirAbsolute "
	.ascii	" = false,\012}\012}\012\000"
	.align	2
.LC48:
	.ascii	"premake.vstudio.vc2019 = {}\012local vc2019 = prema"
	.ascii	"ke.vstudio.vc2019\012local vstudio = premake.vstudi"
	.ascii	"o\012newaction\012{\012trigger         = \"vs2019\""
	.ascii	",\012shortname       = \"Visual Studio 2019\",\012d"
	.ascii	"escription     = \"Generate Microsoft Visual Studio"
	.ascii	" 2019 project files\",\012os              = \"windo"
	.ascii	"ws\",\012valid_kinds     = { \"ConsoleApp\", \"Wind"
	.ascii	"owedApp\", \"StaticLib\", \"SharedLib\", \"Bundle\""
	.ascii	" },\012valid_languages = { \"C\", \"C++\", \"C#\" }"
	.ascii	",\012valid_tools     = {\012cc     = { \"msc\"   },"
	.ascii	"\012dotnet = { \"msnet\" },\012},\012onsolution = f"
	.ascii	"unction(sln)\012premake.generate(sln, \"%%.sln\", v"
	.ascii	"studio.sln2005.generate)\012end,\012onproject = fun"
	.ascii	"ction(prj)\012if premake.isdotnetproject(prj) then\012"
	.ascii	"premake.generate(prj, \"%%.csproj\", vstudio.cs2005"
	.ascii	".generate)\012premake.generate(prj, \"%%.csproj.use"
	.ascii	"r\", vstudio.cs2005.generate_user)\012else\012prema"
	.ascii	"ke.vstudio.needAppxManifest = false\012premake.gene"
	.ascii	"rate(prj, \"%%.vcxproj\", premake.vs2010_vcxproj)\012"
	.ascii	"premake.generate(prj, \"%%.vcxproj.user\", premake."
	.ascii	"vs2010_vcxproj_user)\012premake.generate(prj, \"%%."
	.ascii	"vcxproj.filters\", vstudio.vc2010.generate_filters)"
	.ascii	"\012if premake.vstudio.needAppxManifest then\012pre"
	.ascii	"make.generate(prj, \"%%/Package.appxmanifest\", pre"
	.ascii	"make.vs2010_appxmanifest)\012end\012end\012end,\012"
	.ascii	"oncleansolution = premake.vstudio.cleansolution,\012"
	.ascii	"oncleanproject  = premake.vstudio.cleanproject,\012"
	.ascii	"oncleantarget   = premake.vstudio.cleantarget,\012v"
	.ascii	"studio = {\012solutionVersion = \"12\",\012targetFr"
	.ascii	"amework = \"4.7.2\",\012toolsVersion    = \"16.0\","
	.ascii	"\012windowsTargetPlatformVersion = \"10.0\",\012sup"
	.ascii	"ports64bitEditContinue    = true,\012intDirAbsolute"
	.ascii	"  = false,\012}\012}\012\000"
	.align	2
.LC49:
	.ascii	"premake.xcode = { }\012function premake.xcode.check"
	.ascii	"project(prj)\012local last\012for cfg in premake.ea"
	.ascii	"chconfig(prj) do\012if last and last ~= cfg.kind th"
	.ascii	"en\012error(\"Project '\" .. prj.name .. \"' uses m"
	.ascii	"ore than one target kind; not supported by Xcode\","
	.ascii	" 0)\012end\012last = cfg.kind\012end\012end\012prem"
	.ascii	"ake.xcode.toolset = \"macosx\"\012\000"
	.align	2
.LC50:
	.ascii	"premake.xcode.parameters = { }\012local xcode = pre"
	.ascii	"make.xcode\012local tree  = premake.tree\012functio"
	.ascii	"n xcode.getbuildcategory(node)\012local categories "
	.ascii	"= {\012[\".a\"] = \"Frameworks\",\012[\".h\"] = \"H"
	.ascii	"eaders\",\012[\".hh\"] = \"Headers\",\012[\".hpp\"]"
	.ascii	" = \"Headers\",\012[\".hxx\"] = \"Headers\",\012[\""
	.ascii	".inl\"] = \"Headers\",\012[\".c\"] = \"Sources\",\012"
	.ascii	"[\".cc\"] = \"Sources\",\012[\".cpp\"] = \"Sources\""
	.ascii	",\012[\".cxx\"] = \"Sources\",\012[\".c++\"] = \"So"
	.ascii	"urces\",\012[\".dylib\"] = \"Frameworks\",\012[\".b"
	.ascii	"undle\"] = \"Frameworks\",\012[\".framework\"] = \""
	.ascii	"Frameworks\",\012[\".tbd\"] = \"Frameworks\",\012[\""
	.ascii	".m\"] = \"Sources\",\012[\".mm\"] = \"Sources\",\012"
	.ascii	"[\".S\"] = \"Sources\",\012[\".strings\"] = \"Resou"
	.ascii	"rces\",\012[\".nib\"] = \"Resources\",\012[\".xib\""
	.ascii	"] = \"Resources\",\012[\".icns\"] = \"Resources\",\012"
	.ascii	"[\".bmp\"] = \"Resources\",\012[\".wav\"] = \"Resou"
	.ascii	"rces\",\012[\".xcassets\"]  = \"Resources\",\012[\""
	.ascii	".xcdatamodeld\"] = \"Sources\",\012[\".swift\"] = \""
	.ascii	"Sources\",\012}\012return categories[path.getextens"
	.ascii	"ion(node.name)] or\012categories[string.lower(path."
	.ascii	"getextension(node.name))]\012end\012function xcode."
	.ascii	"getconfigname(cfg)\012local name = cfg.name\012if #"
	.ascii	"cfg.project.solution.xcode.platforms > 1 then\012na"
	.ascii	"me = name .. \" \" .. premake.action.current().vali"
	.ascii	"d_platforms[cfg.platform]\012end\012return name\012"
	.ascii	"end\012function xcode.getfiletype(node)\012local ty"
	.ascii	"pes = {\012[\".c\"]         = \"sourcecode.c.c\",\012"
	.ascii	"[\".cc\"]        = \"sourcecode.cpp.cpp\",\012[\".c"
	.ascii	"pp\"]       = \"sourcecode.cpp.cpp\",\012[\".css\"]"
	.ascii	"       = \"text.css\",\012[\".cxx\"]       = \"sour"
	.ascii	"cecode.cpp.cpp\",\012[\".c++\"]       = \"sourcecod"
	.ascii	"e.cpp.cpp\",\012[\".entitlements\"] = \"text.xml\","
	.ascii	"\012[\".bundle\"]    = \"wrapper.cfbundle\",\012[\""
	.ascii	".framework\"] = \"wrapper.framework\",\012[\".tbd\""
	.ascii	"]       = \"sourcecode.text-based-dylib-definition\""
	.ascii	",\012[\".gif\"]       = \"image.gif\",\012[\".h\"] "
	.ascii	"        = \"sourcecode.c.h\",\012[\".hh\"]        ="
	.ascii	" \"sourcecode.cpp.h\",\012[\".hpp\"]       = \"sour"
	.ascii	"cecode.cpp.h\",\012[\".hxx\"]       = \"sourcecode."
	.ascii	"cpp.h\",\012[\".inl\"]       = \"sourcecode.cpp.h\""
	.ascii	",\012[\".html\"]      = \"text.html\",\012[\".lua\""
	.ascii	"]       = \"sourcecode.lua\",\012[\".m\"]         ="
	.ascii	" \"sourcecode.c.objc\",\012[\".mm\"]        = \"sou"
	.ascii	"rcecode.cpp.objcpp\",\012[\".S\"]         = \"sourc"
	.ascii	"ecode.asm\",\012[\".nib\"]       = \"wrapper.nib\","
	.ascii	"\012[\".pch\"]       = \"sourcecode.c.h\",\012[\""
	.ascii	".plist\"]     = \"text.plist.xml\",\012[\".strings\""
	.ascii	"]   = \"text.plist.strings\",\012[\".xib\"]       ="
	.ascii	" \"file.xib\",\012[\".icns\"]      = \"image.icns\""
	.ascii	",\012[\".bmp\"]       = \"image.bmp\",\012[\".wav\""
	.ascii	"]       = \"audio.wav\",\012[\".xcassets\"]  = \"fo"
	.ascii	"lder.assetcatalog\",\012[\".xcdatamodeld\"] = \"wra"
	.ascii	"pper.xcdatamodeld\",\012[\".swift\"]     = \"source"
	.ascii	"code.swift\",\012}\012return types[path.getextensio"
	.ascii	"n(node.path)] or\012(types[string.lower(path.getext"
	.ascii	"ension(node.path))] or \"text\")\012end\012function"
	.ascii	" xcode.getfiletypeForced(node)\012local types = {\012"
	.ascii	"[\".c\"]         = \"sourcecode.cpp.cpp\",\012[\".c"
	.ascii	"c\"]        = \"sourcecode.cpp.cpp\",\012[\".cpp\"]"
	.ascii	"       = \"sourcecode.cpp.cpp\",\012[\".css\"]     "
	.ascii	"  = \"text.css\",\012[\".cxx\"]       = \"sourcecod"
	.ascii	"e.cpp.cpp\",\012[\".c++\"]       = \"sourcecode.cpp"
	.ascii	".cpp\",\012[\".entitlements\"] = \"text.xml\",\012["
	.ascii	"\".bundle\"]    = \"wrapper.cfbundle\",\012[\".fram"
	.ascii	"ework\"] = \"wrapper.framework\",\012[\".tbd\"]    "
	.ascii	"   = \"wrapper.framework\",\012[\".gif\"]       = \""
	.ascii	"image.gif\",\012[\".h\"]         = \"sourcecode.cpp"
	.ascii	".h\",\012[\".hh\"]        = \"sourcecode.cpp.h\",\012"
	.ascii	"[\".hpp\"]       = \"sourcecode.cpp.h\",\012[\".hxx"
	.ascii	"\"]       = \"sourcecode.cpp.h\",\012[\".inl\"]    "
	.ascii	"   = \"sourcecode.cpp.h\",\012[\".html\"]      = \""
	.ascii	"text.html\",\012[\".lua\"]       = \"sourcecode.lua"
	.ascii	"\",\012[\".m\"]         = \"sourcecode.cpp.objcpp\""
	.ascii	",\012[\".mm\"]        = \"sourcecode.cpp.objcpp\",\012"
	.ascii	"[\".nib\"]       = \"wrapper.nib\",\012[\".pch\"]  "
	.ascii	"     = \"sourcecode.cpp.h\",\012[\".plist\"]     = "
	.ascii	"\"text.plist.xml\",\012[\".strings\"]   = \"text.pl"
	.ascii	"ist.strings\",\012[\".xib\"]       = \"file.xib\",\012"
	.ascii	"[\".icns\"]      = \"image.icns\",\012[\".bmp\"]   "
	.ascii	"    = \"image.bmp\",\012[\".wav\"]       = \"audio."
	.ascii	"wav\",\012[\".xcassets\"]  = \"folder.assetcatalog\""
	.ascii	",\012[\".xcdatamodeld\"] = \"wrapper.xcdatamodeld\""
	.ascii	",\012[\".swift\"]     = \"sourcecode.swift\",\012}\012"
	.ascii	"return types[path.getextension(node.path)] or\012(t"
	.ascii	"ypes[string.lower(path.getextension(node.path))] or"
	.ascii	" \"text\")\012end\012function xcode.getproducttype("
	.ascii	"node)\012local types = {\012ConsoleApp  = \"com.app"
	.ascii	"le.product-type.tool\",\012WindowedApp = node.cfg.o"
	.ascii	"ptions.SkipBundling and \"com.apple.product-type.to"
	.ascii	"ol\" or \"com.apple.product-type.application\",\012"
	.ascii	"StaticLib   = \"com.apple.product-type.library.stat"
	.ascii	"ic\",\012SharedLib   = \"c"
	.ascii	"om.apple.product-type.library.dynamic\",\012Bundle "
	.ascii	"     = node.cfg.options.SkipBundling and \"com.appl"
	.ascii	"e.product-type.tool\" or \"com.apple.product-type.b"
	.ascii	"undle\",\012}\012return types[node.cfg.kind]\012end"
	.ascii	"\012function xcode.gettargettype(node)\012local typ"
	.ascii	"es = {\012ConsoleApp  = \"\\\"compiled.mach-o.execu"
	.ascii	"table\\\"\",\012WindowedApp = node.cfg.options.Skip"
	.ascii	"Bundling and \"\\\"compiled.mach-o.executable\\\"\""
	.ascii	" or \"wrapper.application\",\012StaticLib   = \"arc"
	.ascii	"hive.ar\",\012SharedLib   = \"\\\"compiled.mach-o.d"
	.ascii	"ylib\\\"\",\012Bundle      = node.cfg.options.SkipB"
	.ascii	"undling and \"\\\"compiled.mach-o.bundle\\\"\" or \""
	.ascii	"wrapper.cfbundle\",\012}\012return types[node.cfg.k"
	.ascii	"ind]\012end\012function xcode.getxcodeprojname(prj)"
	.ascii	"\012local fname = premake.project.getfilename(prj, "
	.ascii	"\"%%.xcodeproj\")\012return fname\012end\012functio"
	.ascii	"n xcode.isframework(fname)\012return (path.getexten"
	.ascii	"sion(fname) == \".framework\" or path.getextension("
	.ascii	"fname) == \".tbd\")\012end\012function xcode.uuid(p"
	.ascii	"aram)\012return os.uuid(param):upper():gsub('-','')"
	.ascii	":sub(0,24)\012end\012function xcode.newid(node, usa"
	.ascii	"ge)\012local base = ''\012local prj = node.project\012"
	.ascii	"if prj == nil then\012local parent = node.parent\012"
	.ascii	"while parent ~= nil do\012if parent.project ~= nil "
	.ascii	"then\012prj = parent.project\012break\012end\012par"
	.ascii	"ent = parent.parent\012end\012end\012if prj ~= nil "
	.ascii	"then\012prj.uuidcounter = (prj.uuidcounter or 0) + "
	.ascii	"1\012base = base .. prj.name .. \"$\" .. prj.uuidco"
	.ascii	"unter .. \"$\"\012end\012base = base .. \"$\" .. (n"
	.ascii	"ode.path or node.name or \"\")\012base = base .. \""
	.ascii	"$\" .. (usage or \"\")\012return xcode.uuid(base)\012"
	.ascii	"end\012function xcode.getscriptphaselabel(cmd, coun"
	.ascii	"t, cfg)\012return string.format(\"\\\"Script Phase "
	.ascii	"%s [%s] (%s)\\\"\", count, cmd:match(\"(%w+)(.+)\")"
	.ascii	", iif(cfg, xcode.getconfigname(cfg), \"all\"))\012e"
	.ascii	"nd\012function xcode.getcopyphaselabel(type, count,"
	.ascii	" target)\012return string.format(\"\\\"Copy %s %s ["
	.ascii	"%s]\\\"\", type, count, target)\012end\012function "
	.ascii	"xcode.preparesolution(sln)\012sln.xcode = { }\012sl"
	.ascii	"n.xcode.platforms = premake.filterplatforms(sln, pr"
	.ascii	"emake.action.current().valid_platforms, \"Universal"
	.ascii	"\")\012for prj in premake.solution.eachproject(sln)"
	.ascii	" do\012local cfg = premake.getconfig(prj, prj.confi"
	.ascii	"gurations[1], sln.xcode.platforms[1])\012l"
	.ascii	"ocal node = premake.tree.new(path.getname(cfg.build"
	.ascii	"target.bundlepath))\012node.cfg = cfg\012node.id = "
	.ascii	"premake.xcode.newid(node, \"product\")\012node.targ"
	.ascii	"etid = premake.xcode.newid(node, \"target\")\012prj"
	.ascii	".xcode = {}\012prj.xcode.projectnode = node\012end\012"
	.ascii	"end\012function xcode.printlist(list, tag, sort)\012"
	.ascii	"if #list > 0 then\012if sort ~= nil and sort == tru"
	.ascii	"e then\012table.sort(list)\012end\012_p(4,'%s = (',"
	.ascii	" tag)\012for _, item in ipairs(list) do\012local es"
	.ascii	"caped_item = item:gsub(\"\\\"\", \"\\\\\\\\\\\\\\\""
	.ascii	"\"):gsub(\"'\", \"\\\\\\\\'\")\012_p(5, '\"%s\",', "
	.ascii	"escaped_item)\012end\012_p(4,');')\012end\012end\012"
	.ascii	"function xcode.quotestr(str)\012if str:match(\"[^a-"
	.ascii	"zA-Z0-9$._/]\") == nil then\012return str\012end\012"
	.ascii	"return \"\\\"\" .. str:gsub(\"[\\\"\\\\\\\"]\", \"\\"
	.ascii	"\\%0\") .. \"\\\"\"\012end\012function xcode.Header"
	.ascii	"(tr, objversion)\012_p('// !$*UTF8*$!')\012_p('{')\012"
	.ascii	"_p(1,'archiveVersion = 1;')\012_p(1,'classes = {')\012"
	.ascii	"_p(1,'};')\012_p(1,'objectVersion = %d;', objversio"
	.ascii	"n)\012_p(1,'objects = {')\012_p('')\012end\012funct"
	.ascii	"ion xcode.PBXBuildFile(tr)\012local function gather"
	.ascii	"CopyFiles(which)\012local copyfiles = {}\012local t"
	.ascii	"argets = tr.project[which]\012if #targets > 0 then\012"
	.ascii	"for _, t in ipairs(targets) do\012for __, tt in ipa"
	.ascii	"irs(t) do\012table.insertflat(copyfiles, tt[2])\012"
	.ascii	"end\012end\012end\012return table.translate(copyfil"
	.ascii	"es, path.getname)\012end\012local function gatherCo"
	.ascii	"pyFrameworks(which)\012local copyfiles = {}\012loca"
	.ascii	"l targets = tr.project[which]\012if #targets > 0 th"
	.ascii	"en\012table.insertflat(copyfiles, targets)\012end\012"
	.ascii	"return table.translate(copyfiles, path.getname)\012"
	.ascii	"end\012local copyfiles = table.flatten({\012gatherC"
	.ascii	"opyFiles('xcodecopyresources'),\012gatherCopyFramew"
	.ascii	"orks('xcodecopyframeworks')\012})\012_p('/* Begin P"
	.ascii	"BXBuildFile section */')\012tree.traverse(tr, {\012"
	.ascii	"onnode = function(node)\012if node.buildid then\012"
	.ascii	"_p(2,'%s /* %s in %s */ = {isa = PBXBuildFile; file"
	.ascii	"Ref = %s /* %s */; };',\012node.buildid, node.name,"
	.ascii	" xcode.getbuildcategory(node), node.id, node.name)\012"
	.ascii	"end\012if table.icontains(copyfiles, node.name) the"
	.ascii	"n\012_p(2,'%s /* %s in %s */ = {isa = PBXBuildFile;"
	.ascii	" fileRef = %s /* %s */; %s };',\012xcode.uuid(node."
	.ascii	"name .. 'in CopyFiles'), node.name, 'CopyFiles', no"
	.ascii	"de.id, node.name,\012iif(xcode.isframework(node.nam"
	.ascii	"e"
	.ascii	"), \"settings = {ATTRIBUTES = (CodeSignOnCopy, ); }"
	.ascii	";\", \"\")\012)\012end\012end\012})\012_p('/* End P"
	.ascii	"BXBuildFile section */')\012_p('')\012end\012functi"
	.ascii	"on xcode.PBXContainerItemProxy(tr)\012if #tr.projec"
	.ascii	"ts.children > 0 then\012_p('/* Begin PBXContainerIt"
	.ascii	"emProxy section */')\012for _, node in ipairs(tr.pr"
	.ascii	"ojects.children) do\012_p(2,'%s /* PBXContainerItem"
	.ascii	"Proxy */ = {', node.productproxyid)\012_p(3,'isa = "
	.ascii	"PBXContainerItemProxy;')\012_p(3,'containerPortal ="
	.ascii	" %s /* %s */;', node.id, path.getname(node.path))\012"
	.ascii	"_p(3,'proxyType = 2;')\012_p(3,'remoteGlobalIDStrin"
	.ascii	"g = %s;', node.project.xcode.projectnode.id)\012_p("
	.ascii	"3,'remoteInfo = \"%s\";', node.project.xcode.projec"
	.ascii	"tnode.name)\012_p(2,'};')\012_p(2,'%s /* PBXContain"
	.ascii	"erItemProxy */ = {', node.targetproxyid)\012_p(3,'i"
	.ascii	"sa = PBXContainerItemProxy;')\012_p(3,'containerPor"
	.ascii	"tal = %s /* %s */;', node.id, path.getname(node.pat"
	.ascii	"h))\012_p(3,'proxyType = 1;')\012_p(3,'remoteGlobal"
	.ascii	"IDString = %s;', node.project.xcode.projectnode.tar"
	.ascii	"getid)\012_p(3,'remoteInfo = \"%s\";', node.project"
	.ascii	".xcode.projectnode.name)\012_p(2,'};')\012end\012_p"
	.ascii	"('/* End PBXContainerItemProxy section */')\012_p('"
	.ascii	"')\012end\012end\012function xcode.PBXFileReference"
	.ascii	"(tr,prj)\012_p('/* Begin PBXFileReference section *"
	.ascii	"/')\012tree.traverse(tr, {\012onleaf = function(nod"
	.ascii	"e)\012if not node.path then\012return\012end\012if "
	.ascii	"node.kind == \"product\" then\012_p(2,'%s /* %s */ "
	.ascii	"= {isa = PBXFileReference; explicitFileType = %s; i"
	.ascii	"ncludeInIndex = 0; name = \"%s\"; path = \"%s\"; so"
	.ascii	"urceTree = BUILT_PRODUCTS_DIR; };',\012node.id, nod"
	.ascii	"e.name, xcode.gettargettype(node), node.name, path."
	.ascii	"getname(node.cfg.buildtarget.bundlepath))\012elseif"
	.ascii	" node.parent.parent == tr.projects then\012local re"
	.ascii	"lpath = path.getrelative(tr.project.location, node."
	.ascii	"parent.project.location)\012_p(2,'%s /* %s */ = {is"
	.ascii	"a = PBXFileReference; lastKnownFileType = \"wrapper"
	.ascii	".pb-project\"; name = \"%s\"; path = \"%s\"; source"
	.ascii	"Tree = SOURCE_ROOT; };',\012node.parent.id, node.pa"
	.ascii	"rent.name, node.parent.name, path.join(relpath, nod"
	.ascii	"e.parent.name))\012else\012local pth, src\012if xco"
	.ascii	"de.isframework(node.path) then\012local nodePath = "
	.ascii	"node.path\012local _, matchEnd, variable = string.f"
	.ascii	"ind(nodePath, \"^%$%((.+"
	.ascii	")%)/\")\012if variable then\012nodePath = string.su"
	.ascii	"b(nodePath, matchEnd + 1)\012end\012if string.find("
	.ascii	"nodePath,'/')  then\012if string.find(nodePath,'^%."
	.ascii	"')then\012nodePath = path.getabsolute(path.join(tr."
	.ascii	"project.location, nodePath))\012end\012pth = nodePa"
	.ascii	"th\012elseif path.getextension(nodePath)=='.tbd' th"
	.ascii	"en\012pth = \"/usr/lib/\" .. nodePath\012else\012pt"
	.ascii	"h = \"/System/Library/Frameworks/\" .. nodePath\012"
	.ascii	"end\012if variable then\012src = variable\012if str"
	.ascii	"ing.find(pth, '^/') then\012pth = string.sub(pth, 2"
	.ascii	")\012end\012else\012src = \"<absolute>\"\012end\012"
	.ascii	"else\012src = \"<group>\"\012if node.location then\012"
	.ascii	"pth = node.location\012elseif node.parent.isvpath t"
	.ascii	"hen\012pth = node.cfg.name\012else\012pth = tree.ge"
	.ascii	"tlocalpath(node)\012end\012end\012if (not prj.optio"
	.ascii	"ns.ForceCPP) then\012_p(2,'%s /* %s */ = {isa = PBX"
	.ascii	"FileReference; lastKnownFileType = %s; name = \"%s\""
	.ascii	"; path = \"%s\"; sourceTree = \"%s\"; };',\012node."
	.ascii	"id, node.name, xcode.getfiletype(node), node.name, "
	.ascii	"pth, src)\012else\012_p(2,'%s /* %s */ = {isa = PBX"
	.ascii	"FileReference; explicitFileType = %s; name = \"%s\""
	.ascii	"; path = \"%s\"; sourceTree = \"%s\"; };',\012node."
	.ascii	"id, node.name, xcode.getfiletypeForced(node), node."
	.ascii	"name, pth, src)\012end\012end\012end\012})\012_p('/"
	.ascii	"* End PBXFileReference section */')\012_p('')\012en"
	.ascii	"d\012function xcode.PBXFrameworksBuildPhase(tr)\012"
	.ascii	"_p('/* Begin PBXFrameworksBuildPhase section */')\012"
	.ascii	"_p(2,'%s /* Frameworks */ = {', tr.products.childre"
	.ascii	"n[1].fxstageid)\012_p(3,'isa = PBXFrameworksBuildPh"
	.ascii	"ase;')\012_p(3,'buildActionMask = 2147483647;')\012"
	.ascii	"_p(3,'files = (')\012tree.traverse(tr.frameworks, {"
	.ascii	"\012onleaf = function(node)\012_p(4,'%s /* %s in Fr"
	.ascii	"ameworks */,', node.buildid, node.name)\012end\012}"
	.ascii	")\012tree.traverse(tr.projects, {\012onleaf = funct"
	.ascii	"ion(node)\012_p(4,'%s /* %s in Frameworks */,', nod"
	.ascii	"e.buildid, node.name)\012end\012})\012_p(3,');')\012"
	.ascii	"_p(3,'runOnlyForDeploymentPostprocessing = 0;')\012"
	.ascii	"_p(2,'};')\012_p('/* End PBXFrameworksBuildPhase se"
	.ascii	"ction */')\012_p('')\012end\012function xcode.PBXGr"
	.ascii	"oup(tr)\012_p('/* Begin PBXGroup section */')\012tr"
	.ascii	"ee.traverse(tr, {\012onnode = function(node)\012if "
	.ascii	"(node.path and #node.children == 0) or node.kind =="
	.ascii	" \"vgroup\" then\012return\012end\012if node.parent"
	.ascii	" == tr.projects then\012_p(2,'%s /* Products */ "
	.ascii	"= {', node.productgroupid)\012else\012_p(2,'%s /* %"
	.ascii	"s */ = {', node.id, node.name)\012end\012_p(3,'isa "
	.ascii	"= PBXGroup;')\012_p(3,'children = (')\012for _, chi"
	.ascii	"ldnode in ipairs(node.children) do\012_p(4,'%s /* %"
	.ascii	"s */,', childnode.id, childnode.name)\012end\012_p("
	.ascii	"3,');')\012if node.parent == tr.projects then\012_p"
	.ascii	"(3,'name = Products;')\012else\012_p(3,'name = \"%s"
	.ascii	"\";', node.name)\012if node.location then\012_p(3,'"
	.ascii	"path = \"%s\";', node.location)\012elseif node.path"
	.ascii	" and not node.isvpath then\012local p = node.path\012"
	.ascii	"if node.parent.path then\012p = path.getrelative(no"
	.ascii	"de.parent.path, node.path)\012end\012_p(3,'path = \""
	.ascii	"%s\";', p)\012end\012end\012_p(3,'sourceTree = \"<g"
	.ascii	"roup>\";')\012_p(2,'};')\012end\012}, true)\012_p('"
	.ascii	"/* End PBXGroup section */')\012_p('')\012end\012fu"
	.ascii	"nction xcode.PBXNativeTarget(tr)\012_p('/* Begin PB"
	.ascii	"XNativeTarget section */')\012for _, node in ipairs"
	.ascii	"(tr.products.children) do\012local name = tr.projec"
	.ascii	"t.name\012local function hasBuildCommands(which)\012"
	.ascii	"if #tr.project[which] > 0 then\012return true\012en"
	.ascii	"d\012for _, cfg in ipairs(tr.configs) do\012if #cfg"
	.ascii	"[which] > 0 then\012return true\012end\012end\012en"
	.ascii	"d\012local function dobuildblock(id, label, which, "
	.ascii	"action)\012if hasBuildCommands(which) then\012local"
	.ascii	" commandcount = 0\012for _, cfg in ipairs(tr.config"
	.ascii	"s) do\012commandcount = commandcount + #cfg[which]\012"
	.ascii	"end\012if commandcount > 0 then\012action(id, label"
	.ascii	")\012end\012end\012end\012local function doscriptph"
	.ascii	"ases(which, action)\012local i = 0\012for _, cfg in"
	.ascii	" ipairs(tr.configs) do\012local cfgcmds = cfg[which"
	.ascii	"]\012if cfgcmds ~= nil then\012for __, scripts in i"
	.ascii	"pairs(cfgcmds) do\012for ___, script in ipairs(scri"
	.ascii	"pts) do\012local cmd = script[1]\012local label = x"
	.ascii	"code.getscriptphaselabel(cmd, i, cfg)\012local id ="
	.ascii	" xcode.uuid(label)\012action(id, label)\012i = i + "
	.ascii	"1\012end\012end\012end\012end\012end\012local funct"
	.ascii	"ion docopyresources(which, action)\012if hasBuildCo"
	.ascii	"mmands(which) then\012local targets = tr.project[wh"
	.ascii	"ich]\012if #targets > 0 then\012local i = 0\012for "
	.ascii	"_, t in ipairs(targets) do\012for __, tt in ipairs("
	.ascii	"t) do\012local label = xcode.getcopyphaselabel('Res"
	.ascii	"ources', i, tt[1])\012local id = xcode.uuid(label)\012"
	.ascii	"action(id, label)\012i = i + 1\012end\012end\012end"
	.ascii	"\012end\012end\012local function docopyframeworks(w"
	.ascii	"hich, action)\012if hasB"
	.ascii	"uildCommands(which) then\012local targets = tr.proj"
	.ascii	"ect[which]\012if #targets > 0 then\012local label ="
	.ascii	" \"Copy Frameworks\"\012local id = xcode.uuid(label"
	.ascii	")\012action(id, label)\012end\012end\012end\012loca"
	.ascii	"l function _p_label(id, label)\012_p(4, '%s /* %s *"
	.ascii	"/,', id, label)\012end\012_p(2,'%s /* %s */ = {', n"
	.ascii	"ode.targetid, name)\012_p(3,'isa = PBXNativeTarget;"
	.ascii	"')\012_p(3,'buildConfigurationList = %s /* Build co"
	.ascii	"nfiguration list for PBXNativeTarget \"%s\" */;', n"
	.ascii	"ode.cfgsection, name)\012_p(3,'buildPhases = (')\012"
	.ascii	"dobuildblock('9607AE1010C857E500CD1376', 'Prebuild'"
	.ascii	", 'prebuildcommands', _p_label)\012_p(4,'%s /* Reso"
	.ascii	"urces */,', node.resstageid)\012_p(4,'%s /* Sources"
	.ascii	" */,', node.sourcesid)\012dobuildblock('9607AE3510C"
	.ascii	"85E7E00CD1376', 'Prelink', 'prelinkcommands', _p_la"
	.ascii	"bel)\012_p(4,'%s /* Frameworks */,', node.fxstageid"
	.ascii	")\012dobuildblock('9607AE3710C85E8F00CD1376', 'Post"
	.ascii	"build', 'postbuildcommands', _p_label)\012doscriptp"
	.ascii	"hases(\"xcodescriptphases\", _p_label)\012docopyres"
	.ascii	"ources(\"xcodecopyresources\", _p_label)\012if tr.p"
	.ascii	"roject.kind == \"WindowedApp\" then\012docopyframew"
	.ascii	"orks(\"xcodecopyframeworks\", _p_label)\012end\012_"
	.ascii	"p(3,');')\012_p(3,'buildRules = (')\012_p(3,');')\012"
	.ascii	"_p(3,'dependencies = (')\012for _, node in ipairs(t"
	.ascii	"r.projects.children) do\012_p(4,'%s /* PBXTargetDep"
	.ascii	"endency */,', node.targetdependid)\012end\012_p(3,'"
	.ascii	");')\012_p(3,'name = \"%s\";', name)\012local p\012"
	.ascii	"if node.cfg.kind == \"ConsoleApp\" then\012p = \"$("
	.ascii	"HOME)/bin\"\012elseif node.cfg.kind == \"WindowedAp"
	.ascii	"p\" then\012p = \"$(HOME)/Applications\"\012end\012"
	.ascii	"if p then\012_p(3,'productInstallPath = \"%s\";', p"
	.ascii	")\012end\012_p(3,'productName = \"%s\";', name)\012"
	.ascii	"_p(3,'productReference = %s /* %s */;', node.id, no"
	.ascii	"de.name)\012_p(3,'productType = \"%s\";', xcode.get"
	.ascii	"producttype(node))\012_p(2,'};')\012end\012_p('/* E"
	.ascii	"nd PBXNativeTarget section */')\012_p('')\012end\012"
	.ascii	"function xcode.PBXProject(tr, compatVersion)\012_p("
	.ascii	"'/* Begin PBXProject section */')\012_p(2,'__RootOb"
	.ascii	"ject_ /* Project object */ = {')\012_p(3,'isa = PBX"
	.ascii	"Project;')\012_p(3,'buildConfigurationList = 1DEB92"
	.ascii	"8908733DD80010E9CD /* Build configuration list for "
	.ascii	"PBXProject \"%s\" */;', tr.name)\012_p(3,'compatibi"
	.ascii	"lityVersion = \"Xcode %s\";', compatVersion)\012_p("
	.ascii	"3,'hasScanne"
	.ascii	"dForEncodings = 1;')\012_p(3,'mainGroup = %s /* %s "
	.ascii	"*/;', tr.id, tr.name)\012_p(3,'projectDirPath = \"\""
	.ascii	";')\012if #tr.projects.children > 0 then\012_p(3,'p"
	.ascii	"rojectReferences = (')\012for _, node in ipairs(tr."
	.ascii	"projects.children) do\012_p(4,'{')\012_p(5,'Product"
	.ascii	"Group = %s /* Products */;', node.productgroupid)\012"
	.ascii	"_p(5,'ProjectRef = %s /* %s */;', node.id, path.get"
	.ascii	"name(node.path))\012_p(4,'},')\012end\012_p(3,');')"
	.ascii	"\012end\012_p(3,'projectRoot = \"\";')\012_p(3,'tar"
	.ascii	"gets = (')\012for _, node in ipairs(tr.products.chi"
	.ascii	"ldren) do\012_p(4,'%s /* %s */,', node.targetid, no"
	.ascii	"de.name)\012end\012_p(3,');')\012_p(2,'};')\012_p('"
	.ascii	"/* End PBXProject section */')\012_p('')\012end\012"
	.ascii	"function xcode.PBXReferenceProxy(tr)\012if #tr.proj"
	.ascii	"ects.children > 0 then\012_p('/* Begin PBXReference"
	.ascii	"Proxy section */')\012tree.traverse(tr.projects, {\012"
	.ascii	"onleaf = function(node)\012_p(2,'%s /* %s */ = {', "
	.ascii	"node.id, node.name)\012_p(3,'isa = PBXReferenceProx"
	.ascii	"y;')\012_p(3,'fileType = %s;', xcode.gettargettype("
	.ascii	"node))\012_p(3,'path = \"%s\";', node.path)\012_p(3"
	.ascii	",'remoteRef = %s /* PBXContainerItemProxy */;', nod"
	.ascii	"e.parent.productproxyid)\012_p(3,'sourceTree = BUIL"
	.ascii	"T_PRODUCTS_DIR;')\012_p(2,'};')\012end\012})\012_p("
	.ascii	"'/* End PBXReferenceProxy section */')\012_p('')\012"
	.ascii	"end\012end\012function xcode.PBXResourcesBuildPhase"
	.ascii	"(tr)\012_p('/* Begin PBXResourcesBuildPhase section"
	.ascii	" */')\012for _, target in ipairs(tr.products.childr"
	.ascii	"en) do\012_p(2,'%s /* Resources */ = {', target.res"
	.ascii	"stageid)\012_p(3,'isa = PBXResourcesBuildPhase;')\012"
	.ascii	"_p(3,'buildActionMask = 2147483647;')\012_p(3,'file"
	.ascii	"s = (')\012tree.traverse(tr, {\012onnode = function"
	.ascii	"(node)\012if xcode.getbuildcategory(node) == \"Reso"
	.ascii	"urces\" then\012_p(4,'%s /* %s in Resources */,', n"
	.ascii	"ode.buildid, node.name)\012end\012end\012})\012_p(3"
	.ascii	",');')\012_p(3,'runOnlyForDeploymentPostprocessing "
	.ascii	"= 0;')\012_p(2,'};')\012end\012_p('/* End PBXResour"
	.ascii	"cesBuildPhase section */')\012_p('')\012end\012func"
	.ascii	"tion xcode.PBXShellScriptBuildPhase(tr)\012local wr"
	.ascii	"apperWritten = false\012local function doblock(id, "
	.ascii	"name, commands, files)\012if commands ~= nil then\012"
	.ascii	"commands = table.flatten(commands)\012end\012if #co"
	.ascii	"mmands > 0 then\012if not wrapperWritten then\012_p"
	.ascii	"('/* Begin PBXShellScriptBuildPhase section */')\012"
	.ascii	"wrapperWritten ="
	.ascii	" true\012end\012_p(2,'%s /* %s */ = {', id, name)\012"
	.ascii	"_p(3,'isa = PBXShellScriptBuildPhase;')\012_p(3,'bu"
	.ascii	"ildActionMask = 2147483647;')\012_p(3,'files = (')\012"
	.ascii	"_p(3,');')\012_p(3,'inputPaths = (');\012if files ~"
	.ascii	"= nil then\012files = table.flatten(files)\012if #f"
	.ascii	"iles > 0 then\012for _, file in ipairs(files) do\012"
	.ascii	"_p(4, '\"%s\",', file)\012end\012end\012end\012_p(3"
	.ascii	",');');\012_p(3,'name = %s;', name);\012_p(3,'outpu"
	.ascii	"tPaths = (');\012_p(3,');');\012_p(3,'runOnlyForDep"
	.ascii	"loymentPostprocessing = 0;');\012_p(3,'shellPath = "
	.ascii	"/bin/sh;');\012_p(3,'shellScript = \"%s\";', table."
	.ascii	"concat(commands, \"\\\\n\"):gsub('\"', '\\\\\"'))\012"
	.ascii	"_p(2,'};')\012end\012end\012local function wrapcomm"
	.ascii	"ands(cmds, cfg)\012local commands = {}\012if #cmds "
	.ascii	"> 0 then\012table.insert(commands, 'if [ \"${CONFIG"
	.ascii	"URATION}\" = \"' .. xcode.getconfigname(cfg) .. '\""
	.ascii	" ]; then')\012for i = 1, #cmds do\012local cmd = cm"
	.ascii	"ds[i]\012cmd = cmd:gsub('\\\\','\\\\\\\\')\012table"
	.ascii	".insert(commands, cmd)\012end\012table.insert(comma"
	.ascii	"nds, 'fi')\012end\012return commands\012end\012loca"
	.ascii	"l function dobuildblock(id, name, which)\012local c"
	.ascii	"ommands = {}\012for _, cfg in ipairs(tr.configs) do"
	.ascii	"\012local cfgcmds = wrapcommands(cfg[which], cfg)\012"
	.ascii	"if #cfgcmds > 0 then\012for i, cmd in ipairs(cfgcmd"
	.ascii	"s) do\012table.insert(commands, cmd)\012end\012end\012"
	.ascii	"end\012doblock(id, name, commands)\012end\012local "
	.ascii	"function doscriptphases(which)\012local i = 0\012fo"
	.ascii	"r _, cfg in ipairs(tr.configs) do\012local cfgcmds "
	.ascii	"= cfg[which]\012if cfgcmds ~= nil then\012for __, s"
	.ascii	"cripts in ipairs(cfgcmds) do\012for ___, script in "
	.ascii	"ipairs(scripts) do\012local cmd = script[1]\012loca"
	.ascii	"l files = script[2]\012local label = xcode.getscrip"
	.ascii	"tphaselabel(cmd, i, cfg)\012local id = xcode.uuid(l"
	.ascii	"abel)\012doblock(id, label, wrapcommands({cmd}, cfg"
	.ascii	"), files)\012i = i + 1\012end\012end\012end\012end\012"
	.ascii	"end\012dobuildblock(\"9607AE1010C857E500CD1376\", \""
	.ascii	"Prebuild\", \"prebuildcommands\")\012dobuildblock(\""
	.ascii	"9607AE3510C85E7E00CD1376\", \"Prelink\", \"prelinkc"
	.ascii	"ommands\")\012dobuildblock(\"9607AE3710C85E8F00CD13"
	.ascii	"76\", \"Postbuild\", \"postbuildcommands\")\012dosc"
	.ascii	"riptphases(\"xcodescriptphases\")\012if wrapperWrit"
	.ascii	"ten then\012_p('/* End PBXShellScriptBuildPhase sec"
	.ascii	"tion */')\012end\012end\012function xcode.PBXSource"
	.ascii	"sBuildPhase(tr,prj)\012_p('/* Begin PBXSourcesBuild"
	.ascii	"Phase section "
	.ascii	"*/')\012for _, target in ipairs(tr.products.childre"
	.ascii	"n) do\012_p(2,'%s /* Sources */ = {', target.source"
	.ascii	"sid)\012_p(3,'isa = PBXSourcesBuildPhase;')\012_p(3"
	.ascii	",'buildActionMask = 2147483647;')\012_p(3,'files = "
	.ascii	"(')\012tree.traverse(tr, {\012onleaf = function(nod"
	.ascii	"e)\012if xcode.getbuildcategory(node) == \"Sources\""
	.ascii	" then\012if not table.icontains(prj.excludes, node."
	.ascii	"cfg.name) then -- if not excluded\012_p(4,'%s /* %s"
	.ascii	" in Sources */,', node.buildid, node.name)\012end\012"
	.ascii	"end\012end\012})\012_p(3,');')\012_p(3,'runOnlyForD"
	.ascii	"eploymentPostprocessing = 0;')\012_p(2,'};')\012end"
	.ascii	"\012_p('/* End PBXSourcesBuildPhase section */')\012"
	.ascii	"_p('')\012end\012function xcode.PBXCopyFilesBuildPh"
	.ascii	"ase(tr)\012local wrapperWritten = false\012local fu"
	.ascii	"nction doblock(id, name, folderSpec, path, files)\012"
	.ascii	"if #files > 0 then\012if not wrapperWritten then\012"
	.ascii	"_p('/* Begin PBXCopyFilesBuildPhase section */')\012"
	.ascii	"wrapperWritten = true\012end\012_p(2,'%s /* %s */ ="
	.ascii	" {', id, name)\012_p(3,'isa = PBXCopyFilesBuildPhas"
	.ascii	"e;')\012_p(3,'buildActionMask = 2147483647;')\012_p"
	.ascii	"(3,'dstPath = \\\"%s\\\";', path)\012_p(3,'dstSubfo"
	.ascii	"lderSpec = \\\"%s\\\";', folderSpec)\012_p(3,'files"
	.ascii	" = (')\012tree.traverse(tr, {\012onleaf = function("
	.ascii	"node)\012if table.icontains(files, node.name) then\012"
	.ascii	"_p(4,'%s /* %s in %s */,',\012xcode.uuid(node.name "
	.ascii	".. 'in CopyFiles'), node.name, 'CopyFiles')\012end\012"
	.ascii	"end\012})\012_p(3,');')\012_p(3,'runOnlyForDeployme"
	.ascii	"ntPostprocessing = 0;');\012_p(2,'};')\012end\012en"
	.ascii	"d\012local function docopyresources(which)\012local"
	.ascii	" targets = tr.project[which]\012if #targets > 0 the"
	.ascii	"n\012local i = 0\012for _, t in ipairs(targets) do\012"
	.ascii	"for __, tt in ipairs(t) do\012local label = xcode.g"
	.ascii	"etcopyphaselabel('Resources', i, tt[1])\012local id"
	.ascii	" = xcode.uuid(label)\012local files = table.transla"
	.ascii	"te(table.flatten(tt[2]), path.getname)\012doblock(i"
	.ascii	"d, label, 7, tt[1], files)\012i = i + 1\012end\012e"
	.ascii	"nd\012end\012end\012local function docopyframeworks"
	.ascii	"(which)\012local targets = tr.project[which]\012if "
	.ascii	"#targets > 0 then\012local label = \"Copy Framework"
	.ascii	"s\"\012local id = xcode.uuid(label)\012local files "
	.ascii	"= table.translate(table.flatten(targets), path.getn"
	.ascii	"ame)\012doblock(id, label, 10, \"\", files)\012end\012"
	.ascii	"end\012docopyresources(\"xcodecopyresources\")\012i"
	.ascii	"f tr.project.kind == \"Win"
	.ascii	"dowedApp\" then\012docopyframeworks(\"xcodecopyfram"
	.ascii	"eworks\")\012end\012if wrapperWritten then\012_p('/"
	.ascii	"* End PBXCopyFilesBuildPhase section */')\012end\012"
	.ascii	"end\012function xcode.PBXVariantGroup(tr)\012_p('/*"
	.ascii	" Begin PBXVariantGroup section */')\012tree.travers"
	.ascii	"e(tr, {\012onbranch = function(node)\012if node.kin"
	.ascii	"d == \"vgroup\" then\012_p(2,'%s /* %s */ = {', nod"
	.ascii	"e.id, node.name)\012_p(3,'isa = PBXVariantGroup;')\012"
	.ascii	"_p(3,'children = (')\012for _, lang in ipairs(node."
	.ascii	"children) do\012_p(4,'%s /* %s */,', lang.id, lang."
	.ascii	"name)\012end\012_p(3,');')\012_p(3,'name = %s;', no"
	.ascii	"de.name)\012_p(3,'sourceTree = \"<group>\";')\012_p"
	.ascii	"(2,'};')\012end\012end\012})\012_p('/* End PBXVaria"
	.ascii	"ntGroup section */')\012_p('')\012end\012function x"
	.ascii	"code.PBXTargetDependency(tr)\012if #tr.projects.chi"
	.ascii	"ldren > 0 then\012_p('/* Begin PBXTargetDependency "
	.ascii	"section */')\012tree.traverse(tr.projects, {\012onl"
	.ascii	"eaf = function(node)\012_p(2,'%s /* PBXTargetDepend"
	.ascii	"ency */ = {', node.parent.targetdependid)\012_p(3,'"
	.ascii	"isa = PBXTargetDependency;')\012_p(3,'name = \"%s\""
	.ascii	";', node.name)\012_p(3,'targetProxy = %s /* PBXCont"
	.ascii	"ainerItemProxy */;', node.parent.targetproxyid)\012"
	.ascii	"_p(2,'};')\012end\012})\012_p('/* End PBXTargetDepe"
	.ascii	"ndency section */')\012_p('')\012end\012end\012func"
	.ascii	"tion xcode.cfg_excluded_files(prj, cfg)\012local ex"
	.ascii	"cluded = {}\012local function exclude_pattern(file)"
	.ascii	"\012if path.isabsolute(file) then\012return file\012"
	.ascii	"end\012local start, term = file:findlast(\"/%.%./\""
	.ascii	")\012if term then\012return path.join(\"*\", file:s"
	.ascii	"ub(term + 1))\012end\012start, term = file:find(\"%"
	.ascii	".%./\")\012if start == 1 then\012return path.join(\""
	.ascii	"*\", file:sub(term + 1))\012end\012return path.join"
	.ascii	"(\"*\", file)\012end\012local function add_file(fil"
	.ascii	"e)\012local name = exclude_pattern(file)\012if not "
	.ascii	"table.icontains(excluded, name) then\012table.inser"
	.ascii	"t(excluded, name)\012end\012end\012local function v"
	.ascii	"erify_file(file)\012local name = exclude_pattern(fi"
	.ascii	"le)\012if table.icontains(excluded, name) then\012e"
	.ascii	"rror(\"'\" .. file .. \"' would be excluded by the "
	.ascii	"rule to exclude '\" .. name .. \"'\")\012end\012end"
	.ascii	"\012for _, file in ipairs(cfg.excludes) do\012add_f"
	.ascii	"ile(file)\012end\012for _, file in ipairs(prj.allfi"
	.ascii	"les) do\012if not table.icontains(prj.excludes, fil"
	.ascii	"e) and not table.icontains(cfg.excludes, file) then"
	.ascii	"\012if"
	.ascii	" not table.icontains(cfg.files, file) then\012add_f"
	.ascii	"ile(file)\012else\012verify_file(file)\012end\012en"
	.ascii	"d\012end\012table.sort(excluded)\012return excluded"
	.ascii	"\012end\012function xcode.XCBuildConfiguration_Impl"
	.ascii	"(tr, id, opts, cfg)\012local cfgname = xcode.getcon"
	.ascii	"figname(cfg)\012_p(2,'%s /* %s */ = {', id, cfgname"
	.ascii	")\012_p(3,'isa = XCBuildConfiguration;')\012_p(3,'b"
	.ascii	"uildSettings = {')\012for k, v in table.sortedpairs"
	.ascii	"(opts) do\012if type(v) == \"table\" then\012if #v "
	.ascii	"> 0 then\012_p(4,'%s = (', k)\012for i, v2 in ipair"
	.ascii	"s(v) do\012_p(5,'%s,', xcode.quotestr(tostring(v2))"
	.ascii	")\012end\012_p(4,');')\012end\012else\012_p(4,'%s ="
	.ascii	" %s;', k, xcode.quotestr(tostring(v)))\012end\012en"
	.ascii	"d\012_p(3,'};')\012_p(3,'name = %s;', xcode.quotest"
	.ascii	"r(cfgname))\012_p(2,'};')\012end\012local function "
	.ascii	"add_options(options, extras)\012for _, tbl in ipair"
	.ascii	"s(extras) do\012for tkey, tval in pairs(tbl) do\012"
	.ascii	"options[tkey] = tval\012end\012end\012end\012local "
	.ascii	"function add_wholearchive_links(opts, cfg)\012if #c"
	.ascii	"fg.wholearchive > 0 then\012local linkopts = {}\012"
	.ascii	"for _, depcfg in ipairs(premake.getlinks(cfg, \"sib"
	.ascii	"lings\", \"object\")) do\012if table.icontains(cfg."
	.ascii	"wholearchive, depcfg.project.name) then\012local li"
	.ascii	"nkpath = path.rebase(depcfg.linktarget.fullpath, de"
	.ascii	"pcfg.location, cfg.location)\012table.insert(linkop"
	.ascii	"ts, \"-force_load\")\012table.insert(linkopts, link"
	.ascii	"path)\012end\012end\012if opts.OTHER_LDFLAGS then\012"
	.ascii	"linkopts = table.join(linkopts, opts.OTHER_LDFLAGS)"
	.ascii	"\012end\012opts.OTHER_LDFLAGS = linkopts\012end\012"
	.ascii	"end\012function xcode.XCBuildConfiguration(tr, prj,"
	.ascii	" opts)\012_p('/* Begin XCBuildConfiguration section"
	.ascii	" */')\012for _, target in ipairs(tr.products.childr"
	.ascii	"en) do\012for _, cfg in ipairs(tr.configs) do\012lo"
	.ascii	"cal values = opts.ontarget(tr, target, cfg)\012add_"
	.ascii	"options(values, cfg.xcodetargetopts)\012xcode.XCBui"
	.ascii	"ldConfiguration_Impl(tr, cfg.xcode.targetid, values"
	.ascii	", cfg)\012end\012end\012for _, cfg in ipairs(tr.con"
	.ascii	"figs) do\012local values = opts.onproject(tr, prj, "
	.ascii	"cfg)\012add_options(values, cfg.xcodeprojectopts)\012"
	.ascii	"add_wholearchive_links(values, cfg)\012xcode.XCBuil"
	.ascii	"dConfiguration_Impl(tr, cfg.xcode.projectid, values"
	.ascii	", cfg)\012end\012_p('/* End XCBuildConfiguration se"
	.ascii	"ction */')\012_p('')\012end\012function xcode.XCBui"
	.ascii	"ldConfigurationList(tr)\012local "
	.ascii	"sln = tr.project.solution\012_p('/* Begin XCConfigu"
	.ascii	"rationList section */')\012for _, target in ipairs("
	.ascii	"tr.products.children) do\012_p(2,'%s /* Build confi"
	.ascii	"guration list for PBXNativeTarget \"%s\" */ = {', t"
	.ascii	"arget.cfgsection, target.name)\012_p(3,'isa = XCCon"
	.ascii	"figurationList;')\012_p(3,'buildConfigurations = ('"
	.ascii	")\012for _, cfg in ipairs(tr.configs) do\012_p(4,'%"
	.ascii	"s /* %s */,', cfg.xcode.targetid, xcode.getconfigna"
	.ascii	"me(cfg))\012end\012_p(3,');')\012_p(3,'defaultConfi"
	.ascii	"gurationIsVisible = 0;')\012_p(3,'defaultConfigurat"
	.ascii	"ionName = \"%s\";', xcode.getconfigname(tr.configs["
	.ascii	"1]))\012_p(2,'};')\012end\012_p(2,'1DEB928908733DD8"
	.ascii	"0010E9CD /* Build configuration list for PBXProject"
	.ascii	" \"%s\" */ = {', tr.name)\012_p(3,'isa = XCConfigur"
	.ascii	"ationList;')\012_p(3,'buildConfigurations = (')\012"
	.ascii	"for _, cfg in ipairs(tr.configs) do\012_p(4,'%s /* "
	.ascii	"%s */,', cfg.xcode.projectid, xcode.getconfigname(c"
	.ascii	"fg))\012end\012_p(3,');')\012_p(3,'defaultConfigura"
	.ascii	"tionIsVisible = 0;')\012_p(3,'defaultConfigurationN"
	.ascii	"ame = \"%s\";', xcode.getconfigname(tr.configs[1]))"
	.ascii	"\012_p(2,'};')\012_p('/* End XCConfigurationList se"
	.ascii	"ction */')\012_p('')\012end\012function xcode.Foote"
	.ascii	"r()\012_p(1,'};')\012_p('\\trootObject = __RootObje"
	.ascii	"ct_ /* Project object */;')\012_p('}')\012end\012\000"
	.align	2
.LC51:
	.ascii	"local xcode = premake.xcode\012local tree = premake"
	.ascii	".tree\012function xcode.buildprjtree(prj)\012local "
	.ascii	"tr = premake.project.buildsourcetree(prj, true)\012"
	.ascii	"tr.configs = {}\012for _, cfgname in ipairs(prj.sol"
	.ascii	"ution.configurations) do\012for _, platform in ipai"
	.ascii	"rs(prj.solution.xcode.platforms) do\012local cfg = "
	.ascii	"premake.getconfig(prj, cfgname, platform)\012cfg.xc"
	.ascii	"ode = {}\012cfg.xcode.targetid = xcode.newid(prj.xc"
	.ascii	"ode.projectnode, \"tgt:\"..platform..cfgname)\012cf"
	.ascii	"g.xcode.projectid = xcode.newid(tr, \"prj:\"..platf"
	.ascii	"orm..cfgname)\012table.insert(tr.configs, cfg)\012e"
	.ascii	"nd\012end\012tree.traverse(tr, {\012onbranch = func"
	.ascii	"tion(node)\012if path.getextension(node.name) == \""
	.ascii	".lproj\" then\012local lang = path.getbasename(node"
	.ascii	".name)  -- \"English\", \"French\", etc.\012for _, "
	.ascii	"filenode in ipairs(node.children) do\012local grpno"
	.ascii	"de = node.parent.children[filenode.name]\012if not "
	.ascii	"grpnode then\012grpnode = tree.insert(node.parent, "
	.ascii	"tree.new(filenode.name))\012grpnode.kind = \"vgroup"
	.ascii	"\"\012end\012filenode.name = path.getbasename(lang)"
	.ascii	"\012tree.insert(grpnode, filenode)\012end\012tree.r"
	.ascii	"emove(node)\012end\012end\012})\012tree.traverse(tr"
	.ascii	", {\012onbranch = function(node)\012if path.getexte"
	.ascii	"nsion(node.name) == \".xcassets\" then\012node.chil"
	.ascii	"dren = {}\012end\012end\012})\012tr.frameworks = tr"
	.ascii	"ee.new(\"Frameworks\")\012for cfg in premake.eachco"
	.ascii	"nfig(prj) do\012for _, link in ipairs(premake.getli"
	.ascii	"nks(cfg, \"system\", \"fullpath\")) do\012local nam"
	.ascii	"e = path.getname(link)\012if xcode.isframework(name"
	.ascii	") and not tr.frameworks.children[name] then\012node"
	.ascii	" = tree.insert(tr.frameworks, tree.new(name))\012no"
	.ascii	"de.path = link\012end\012end\012end\012if #tr.frame"
	.ascii	"works.children > 0 then\012tree.insert(tr, tr.frame"
	.ascii	"works)\012end\012tr.products = tree.insert(tr, tree"
	.ascii	".new(\"Products\"))\012tr.projects = tree.new(\"Pro"
	.ascii	"jects\")\012for _, dep in ipairs(premake.getdepende"
	.ascii	"ncies(prj, \"sibling\", \"object\")) do\012local xc"
	.ascii	"path = xcode.getxcodeprojname(dep)\012local xcnode "
	.ascii	"= tree.insert(tr.projects, tree.new(path.getname(xc"
	.ascii	"path)))\012xcnode.path = xcpath\012xcnode.project ="
	.ascii	" dep\012xcnode.productgroupid = xcode.newid(xcnode,"
	.ascii	" \"prodgrp\")\012xcnode.productproxyid = xcode.newi"
	.ascii	"d(xcnode, \"prodprox\")\012xcnode.targetproxyid  = "
	.ascii	"xcode.newid(xcnode,"
	.ascii	" \"targprox\")\012xcnode.targetdependid = xcode.new"
	.ascii	"id(xcnode, \"targdep\")\012local cfg = premake.getc"
	.ascii	"onfig(dep, prj.configurations[1])\012node = tree.in"
	.ascii	"sert(xcnode, tree.new(cfg.linktarget.name))\012node"
	.ascii	".path = cfg.linktarget.fullpath\012node.cfg = cfg\012"
	.ascii	"end\012if #tr.projects.children > 0 then\012tree.in"
	.ascii	"sert(tr, tr.projects)\012end\012tree.traverse(tr, {"
	.ascii	"\012onbranchexit = function(node)\012for _, child i"
	.ascii	"n ipairs(node.children) do\012if (child.location) t"
	.ascii	"hen\012if (node.location) then\012while (not string"
	.ascii	".startswith(child.location, node.location)) do\012n"
	.ascii	"ode.location = path.getdirectory(node.location)\012"
	.ascii	"end\012else\012node.location = path.getdirectory(ch"
	.ascii	"ild.location)\012end\012end\012end\012end,\012onlea"
	.ascii	"f = function(node)\012if (node.cfg) then\012node.lo"
	.ascii	"cation = node.cfg.name\012end\012end\012}, true)\012"
	.ascii	"tree.traverse(tr, {\012onbranchexit = function(node"
	.ascii	", depth)\012if (node.location and node.parent and n"
	.ascii	"ode.parent.location) then\012node.location = path.g"
	.ascii	"etrelative(node.parent.location, node.location)\012"
	.ascii	"end\012end,\012onleaf = function(node, depth)\012if"
	.ascii	" (node.location and node.parent and node.parent.loc"
	.ascii	"ation) then\012node.location = path.getrelative(nod"
	.ascii	"e.parent.location, node.location)\012end\012end\012"
	.ascii	"}, true)\012tree.traverse(tr, {\012onnode = functio"
	.ascii	"n(node)\012node.id = xcode.newid(node)\012if xcode."
	.ascii	"getbuildcategory(node) then\012node.buildid = xcode"
	.ascii	".newid(node, \"build\")\012end\012if string.endswit"
	.ascii	"h(node.name, \"Info.plist\") then\012tr.infoplist ="
	.ascii	" node\012end\012if string.endswith(node.name, \".en"
	.ascii	"titlements\") then\012tr.entitlements = node\012end"
	.ascii	"\012end\012}, true)\012node = tree.insert(tr.produc"
	.ascii	"ts, prj.xcode.projectnode)\012node.kind = \"product"
	.ascii	"\"\012node.path = node.cfg.buildtarget.fullpath\012"
	.ascii	"node.cfgsection = xcode.newid(node, \"cfg\")\012nod"
	.ascii	"e.resstageid = xcode.newid(node, \"rez\")\012node.s"
	.ascii	"ourcesid  = xcode.newid(node, \"src\")\012node.fxst"
	.ascii	"ageid  = xcode.newid(node, \"fxs\")\012return tr\012"
	.ascii	"end\012\000"
	.align	2
.LC52:
	.ascii	"local premake = premake\012local xcode   = premake."
	.ascii	"xcode\012local function buildableref(indent, prj, c"
	.ascii	"fg)\012cfg = cfg or premake.eachconfig(prj)()\012_p"
	.ascii	"(indent + 0, '<BuildableReference')\012_p(indent + "
	.ascii	"1, 'BuildableIdentifier = \"primary\"')\012_p(inden"
	.ascii	"t + 1, 'BlueprintIdentifier = \"%s\"', prj.xcode.pr"
	.ascii	"ojectnode.targetid)\012_p(indent + 1, 'BuildableNam"
	.ascii	"e = \"%s\"', cfg.buildtarget.name)\012_p(indent + 1"
	.ascii	", 'BlueprintName = \"%s\"', prj.name)\012_p(indent "
	.ascii	"+ 1, 'ReferencedContainer = \"container:%s.xcodepro"
	.ascii	"j\">', prj.name)\012_p(indent + 0, '</BuildableRefe"
	.ascii	"rence>')\012end\012local function cmdlineargs(inden"
	.ascii	"t, cfg)\012if #cfg.debugargs > 0 then\012_p(indent,"
	.ascii	" '<CommandLineArguments>')\012for _, arg in ipairs("
	.ascii	"cfg.debugargs) do\012_p(indent + 1, '<CommandLineAr"
	.ascii	"gument')\012_p(indent + 2, 'argument = \"%s\"', arg"
	.ascii	")\012_p(indent + 2, 'isEnabled = \"YES\">')\012_p(i"
	.ascii	"ndent + 1, '</CommandLineArgument>')\012end\012_p(i"
	.ascii	"ndent, '</CommandLineArguments>')\012end\012end\012"
	.ascii	"local function envvars(indent, cfg)\012if #cfg.debu"
	.ascii	"genvs > 0 then\012_p(indent, '<EnvironmentVariables"
	.ascii	">')\012for _, arg in ipairs(cfg.debugenvs) do\012lo"
	.ascii	"cal eq = arg:find(\"=\")\012local k = arg:sub(1, eq"
	.ascii	")\012local v = arg:sub(eq + 1)\012_p(indent + 1, '<"
	.ascii	"EnvironmentVariable')\012_p(indent + 2, 'key = \"%s"
	.ascii	"\"', arg:sub(1, eq))\012_p(indent + 2, 'value = \"%"
	.ascii	"s\"', arg:sub(eq))\012_p(indent + 2, 'isEnabled = \""
	.ascii	"YES\">')\012_p(indent + 1, '</EnvironmentVariable>'"
	.ascii	")\012end\012_p(indent, '</EnvironmentVariables>')\012"
	.ascii	"end\012end\012local function workingdir(dir)\012if "
	.ascii	"not path.isabsolute(dir) then\012dir = \"$PROJECT_D"
	.ascii	"IR/\" .. dir\012end\012return dir\012end\012local f"
	.ascii	"unction bestconfig(prj, fordebug)\012local bestcfg "
	.ascii	"= nil\012local bestscore = -1\012for cfg in premake"
	.ascii	".eachconfig(prj) do\012local score = 0\012if cfg.pl"
	.ascii	"atform == \"Native\" then\012score = score + 10\012"
	.ascii	"end\012if fordebug and cfg.name == \"Debug\" then\012"
	.ascii	"score = score + 1\012end\012if not fordebug and cfg"
	.ascii	".name == \"Release\" then\012score = score + 1\012e"
	.ascii	"nd\012if score > bestscore then\012bestcfg = cfg\012"
	.ascii	"bestscore = score\012end\012end\012return bestcfg\012"
	.ascii	"end\012function xcode.scheme(tobuild, primary, sche"
	.ascii	"mecfg)\012_p('<?xml version=\"1.0\" encoding=\"UTF-"
	.ascii	"8\"?>')\012_p('<Scheme')\012_p(1, 'LastUpgr"
	.ascii	"adeVersion = \"0940\"')\012_p(1, 'version = \"1.3\""
	.ascii	">')\012_p(1, '<BuildAction')\012_p(2, 'parallelizeB"
	.ascii	"uildables = \"YES\"')\012_p(2, 'buildImplicitDepend"
	.ascii	"encies = \"YES\">')\012_p(2, '<BuildActionEntries>'"
	.ascii	")\012for _, prj in ipairs(tobuild) do\012_p(3, '<Bu"
	.ascii	"ildActionEntry')\012_p(4, 'buildForTesting = \"YES\""
	.ascii	"')\012_p(4, 'buildForRunning = \"YES\"')\012_p(4, '"
	.ascii	"buildForProfiling = \"YES\"')\012_p(4, 'buildForArc"
	.ascii	"hiving = \"YES\"')\012_p(4, 'buildForAnalyzing = \""
	.ascii	"YES\">')\012buildableref(4, prj)\012_p(3, '</BuildA"
	.ascii	"ctionEntry>')\012end\012local debugcfg    = schemec"
	.ascii	"fg or bestconfig(primary, true)\012local releasecfg"
	.ascii	"  = schemecfg or bestconfig(primary, false)\012loca"
	.ascii	"l debugname   = xcode.getconfigname(debugcfg)\012lo"
	.ascii	"cal releasename = xcode.getconfigname(releasecfg)\012"
	.ascii	"_p(2, '</BuildActionEntries>')\012_p(1, '</BuildAct"
	.ascii	"ion>')\012_p(1, '<TestAction')\012_p(2, 'buildConfi"
	.ascii	"guration = \"%s\"', debugname)\012_p(2, 'selectedDe"
	.ascii	"buggerIdentifier = \"Xcode.DebuggerFoundation.Debug"
	.ascii	"ger.LLDB\"')\012_p(2, 'selectedLauncherIdentifier ="
	.ascii	" \"Xcode.DebuggerFoundation.Launcher.LLDB\"')\012_p"
	.ascii	"(2, 'shouldUseLaunchSchemeArgsEnv = \"YES\">')\012_"
	.ascii	"p(2, '<Testables>')\012_p(2, '</Testables>')\012_p("
	.ascii	"2, '<MacroExpansion>')\012buildableref(3, primary, "
	.ascii	"debugcfg)\012_p(2, '</MacroExpansion>')\012_p(2, '<"
	.ascii	"AdditionalOptions>')\012_p(2, '</AdditionalOptions>"
	.ascii	"')\012_p(1, '</TestAction>')\012_p(1, '<LaunchActio"
	.ascii	"n')\012_p(2, 'buildConfiguration = \"%s\"', debugna"
	.ascii	"me)\012_p(2, 'selectedDebuggerIdentifier = \"Xcode."
	.ascii	"DebuggerFoundation.Debugger.LLDB\"')\012_p(2, 'sele"
	.ascii	"ctedLauncherIdentifier = \"Xcode.DebuggerFoundation"
	.ascii	".Launcher.LLDB\"')\012_p(2, 'launchStyle = \"0\"')\012"
	.ascii	"if debugcfg.debugdir then\012_p(2, 'useCustomWorkin"
	.ascii	"gDirectory = \"YES\"')\012_p(2, 'customWorkingDirec"
	.ascii	"tory = \"%s\"', workingdir(debugcfg.debugdir))\012e"
	.ascii	"lse\012_p(2, 'useCustomWorkingDirectory = \"NO\"')\012"
	.ascii	"end\012_p(2, 'ignoresPersistentStateOnLaunch = \"NO"
	.ascii	"\"')\012_p(2, 'debugDocumentVersioning = \"YES\"')\012"
	.ascii	"_p(2, 'debugServiceExtension = \"internal\"')\012_p"
	.ascii	"(2, 'allowLocationSimulation = \"YES\">')\012if deb"
	.ascii	"ugcfg.debugcmd then\012_p(2, '<PathRunnable')\012_p"
	.ascii	"(3, 'runnableDebuggingMode = \"0\"')\012_p(3, 'File"
	.ascii	"Path = \"%s\">', debugcfg.debugcmd)\012_p(2, '</Pat"
	.ascii	"hRunnable"
	.ascii	">')\012else\012_p(2, '<BuildableProductRunnable')\012"
	.ascii	"_p(3, 'runnableDebuggingMode = \"0\">')\012buildabl"
	.ascii	"eref(3, primary, debugcfg)\012_p(2, '</BuildablePro"
	.ascii	"ductRunnable>')\012end\012cmdlineargs(2, debugcfg)\012"
	.ascii	"envvars(2, debugcfg)\012_p(2, '<AdditionalOptions>'"
	.ascii	")\012_p(2, '</AdditionalOptions>')\012_p(1, '</Laun"
	.ascii	"chAction>')\012_p(1, '<ProfileAction')\012_p(2, 'bu"
	.ascii	"ildConfiguration = \"%s\"', releasename)\012_p(2, '"
	.ascii	"shouldUseLaunchSchemeArgsEnv = \"YES\"')\012_p(2, '"
	.ascii	"savedToolIdentifier = \"\"')\012if releasecfg.debug"
	.ascii	"dir then\012_p(2, 'useCustomWorkingDirectory = \"YE"
	.ascii	"S\"')\012_p(2, 'customWorkingDirectory = \"%s\"', w"
	.ascii	"orkingdir(releasecfg.debugdir))\012else\012_p(2, 'u"
	.ascii	"seCustomWorkingDirectory = \"NO\"')\012end\012_p(2,"
	.ascii	" 'debugDocumentVersioning = \"YES\">')\012_p(2, '<B"
	.ascii	"uildableProductRunnable')\012_p(3, 'runnableDebuggi"
	.ascii	"ngMode = \"0\">')\012buildableref(3, primary, relea"
	.ascii	"secfg)\012_p(2, '</BuildableProductRunnable>')\012c"
	.ascii	"mdlineargs(2, releasecfg)\012envvars(2, releasecfg)"
	.ascii	"\012_p(1, '</ProfileAction>')\012_p(1, '<AnalyzeAct"
	.ascii	"ion')\012_p(2, 'buildConfiguration = \"%s\">', debu"
	.ascii	"gname)\012_p(1, '</AnalyzeAction>')\012_p(1, '<Arch"
	.ascii	"iveAction')\012_p(2, 'buildConfiguration = \"%s\"',"
	.ascii	" releasename)\012_p(2, 'revealArchiveInOrganizer = "
	.ascii	"\"YES\">')\012_p(1, '</ArchiveAction>')\012_p('</Sc"
	.ascii	"heme>')\012end\012function xcode.generate_schemes(p"
	.ascii	"rj, base_path)\012if (prj.kind == \"ConsoleApp\" or"
	.ascii	" prj.kind == \"WindowedApp\") or (prj.options and p"
	.ascii	"rj.options.XcodeLibrarySchemes) then\012if prj.opti"
	.ascii	"ons and prj.options.XcodeSchemeNoConfigs then\012pr"
	.ascii	"emake.generate(prj, path.join(base_path, \"%%.xcsch"
	.ascii	"eme\"),\012function(prj) xcode.scheme({prj}, prj) e"
	.ascii	"nd)\012else\012for cfg in premake.eachconfig(prj) d"
	.ascii	"o\012premake.generate(prj, path.join(base_path, \"%"
	.ascii	"% \" .. cfg.name .. \".xcscheme\"),\012function(prj"
	.ascii	") xcode.scheme({prj}, prj, cfg) end)\012end\012end\012"
	.ascii	"end\012end\012\000"
	.align	2
.LC53:
	.ascii	"local premake = premake\012local xcode = premake.xc"
	.ascii	"ode\012xcode.allscheme = false\012function xcode.wo"
	.ascii	"rkspace_head()\012_p('<?xml version=\"1.0\" encodin"
	.ascii	"g=\"UTF-8\"?>')\012_p('<Workspace')\012_p(1,'versio"
	.ascii	"n = \"1.0\">')\012end\012function xcode.workspace_t"
	.ascii	"ail()\012_p('</Workspace>')\012end\012function xcod"
	.ascii	"e.workspace_file_ref(prj, indent)\012local projpath"
	.ascii	" = path.getrelative(prj.solution.location, prj.loca"
	.ascii	"tion)\012if projpath == '.' then projpath = ''\012e"
	.ascii	"lse projpath = projpath ..'/'\012end\012_p(indent, "
	.ascii	"'<FileRef')\012_p(indent + 1, 'location = \"group:%"
	.ascii	"s\">', projpath .. prj.name .. '.xcodeproj')\012_p("
	.ascii	"indent, '</FileRef>')\012end\012function xcode.work"
	.ascii	"space_group(grp, indent)\012_p(indent, '<Group')\012"
	.ascii	"_p(indent + 1, 'location = \"container:\"')\012_p(i"
	.ascii	"ndent + 1, 'name = \"%s\">', grp.name)\012local fun"
	.ascii	"ction comparenames(a, b)\012return a.name < b.name\012"
	.ascii	"end\012local groups = table.join(grp.groups)\012loc"
	.ascii	"al projects = table.join(grp.projects)\012table.sor"
	.ascii	"t(groups, comparenames)\012table.sort(projects, com"
	.ascii	"parenames)\012for _, child in ipairs(groups) do\012"
	.ascii	"xcode.workspace_group(child, indent + 1)\012end\012"
	.ascii	"for _, prj in ipairs(projects) do\012xcode.workspac"
	.ascii	"e_file_ref(prj, indent + 1)\012end\012_p(indent, '<"
	.ascii	"/Group>')\012end\012function xcode.workspace_genera"
	.ascii	"te(sln)\012xcode.preparesolution(sln)\012xcode.work"
	.ascii	"space_head()\012xcode.reorderProjects(sln)\012for g"
	.ascii	"rp in premake.solution.eachgroup(sln) do\012if grp."
	.ascii	"parent == nil then\012xcode.workspace_group(grp, 1)"
	.ascii	"\012end\012end\012for prj in premake.solution.eachp"
	.ascii	"roject(sln) do\012if prj.group == nil then\012xcode"
	.ascii	".workspace_file_ref(prj, 1)\012end\012end\012xcode."
	.ascii	"workspace_tail()\012end\012function xcode.workspace"
	.ascii	"_scheme(sln)\012if not xcode.allscheme then\012retu"
	.ascii	"rn false\012end\012local projects = {}\012local pri"
	.ascii	"mary = nil\012for prj in premake.solution.eachproje"
	.ascii	"ct(sln) do\012if not primary or (sln.startproject ="
	.ascii	"= prj.name) then\012primary = prj\012end\012table.i"
	.ascii	"nsert(projects, prj)\012end\012xcode.scheme(project"
	.ascii	"s, primary)\012end\012function xcode.workspace_sett"
	.ascii	"ings(sln)\012_p('<?xml version=\"1.0\" encoding=\"U"
	.ascii	"TF-8\"?>')\012_p('<!DOCTYPE plist PUBLIC \"-//Apple"
	.ascii	"//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
	.ascii	"ropertyList-1.0.dtd\">')\012_p('<plist "
	.ascii	"version=\"1.0\">')\012_p('<dict>')\012_p(1, '<key>I"
	.ascii	"DEWorkspaceSharedSettings_AutocreateContextsIfNeede"
	.ascii	"d</key>')\012_p(1, '<false/>')\012_p('</dict>')\012"
	.ascii	"_p('</plist>')\012end\012function xcode.reorderProj"
	.ascii	"ects(sln)\012if sln.startproject then\012for i, prj"
	.ascii	" in ipairs(sln.projects) do\012if sln.startproject "
	.ascii	"== prj.name then\012local cur = prj.group\012while "
	.ascii	"cur ~= nil do\012for j, group in ipairs(sln.groups)"
	.ascii	" do\012if group == cur then\012table.remove(sln.gro"
	.ascii	"ups, j)\012break\012end\012end\012table.insert(sln."
	.ascii	"groups, 1, cur)\012cur = cur.parent\012end\012table"
	.ascii	".remove(sln.projects, i)\012table.insert(sln.projec"
	.ascii	"ts, 1, prj)\012break\012end\012end\012end\012end\012"
	.ascii	"\000"
	.align	2
.LC54:
	.ascii	"local premake = premake\012premake.xcode8 = { }\012"
	.ascii	"local xcode  = premake.xcode\012local xcode8 = prem"
	.ascii	"ake.xcode8\012function xcode8.XCBuildConfiguration_"
	.ascii	"Target(tr, target, cfg)\012local cfgname = xcode.ge"
	.ascii	"tconfigname(cfg)\012local installpaths = {\012Conso"
	.ascii	"leApp = \"/usr/local/bin\",\012WindowedApp = \"$(HO"
	.ascii	"ME)/Applications\",\012SharedLib = \"/usr/local/lib"
	.ascii	"\",\012StaticLib = \"/usr/local/lib\",\012Bundle   "
	.ascii	" = \"$(LOCAL_LIBRARY_DIR)/Bundles\",\012}\012local "
	.ascii	"options = {\012ALWAYS_SEARCH_USER_PATHS = \"NO\",\012"
	.ascii	"GCC_DYNAMIC_NO_PIC = \"NO\",\012GCC_MODEL_TUNING = "
	.ascii	"\"G5\",\012INSTALL_PATH = installpaths[cfg.kind],\012"
	.ascii	"PRODUCT_NAME = cfg.buildtarget.basename,\012}\012if"
	.ascii	" not cfg.flags.Symbols then\012options.DEBUG_INFORM"
	.ascii	"ATION_FORMAT = \"dwarf-with-dsym\"\012end\012if cfg"
	.ascii	".kind ~= \"StaticLib\" and cfg.buildtarget.prefix ~"
	.ascii	"= \"\" then\012options.EXECUTABLE_PREFIX = cfg.buil"
	.ascii	"dtarget.prefix\012end\012if cfg.targetextension the"
	.ascii	"n\012local ext = cfg.targetextension\012options.EXE"
	.ascii	"CUTABLE_EXTENSION = iif(ext:startswith(\".\"), ext:"
	.ascii	"sub(2), ext)\012end\012if cfg.flags.ObjcARC then\012"
	.ascii	"options.CLANG_ENABLE_OBJC_ARC = \"YES\"\012end\012l"
	.ascii	"ocal outdir = path.getdirectory(cfg.buildtarget.bun"
	.ascii	"dlepath)\012if outdir ~= \".\" then\012options.CONF"
	.ascii	"IGURATION_BUILD_DIR = outdir\012end\012if tr.infopl"
	.ascii	"ist then\012options.INFOPLIST_FILE = tr.infoplist.c"
	.ascii	"fg.name\012end\012local infoplist_file = nil\012for"
	.ascii	" _, v in ipairs(cfg.files) do\012if (string.find (s"
	.ascii	"tring.lower (v), 'info.plist') ~= nil) then\012info"
	.ascii	"plist_file = string.format('$(SRCROOT)/%s', v)\012e"
	.ascii	"nd\012end\012if infoplist_file ~= nil then\012optio"
	.ascii	"ns.INFOPLIST_FILE = infoplist_file\012end\012local "
	.ascii	"action = premake.action.current()\012local get_opt "
	.ascii	"= function(opt, def)\012return (opt and #opt > 0) a"
	.ascii	"nd opt or def\012end\012local iosversion = get_opt("
	.ascii	"cfg.iostargetplatformversion, action.xcode.iOSTarge"
	.ascii	"tPlatformVersion)\012local macosversion = get_opt(c"
	.ascii	"fg.macostargetplatformversion, action.xcode.macOSTa"
	.ascii	"rgetPlatformVersion)\012local tvosversion = get_opt"
	.ascii	"(cfg.tvostargetplatformversion, action.xcode.tvOSTa"
	.ascii	"rgetPlatformVersion)\012if iosversion then\012optio"
	.ascii	"ns.IPHONEOS_DEPLOYMENT_TARGET = iosversion\012elsei"
	.ascii	"f macosversion then\012options.MACOSX_DEPLOYMENT_TA"
	.ascii	"RGET = "
	.ascii	"macosversion\012elseif tvosversion then\012options."
	.ascii	"TVOS_DEPLOYMENT_TARGET = tvosversion\012end\012if c"
	.ascii	"fg.kind == \"Bundle\" and not cfg.options.SkipBundl"
	.ascii	"ing then\012options.PRODUCT_BUNDLE_IDENTIFIER = \"g"
	.ascii	"enie.\" .. cfg.buildtarget.basename:gsub(\"%s+\", \""
	.ascii	".\") --replace spaces with .\012local ext = cfg.tar"
	.ascii	"getextension\012if ext then\012options.WRAPPER_EXTE"
	.ascii	"NSION = iif(ext:startswith(\".\"), ext:sub(2), ext)"
	.ascii	"\012else\012options.WRAPPER_EXTENSION = \"bundle\"\012"
	.ascii	"end\012end\012return options\012end\012function xco"
	.ascii	"de8.XCBuildConfiguration_Project(tr, prj, cfg)\012l"
	.ascii	"ocal cfgname = xcode.getconfigname(cfg)\012local ar"
	.ascii	"chs = {\012Native      = nil,\012x32         = \"i3"
	.ascii	"86\",\012x64         = \"x86_64\",\012Universal32 ="
	.ascii	" \"$(ARCHS_STANDARD_32_BIT)\",\012Universal64 = \"$"
	.ascii	"(ARCHS_STANDARD_64_BIT)\",\012Universal   = \"$(ARC"
	.ascii	"HS_STANDARD_32_64_BIT)\",\012}\012local checks = {\012"
	.ascii	"[\"-ffast-math\"]          = cfg.flags.FloatFast,\012"
	.ascii	"[\"-ffloat-store\"]        = cfg.flags.FloatStrict,"
	.ascii	"\012[\"-fomit-frame-pointer\"] = cfg.flags.NoFrameP"
	.ascii	"ointer,\012}\012local cflags = { }\012for flag, che"
	.ascii	"ck in pairs(checks) do\012if check then\012table.in"
	.ascii	"sert(cflags, flag)\012end\012end\012local ldflags ="
	.ascii	" { }\012for _, lib in ipairs(premake.getlinks(cfg, "
	.ascii	"\"system\")) do\012if not xcode.isframework(lib) th"
	.ascii	"en\012table.insert(ldflags, \"-l\" .. lib)\012end\012"
	.ascii	"end\012local options = {\012ARCHS                  "
	.ascii	"            = archs[cfg.platform],\012CLANG_WARN__D"
	.ascii	"UPLICATE_METHOD_MATCH = \"YES\",\012CLANG_WARN_BOOL"
	.ascii	"_CONVERSION         = \"YES\",\012CLANG_WARN_CONSTA"
	.ascii	"NT_CONVERSION     = \"YES\",\012CLANG_WARN_EMPTY_BO"
	.ascii	"DY              = \"YES\",\012CLANG_WARN_ENUM_CONVE"
	.ascii	"RSION         = \"YES\",\012CLANG_WARN_INFINITE_REC"
	.ascii	"URSION      = \"YES\",\012CLANG_WARN_INT_CONVERSION"
	.ascii	"          = \"YES\",\012CLANG_WARN_SUSPICIOUS_MOVE "
	.ascii	"        = \"YES\",\012CLANG_WARN_UNREACHABLE_CODE  "
	.ascii	"      = \"YES\",\012CONFIGURATION_TEMP_DIR         "
	.ascii	"    = \"$(OBJROOT)\",\012ENABLE_STRICT_OBJC_MSGSEND"
	.ascii	"         = \"YES\",\012ENABLE_TESTABILITY          "
	.ascii	"       = \"YES\",\012GCC_C_LANGUAGE_STANDARD       "
	.ascii	"     = \"gnu99\",\012GCC_NO_COMMON_BLOCKS          "
	.ascii	"     = \"YES\",\012GCC_PREPROCESSOR_DEFINITIONS    "
	.ascii	"   = cfg.defines,\012GCC_SYMBOLS_PRIVATE_EXTERN    "
	.ascii	"     = \"NO\",\012GCC_WARN_64_TO_32_BI"
	.ascii	"T_CONVERSION   = \"YES\",\012GCC_WARN_ABOUT_RETURN_"
	.ascii	"TYPE         = \"YES\",\012GCC_WARN_UNDECLARED_SELE"
	.ascii	"CTOR       = \"YES\",\012GCC_WARN_UNINITIALIZED_AUT"
	.ascii	"OS       = \"YES\",\012GCC_WARN_UNUSED_FUNCTION    "
	.ascii	"       = \"YES\",\012GCC_WARN_UNUSED_VARIABLE      "
	.ascii	"     = \"YES\",\012HEADER_SEARCH_PATHS             "
	.ascii	"   = table.join(cfg.includedirs, cfg.systemincluded"
	.ascii	"irs),\012LIBRARY_SEARCH_PATHS               = cfg.l"
	.ascii	"ibdirs,\012OBJROOT                            = cfg"
	.ascii	".objectsdir,\012ONLY_ACTIVE_ARCH                   "
	.ascii	"= \"YES\",\012OTHER_CFLAGS                       = "
	.ascii	"table.join(cflags, cfg.buildoptions, cfg.buildoptio"
	.ascii	"ns_c),\012OTHER_CPLUSPLUSFLAGS               = tabl"
	.ascii	"e.join(cflags, cfg.buildoptions, cfg.buildoptions_c"
	.ascii	"pp),\012OTHER_LDFLAGS                      = table."
	.ascii	"join(ldflags, cfg.linkoptions),\012SDKROOT         "
	.ascii	"                   = xcode.toolset,\012USER_HEADER_"
	.ascii	"SEARCH_PATHS           = cfg.userincludedirs,\012}\012"
	.ascii	"if tr.entitlements then\012options.CODE_SIGN_ENTITL"
	.ascii	"EMENTS = tr.entitlements.cfg.name\012end\012local t"
	.ascii	"argetdir = path.getdirectory(cfg.buildtarget.bundle"
	.ascii	"path)\012if targetdir ~= \".\" then\012options.CONF"
	.ascii	"IGURATION_BUILD_DIR = \"$(SYMROOT)\"\012options.SYM"
	.ascii	"ROOT = targetdir\012end\012if cfg.flags.Symbols the"
	.ascii	"n\012options.COPY_PHASE_STRIP = \"NO\"\012end\012lo"
	.ascii	"cal excluded = xcode.cfg_excluded_files(prj, cfg)\012"
	.ascii	"if #excluded > 0 then\012options.EXCLUDED_SOURCE_FI"
	.ascii	"LE_NAMES = excluded\012end\012if cfg.flags.NoExcept"
	.ascii	"ions then\012options.GCC_ENABLE_CPP_EXCEPTIONS = \""
	.ascii	"NO\"\012end\012if cfg.flags.NoRTTI then\012options."
	.ascii	"GCC_ENABLE_CPP_RTTI = \"NO\"\012end\012if cfg.flags"
	.ascii	".Symbols and not cfg.flags.NoEditAndContinue then\012"
	.ascii	"options.GCC_ENABLE_FIX_AND_CONTINUE = \"YES\"\012en"
	.ascii	"d\012if cfg.flags.NoExceptions then\012options.GCC_"
	.ascii	"ENABLE_OBJC_EXCEPTIONS = \"NO\"\012end\012if cfg.fl"
	.ascii	"ags.Optimize or cfg.flags.OptimizeSize then\012opti"
	.ascii	"ons.GCC_OPTIMIZATION_LEVEL = \"s\"\012elseif cfg.fl"
	.ascii	"ags.OptimizeSpeed then\012options.GCC_OPTIMIZATION_"
	.ascii	"LEVEL = 3\012else\012options.GCC_OPTIMIZATION_LEVEL"
	.ascii	" = 0\012end\012if cfg.pchheader and not cfg.flags.N"
	.ascii	"oPCH then\012options.GCC_PRECOMPILE_PREFIX_HEADER ="
	.ascii	" \"YES\"\012local pch = cfg.pchheader\012for _, inc"
	.ascii	"dir in ipairs(cfg.includedirs) do\012local ab"
	.ascii	"spath = path.getabsolute(path.join(cfg.project.loca"
	.ascii	"tion, incdir))\012local testname = path.join(abspat"
	.ascii	"h, pch)\012if os.isfile(testname) then\012pch = pat"
	.ascii	"h.getrelative(cfg.location, testname)\012break\012e"
	.ascii	"nd\012end\012options.GCC_PREFIX_HEADER = pch\012end"
	.ascii	"\012if cfg.flags.FatalWarnings then\012options.GCC_"
	.ascii	"TREAT_WARNINGS_AS_ERRORS = \"YES\"\012end\012if cfg"
	.ascii	".kind == \"Bundle\" then\012options.MACH_O_TYPE = \""
	.ascii	"mh_bundle\"\012end\012if cfg.flags.StaticRuntime th"
	.ascii	"en\012options.STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = \""
	.ascii	"static\"\012end\012if cfg.flags.PedanticWarnings or"
	.ascii	" cfg.flags.ExtraWarnings then\012options.WARNING_CF"
	.ascii	"LAGS = \"-Wall\"\012end\012if cfg.flags.Cpp11 then\012"
	.ascii	"options.CLANG_CXX_LANGUAGE_STANDARD = \"c++11\"\012"
	.ascii	"elseif cfg.flags.Cpp14 or cfg.flags.CppLatest then\012"
	.ascii	"options.CLANG_CXX_LANGUAGE_STANDARD = \"c++14\"\012"
	.ascii	"elseif cfg.flags.Cpp17 then\012if premake.action.cu"
	.ascii	"rrent() == premake.action.get(\"xcode8\") then\012e"
	.ascii	"rror(\"XCode8 does not support C++17.\")\012end\012"
	.ascii	"end\012for _, val in ipairs(premake.xcode.parameter"
	.ascii	"s) do\012local eqpos = string.find(val, \"=\")\012i"
	.ascii	"f eqpos ~= nil then\012local key = string.trim(stri"
	.ascii	"ng.sub(val, 1, eqpos - 1))\012local value = string."
	.ascii	"trim(string.sub(val, eqpos + 1))\012options[key] = "
	.ascii	"value\012end\012end\012return options\012end\012fun"
	.ascii	"ction xcode8.project(prj)\012local tr = xcode.build"
	.ascii	"prjtree(prj)\012xcode.Header(tr, 48)\012xcode.PBXBu"
	.ascii	"ildFile(tr)\012xcode.PBXContainerItemProxy(tr)\012x"
	.ascii	"code.PBXFileReference(tr,prj)\012xcode.PBXFramework"
	.ascii	"sBuildPhase(tr)\012xcode.PBXGroup(tr)\012xcode.PBXN"
	.ascii	"ativeTarget(tr)\012xcode.PBXProject(tr, \"8.0\")\012"
	.ascii	"xcode.PBXReferenceProxy(tr)\012xcode.PBXResourcesBu"
	.ascii	"ildPhase(tr)\012xcode.PBXShellScriptBuildPhase(tr)\012"
	.ascii	"xcode.PBXCopyFilesBuildPhase(tr)\012xcode.PBXSource"
	.ascii	"sBuildPhase(tr,prj)\012xcode.PBXVariantGroup(tr)\012"
	.ascii	"xcode.PBXTargetDependency(tr)\012xcode.XCBuildConfi"
	.ascii	"guration(tr, prj, {\012ontarget = xcode8.XCBuildCon"
	.ascii	"figuration_Target,\012onproject = xcode8.XCBuildCon"
	.ascii	"figuration_Project,\012})\012xcode.XCBuildConfigura"
	.ascii	"tionList(tr)\012xcode.Footer(tr)\012end\012newactio"
	.ascii	"n\012{\012trigger         = \"xcode8\",\012shortnam"
	.ascii	"e       = \"Xcode 8\",\012description     = \"Gener"
	.ascii	"ate Apple Xcode 8 project files\",\012os           "
	.ascii	"   = \"macosx\",\012valid_kinds   "
	.ascii	"  = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\""
	.ascii	", \"SharedLib\", \"Bundle\" },\012valid_languages ="
	.ascii	" { \"C\", \"C++\" },\012valid_tools     = {\012cc  "
	.ascii	"   = { \"gcc\" },\012},\012valid_platforms = {\012N"
	.ascii	"ative = \"Native\",\012x32 = \"Native 32-bit\",\012"
	.ascii	"x64 = \"Native 64-bit\",\012Universal = \"Universal"
	.ascii	"\",\012},\012default_platform = \"Native\",\012onso"
	.ascii	"lution = function(sln)\012premake.generate(sln, \"%"
	.ascii	"%.xcworkspace/contents.xcworkspacedata\", xcode.wor"
	.ascii	"kspace_generate)\012premake.generate(sln, \"%%.xcwo"
	.ascii	"rkspace/xcshareddata/WorkspaceSettings.xcsettings\""
	.ascii	", xcode.workspace_settings)\012premake.generate(sln"
	.ascii	", \"%%.xcworkspace/xcshareddata/xcschemes/-ALL-.xcs"
	.ascii	"cheme\", xcode.workspace_scheme)\012end,\012onproje"
	.ascii	"ct = function(prj)\012premake.generate(prj, \"%%.xc"
	.ascii	"odeproj/project.pbxproj\", xcode8.project)\012xcode"
	.ascii	".generate_schemes(prj, \"%%.xcodeproj/xcshareddata/"
	.ascii	"xcschemes\")\012end,\012oncleanproject = function(p"
	.ascii	"rj)\012premake.clean.directory(prj, \"%%.xcodeproj\""
	.ascii	")\012premake.clean.directory(prj, \"%%.xcworkspace\""
	.ascii	")\012end,\012oncheckproject = xcode.checkproject,\012"
	.ascii	"xcode = {\012iOSTargetPlatformVersion = nil,\012mac"
	.ascii	"OSTargetPlatformVersion = nil,\012tvOSTargetPlatfor"
	.ascii	"mVersion = nil,\012},\012}\012\000"
	.align	2
.LC55:
	.ascii	"local premake = premake\012premake.xcode9 = { }\012"
	.ascii	"local xcode  = premake.xcode\012local xcode8 = prem"
	.ascii	"ake.xcode8\012local xcode9 = premake.xcode9\012func"
	.ascii	"tion xcode9.XCBuildConfiguration_Project(tr, prj, c"
	.ascii	"fg)\012local options = xcode8.XCBuildConfiguration_"
	.ascii	"Project(tr, prj, cfg)\012if cfg.flags.Cpp17 or cfg."
	.ascii	"flags.CppLatest then\012options.CLANG_CXX_LANGUAGE_"
	.ascii	"STANDARD = \"c++17\"\012end\012return table.merge(o"
	.ascii	"ptions, {\012CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING"
	.ascii	" = \"YES\",\012CLANG_WARN_COMMA = \"YES\",\012CLANG"
	.ascii	"_WARN_NON_LITERAL_NULL_CONVERSION = \"YES\",\012CLA"
	.ascii	"NG_WARN_OBJC_LITERAL_CONVERSION = \"YES\",\012CLANG"
	.ascii	"_WARN_RANGE_LOOP_ANALYSIS = \"YES\",\012CLANG_WARN_"
	.ascii	"STRICT_PROTOTYPES = \"YES\",\012})\012end\012functi"
	.ascii	"on xcode9.project(prj)\012local tr = xcode.buildprj"
	.ascii	"tree(prj)\012xcode.Header(tr, 48)\012xcode.PBXBuild"
	.ascii	"File(tr)\012xcode.PBXContainerItemProxy(tr)\012xcod"
	.ascii	"e.PBXFileReference(tr,prj)\012xcode.PBXFrameworksBu"
	.ascii	"ildPhase(tr)\012xcode.PBXGroup(tr)\012xcode.PBXNati"
	.ascii	"veTarget(tr)\012xcode.PBXProject(tr, \"8.0\")\012xc"
	.ascii	"ode.PBXReferenceProxy(tr)\012xcode.PBXResourcesBuil"
	.ascii	"dPhase(tr)\012xcode.PBXShellScriptBuildPhase(tr)\012"
	.ascii	"xcode.PBXCopyFilesBuildPhase(tr)\012xcode.PBXSource"
	.ascii	"sBuildPhase(tr,prj)\012xcode.PBXVariantGroup(tr)\012"
	.ascii	"xcode.PBXTargetDependency(tr)\012xcode.XCBuildConfi"
	.ascii	"guration(tr, prj, {\012ontarget = xcode8.XCBuildCon"
	.ascii	"figuration_Target,\012onproject = xcode9.XCBuildCon"
	.ascii	"figuration_Project,\012})\012xcode.XCBuildConfigura"
	.ascii	"tionList(tr)\012xcode.Footer(tr)\012end\012newactio"
	.ascii	"n\012{\012trigger         = \"xcode9\",\012shortnam"
	.ascii	"e       = \"Xcode 9\",\012description     = \"Gener"
	.ascii	"ate Apple Xcode 9 project files\",\012os           "
	.ascii	"   = \"macosx\",\012valid_kinds     = { \"ConsoleAp"
	.ascii	"p\", \"WindowedApp\", \"StaticLib\", \"SharedLib\","
	.ascii	" \"Bundle\" },\012valid_languages = { \"C\", \"C++\""
	.ascii	" },\012valid_tools     = {\012cc     = { \"gcc\" },"
	.ascii	"\012},\012valid_platforms = {\012Native = \"Native\""
	.ascii	",\012x32 = \"Native 32-bit\",\012x64 = \"Native 64-"
	.ascii	"bit\",\012Universal = \"Universal\",\012},\012defau"
	.ascii	"lt_platform = \"Native\",\012onsolution = function("
	.ascii	"sln)\012premake.generate(sln, \"%%.xcworkspace/cont"
	.ascii	"ents.xcworkspacedata\", xcode.workspace_generate)\012"
	.ascii	"premake.generate(sln, \"%%.xcworkspace/xcshareddata"
	.ascii	"/WorkspaceSettings.xcsettings\", xcode.works"
	.ascii	"pace_settings)\012premake.generate(sln, \"%%.xcwork"
	.ascii	"space/xcshareddata/xcschemes/-ALL-.xcscheme\", xcod"
	.ascii	"e.workspace_scheme)\012end,\012onproject = function"
	.ascii	"(prj)\012premake.generate(prj, \"%%.xcodeproj/proje"
	.ascii	"ct.pbxproj\", xcode9.project)\012xcode.generate_sch"
	.ascii	"emes(prj, \"%%.xcodeproj/xcshareddata/xcschemes\")\012"
	.ascii	"end,\012oncleanproject = function(prj)\012premake.c"
	.ascii	"lean.directory(prj, \"%%.xcodeproj\")\012premake.cl"
	.ascii	"ean.directory(prj, \"%%.xcworkspace\")\012end,\012o"
	.ascii	"ncheckproject = xcode.checkproject,\012xcode = {\012"
	.ascii	"iOSTargetPlatformVersion = nil,\012macOSTargetPlatf"
	.ascii	"ormVersion = nil,\012tvOSTargetPlatformVersion = ni"
	.ascii	"l,\012},\012}\012\000"
	.align	2
.LC56:
	.ascii	"local premake = premake\012premake.xcode10 = { }\012"
	.ascii	"local xcode  = premake.xcode\012local xcode8 = prem"
	.ascii	"ake.xcode8\012local xcode9 = premake.xcode9\012loca"
	.ascii	"l xcode10 = premake.xcode10\012function xcode10.XCB"
	.ascii	"uildConfiguration_Project(tr, prj, cfg)\012local op"
	.ascii	"tions = xcode9.XCBuildConfiguration_Project(tr, prj"
	.ascii	", cfg)\012return table.merge(options, {\012CLANG_WA"
	.ascii	"RN_DEPRECATED_OBJC_IMPLEMENTATIONS = \"YES\",\012CL"
	.ascii	"ANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = \"YES\",\012CL"
	.ascii	"ANG_WARN_BLOCK_CAPTURE_AUTORELEASING = \"YES\",\012"
	.ascii	"CLANG_WARN_COMMA = \"YES\",\012CLANG_WARN_NON_LITER"
	.ascii	"AL_NULL_CONVERSION = \"YES\",\012CLANG_WARN_OBJC_LI"
	.ascii	"TERAL_CONVERSION = \"YES\",\012CLANG_WARN_RANGE_LOO"
	.ascii	"P_ANALYSIS = \"YES\",\012CLANG_WARN_STRICT_PROTOTYP"
	.ascii	"ES = \"YES\",\012})\012end\012function xcode10.XCBu"
	.ascii	"ildConfiguration_Target(tr, target, cfg)\012local o"
	.ascii	"ptions = xcode8.XCBuildConfiguration_Target(tr, tar"
	.ascii	"get, cfg)\012if not cfg.flags.ObjcARC then\012optio"
	.ascii	"ns.CLANG_ENABLE_OBJC_WEAK = \"YES\"\012end\012retur"
	.ascii	"n options\012end\012function xcode10.project(prj)\012"
	.ascii	"local tr = xcode.buildprjtree(prj)\012xcode.Header("
	.ascii	"tr, 48)\012xcode.PBXBuildFile(tr)\012xcode.PBXConta"
	.ascii	"inerItemProxy(tr)\012xcode.PBXFileReference(tr,prj)"
	.ascii	"\012xcode.PBXFrameworksBuildPhase(tr)\012xcode.PBXG"
	.ascii	"roup(tr)\012xcode.PBXNativeTarget(tr)\012xcode.PBXP"
	.ascii	"roject(tr, \"8.0\")\012xcode.PBXReferenceProxy(tr)\012"
	.ascii	"xcode.PBXResourcesBuildPhase(tr)\012xcode.PBXShellS"
	.ascii	"criptBuildPhase(tr)\012xcode.PBXCopyFilesBuildPhase"
	.ascii	"(tr)\012xcode.PBXSourcesBuildPhase(tr,prj)\012xcode"
	.ascii	".PBXVariantGroup(tr)\012xcode.PBXTargetDependency(t"
	.ascii	"r)\012xcode.XCBuildConfiguration(tr, prj, {\012onta"
	.ascii	"rget = xcode10.XCBuildConfiguration_Target,\012onpr"
	.ascii	"oject = xcode10.XCBuildConfiguration_Project,\012})"
	.ascii	"\012xcode.XCBuildConfigurationList(tr)\012xcode.Foo"
	.ascii	"ter(tr)\012end\012newaction\012{\012trigger        "
	.ascii	" = \"xcode10\",\012shortname       = \"Xcode 10\",\012"
	.ascii	"description     = \"Generate Apple Xcode 10 project"
	.ascii	" files (experimental)\",\012os              = \"mac"
	.ascii	"osx\",\012valid_kinds     = { \"ConsoleApp\", \"Win"
	.ascii	"dowedApp\", \"StaticLib\", \"SharedLib\", \"Bundle\""
	.ascii	" },\012valid_languages = { \"C\", \"C++\" },\012val"
	.ascii	"id_tools     = {\012cc     = { \"gcc\" },\012},\012"
	.ascii	"valid_platforms = {\012Native = \"Native\",\012x32 "
	.ascii	"= \"Native 32-bit\",\012x64 = \"Native"
	.ascii	" 64-bit\",\012Universal = \"Universal\",\012},\012d"
	.ascii	"efault_platform = \"Native\",\012onsolution = funct"
	.ascii	"ion(sln)\012premake.generate(sln, \"%%.xcworkspace/"
	.ascii	"contents.xcworkspacedata\", xcode.workspace_generat"
	.ascii	"e)\012premake.generate(sln, \"%%.xcworkspace/xcshar"
	.ascii	"eddata/WorkspaceSettings.xcsettings\", xcode.worksp"
	.ascii	"ace_settings)\012premake.generate(sln, \"%%.xcworks"
	.ascii	"pace/xcshareddata/xcschemes/-ALL-.xcscheme\", xcode"
	.ascii	".workspace_scheme)\012end,\012onproject = function("
	.ascii	"prj)\012premake.generate(prj, \"%%.xcodeproj/projec"
	.ascii	"t.pbxproj\", xcode10.project)\012xcode.generate_sch"
	.ascii	"emes(prj, \"%%.xcodeproj/xcshareddata/xcschemes\")\012"
	.ascii	"end,\012oncleanproject = function(prj)\012premake.c"
	.ascii	"lean.directory(prj, \"%%.xcodeproj\")\012premake.cl"
	.ascii	"ean.directory(prj, \"%%.xcworkspace\")\012end,\012o"
	.ascii	"ncheckproject = xcode.checkproject,\012xcode = {\012"
	.ascii	"iOSTargetPlatformVersion = nil,\012macOSTargetPlatf"
	.ascii	"ormVersion = nil,\012tvOSTargetPlatformVersion = ni"
	.ascii	"l,\012},\012}\012\000"
	.align	2
.LC57:
	.ascii	"premake.fastbuild = { }\012local fastbuild = premak"
	.ascii	"e.fastbuild\012newaction\012{\012trigger = \"vs2015"
	.ascii	"-fastbuild\",\012shortname = \"FASTBuild VS2015\",\012"
	.ascii	"description = \"Generate FASTBuild configuration fi"
	.ascii	"les for Visual Studio 2015.\",\012valid_kinds = {\012"
	.ascii	"\"ConsoleApp\",\012\"WindowedApp\",\012\"StaticLib\""
	.ascii	",\012\"SharedLib\",\012\"Bundle\",\012},\012valid_l"
	.ascii	"anguages = {\012\"C\",\012\"C++\"\012},\012valid_to"
	.ascii	"ols = {\012cc = {\012\"msc\"\012},\012},\012onsolut"
	.ascii	"ion = function(sln)\012premake.generate(sln, \"fbui"
	.ascii	"ld.bff\", premake.fastbuild.solution)\012end,\012on"
	.ascii	"project = function(prj)\012premake.generate(prj, \""
	.ascii	"%%.bff\", premake.fastbuild.project)\012end,\012onc"
	.ascii	"leansolution = function(sln)\012premake.clean.file("
	.ascii	"sln, \"fbuild.bff\")\012end,\012oncleanproject  = f"
	.ascii	"unction(prj)\012premake.clean.file(prj, \"%%.bff\")"
	.ascii	"\012end,\012}\012\000"
	.align	2
.LC58:
	.ascii	"-- Generates a FASTBuild config file for a project."
	.ascii	"\012local function add_trailing_backslash(dir)\012i"
	.ascii	"f dir:len() > 0 and dir:sub(-1) ~= \"\\\\\" then\012"
	.ascii	"return dir..\"\\\\\"\012end\012return dir\012end\012"
	.ascii	"local function compile(indentlevel, prj, cfg, commo"
	.ascii	"nbasepath)\012local firstflag = true\012for _, cfge"
	.ascii	"xclude in ipairs(cfg.excludes) do\012if path.issour"
	.ascii	"cefile(cfgexclude) then\012if firstflag then\012_p("
	.ascii	"indentlevel, '// Excluded files:')\012firstflag = f"
	.ascii	"alse\012end\012_p(indentlevel, \".CompilerInputFile"
	.ascii	"s - '%s'\", cfgexclude)\012end\012end\012if not fir"
	.ascii	"stflag then\012_p('')\012end\012_p(indentlevel, \"."
	.ascii	"CompilerOutputPath = '%s'\", add_trailing_backslash"
	.ascii	"(cfg.objectsdir))\012_p(indentlevel, \".Defines = '"
	.ascii	"'\")\012for _, define in ipairs(cfg.defines) do\012"
	.ascii	"_p(indentlevel+1, \"+ ' /D%s'\", define)\012end\012"
	.ascii	"if cfg.kind == 'SharedLib' then\012_p(indentlevel+1"
	.ascii	", \"+ ' /D_WINDLL'\")\012end\012_p(indentlevel, \"."
	.ascii	"IncludeDirs = ''\")\012local sortedincdirs = table."
	.ascii	"join(cfg.userincludedirs, cfg.includedirs, cfg.syst"
	.ascii	"emincludedirs)\012local function getpathnodecount(p"
	.ascii	")\012local nodefinder = string.gmatch(p, \"[^\\\\/]"
	.ascii	"+\")\012local result = 0\012local node = nodefinder"
	.ascii	"()\012while node do\012result = result + ((node ~= "
	.ascii	"'.' and 1) or 0)\012node = nodefinder()\012end\012r"
	.ascii	"eturn result\012end\012local stepsfrombase = {}\012"
	.ascii	"for _, includedir in ipairs(sortedincdirs) do\012st"
	.ascii	"epsfrombase[includedir] = getpathnodecount(path.get"
	.ascii	"relative(commonbasepath, includedir))\012end\012loc"
	.ascii	"al function includesort(a, b)\012if stepsfrombase[a"
	.ascii	"] == stepsfrombase[b] then\012return a < b\012else\012"
	.ascii	"return stepsfrombase[a] < stepsfrombase[b]\012end\012"
	.ascii	"end\012table.sort(sortedincdirs, includesort)\012fo"
	.ascii	"r _, includedir in ipairs(sortedincdirs) do\012_p(i"
	.ascii	"ndentlevel+1, \"+ ' /I\\\"%s\\\"'\", includedir)\012"
	.ascii	"end\012_p(indentlevel+1, \"+ .MSVCIncludes\")\012lo"
	.ascii	"cal compileroptions = {\012'\"%1\"',\012'/nologo',\012"
	.ascii	"'/c',\012'/Gm-',\012'/Zc:inline',\012'/errorReport:"
	.ascii	"prompt',\012'/FS',\012}\012if cfg.options.ForceCPP "
	.ascii	"then\012table.insert(compileroptions, '/TP')\012end"
	.ascii	"\012if cfg.flags.PedanticWarnings\012or cfg.flags.E"
	.ascii	"xtraWarnings\012then\012table.insert(compileroption"
	.ascii	"s, '/W4')\012end\012if (cfg.flags.NativeWChar == fa"
	.ascii	"lse or\012cfg.flags.NoNativeWChar) then\012table.in"
	.ascii	"sert(co"
	.ascii	"mpileroptions, '/Zc:wchar_t-')\012end\012if (cfg.fl"
	.ascii	"ags.EnableMinimalRebuild or\012cfg.flags.NoMultiPro"
	.ascii	"cessorCompilation) then\012end\012if cfg.flags.Floa"
	.ascii	"tFast then\012table.insert(compileroptions, '/fp:fa"
	.ascii	"st')\012elseif cfg.flags.FloatStrict then\012table."
	.ascii	"insert(compileroptions, '/fp:strict')\012else\012ta"
	.ascii	"ble.insert(compileroptions, '/fp:precise')\012end\012"
	.ascii	"if cfg.flags.FastCall then\012table.insert(compiler"
	.ascii	"options, '/Gr')\012elseif cfg.flags.StdCall then\012"
	.ascii	"table.insert(compileroptions, '/Gd')\012end\012if c"
	.ascii	"fg.flags.UnsignedChar then\012table.insert(compiler"
	.ascii	"options, '/J')\012end\012if premake.config.isdebugb"
	.ascii	"uild(cfg) then\012if cfg.flags.StaticRuntime then\012"
	.ascii	"table.insert(compileroptions, '/MTd')\012else\012ta"
	.ascii	"ble.insert(compileroptions, '/MDd')\012end\012else\012"
	.ascii	"if cfg.flags.StaticRuntime then\012table.insert(com"
	.ascii	"pileroptions, '/MT')\012else\012table.insert(compil"
	.ascii	"eroptions, '/MD')\012end\012end\012if cfg.flags.Sym"
	.ascii	"bols then\012if (cfg.flags.C7DebugInfo) then\012tab"
	.ascii	"le.insert(compileroptions, '/Z7')\012else\012if pre"
	.ascii	"make.config.iseditandcontinue(cfg) then\012table.in"
	.ascii	"sert(compileroptions, '/ZI')\012else\012table.inser"
	.ascii	"t(compileroptions, '/Zi')\012end\012local targetdir"
	.ascii	" = add_trailing_backslash(cfg.buildtarget.directory"
	.ascii	")\012table.insert(compileroptions, string.format(\""
	.ascii	"/Fd\\\"%s%s.pdb\\\"\", targetdir, cfg.buildtarget.b"
	.ascii	"asename))\012end\012end\012local isoptimised = true"
	.ascii	"\012if (cfg.flags.Optimize) then\012table.insert(co"
	.ascii	"mpileroptions, '/Ox')\012elseif (cfg.flags.Optimize"
	.ascii	"Size) then\012table.insert(compileroptions, '/O1')\012"
	.ascii	"elseif (cfg.flags.OptimizeSpeed) then\012table.inse"
	.ascii	"rt(compileroptions, '/O2')\012else\012isoptimised ="
	.ascii	" false\012end\012if isoptimised then\012if cfg.flag"
	.ascii	"s.NoOptimizeLink and cfg.flags.NoEditAndContinue th"
	.ascii	"en\012table.insert(compileroptions, '/GF-')\012tabl"
	.ascii	"e.insert(compileroptions, '/Gy-')\012else\012table."
	.ascii	"insert(compileroptions, '/GF')\012table.insert(comp"
	.ascii	"ileroptions, '/Gy')\012end\012else\012table.insert("
	.ascii	"compileroptions, '/Gy')\012table.insert(compileropt"
	.ascii	"ions, '/Od')\012table.insert(compileroptions, '/RTC"
	.ascii	"1')\012end\012if cfg.flags.FatalWarnings then\012ta"
	.ascii	"ble.insert(compileroptions, '/WX')\012else\012table"
	.ascii	".insert(compileroptions, '/WX-')\012end\012if cfg.p"
	.ascii	"latform == 'x32' then\012if"
	.ascii	" cfg.flags.EnableSSE2 then\012table.insert(compiler"
	.ascii	"options, '/arch:SSE2')\012elseif cfg.flags.EnableSS"
	.ascii	"E then\012table.insert(compileroptions, '/arch:SSE'"
	.ascii	")\012end\012end\012if cfg.flags.NoExceptions then\012"
	.ascii	"else\012if cfg.flags.SEH then\012table.insert(compi"
	.ascii	"leroptions, '/EHa')\012else\012table.insert(compile"
	.ascii	"roptions, '/EHsc')\012end\012end\012if cfg.flags.No"
	.ascii	"RTTI then\012table.insert(compileroptions, '/GR-')\012"
	.ascii	"else\012table.insert(compileroptions, '/GR')\012end"
	.ascii	"\012if cfg.flags.NoFramePointer then\012table.inser"
	.ascii	"t(compileroptions, '/Oy-')\012else\012table.insert("
	.ascii	"compileroptions, '/Oy')\012end\012for _, addloption"
	.ascii	" in ipairs(cfg.buildoptions) do\012table.insert(com"
	.ascii	"pileroptions, addloption)\012end\012_p(indentlevel,"
	.ascii	" \".CompilerOptions = ''\")\012for _, option in ipa"
	.ascii	"irs(compileroptions) do\012_p(indentlevel+1, \"+ ' "
	.ascii	"%s'\", option)\012end\012_p(indentlevel+1, \"+ .Inc"
	.ascii	"ludeDirs\")\012_p(indentlevel+1, \"+ .Defines\")\012"
	.ascii	"if not cfg.flags.NoPCH and cfg.pchheader then\012_p"
	.ascii	"(indentlevel, \".CompilerInputFiles - '%s'\", cfg.p"
	.ascii	"chsource)\012_p(indentlevel, \".PCHInputFile = '%s'"
	.ascii	"\", cfg.pchsource)\012_p(indentlevel, \".PCHOutputF"
	.ascii	"ile = .CompilerOutputPath + '%s.pch'\", prj.name)\012"
	.ascii	"_p(indentlevel, \".CompilerOptions + ' /Fp\\\"' + ."
	.ascii	"CompilerOutputPath + '%s.pch\\\"'\", prj.name)\012_"
	.ascii	"p(indentlevel, \".PCHOptions = .CompilerOptions\")\012"
	.ascii	"_p(indentlevel+1, \"+ ' /Yc\\\"%s\\\"'\", cfg.pchhe"
	.ascii	"ader)\012_p(indentlevel+1, \"+ ' /Fo\\\"%%3\\\"'\")"
	.ascii	"\012_p(indentlevel, \".CompilerOptions + ' /Yu\\\"%"
	.ascii	"s\\\"'\", cfg.pchheader)\012end\012_p(indentlevel+1"
	.ascii	", \"+ ' /Fo\\\"%%2\\\"'\") -- make sure the previou"
	.ascii	"s property is .CompilerOptions\012end\012local func"
	.ascii	"tion library(prj, cfg, useconfig, commonbasepath)\012"
	.ascii	"_p(1, \"Library('%s-%s-%s')\", prj.name, cfg.name, "
	.ascii	"cfg.platform)\012_p(1, '{')\012useconfig(2)\012comp"
	.ascii	"ile(2, prj, cfg, commonbasepath)\012local librarian"
	.ascii	"options = {\012'\"%1\"',\012'/OUT:\"%2\"',\012'/NOL"
	.ascii	"OGO',\012}\012if cfg.platform == 'x64' then\012tabl"
	.ascii	"e.insert(librarianoptions, '/MACHINE:X64')\012else\012"
	.ascii	"table.insert(librarianoptions, '/MACHINE:X86')\012e"
	.ascii	"nd\012_p(2, \".LibrarianOptions = ''\")\012for _, o"
	.ascii	"ption in ipairs(librarianoptions) do\012_p(3, \"+ '"
	.ascii	" %s'\", option)\012end\012_p(2, \".LibrarianOutput "
	.ascii	"= '%s'\", cfg.buildtarget.fullpath)\012_p(1,"
	.ascii	" '}')\012_p('')\012end\012local function binary(prj"
	.ascii	", cfg, useconfig, bintype, commonbasepath)\012_p(1,"
	.ascii	" \"ObjectList('%s_obj-%s-%s')\", prj.name, cfg.name"
	.ascii	", cfg.platform)\012_p(1, '{')\012useconfig(2)\012co"
	.ascii	"mpile(2, prj, cfg, commonbasepath)\012_p(1, '}')\012"
	.ascii	"_p('')\012_p(1, \"%s('%s-%s-%s')\", bintype, prj.na"
	.ascii	"me, cfg.name, cfg.platform)\012_p(1, '{')\012usecon"
	.ascii	"fig(2)\012_p(2, '.Libraries = {')\012_p(3, \"'%s_ob"
	.ascii	"j-%s-%s',\", prj.name, cfg.name, cfg.platform) -- R"
	.ascii	"efer to the ObjectList\012local sorteddeplibs = {}\012"
	.ascii	"for _, deplib in ipairs(premake.getlinks(cfg, \"dep"
	.ascii	"endencies\", \"basename\")) do\012table.insert(sort"
	.ascii	"eddeplibs, string.format(\"'%s-%s-%s',\", deplib, c"
	.ascii	"fg.name, cfg.platform))\012end\012table.sort(sorted"
	.ascii	"deplibs)\012for _, deplib in ipairs(sorteddeplibs) "
	.ascii	"do\012_p(3, deplib)\012end\012_p(3, '}')\012_p(2, '"
	.ascii	".LinkerLinkObjects = false')\012local linkeroptions"
	.ascii	" = {\012'\"%1\"',\012'/OUT:\"%2\"',\012'/NOLOGO',\012"
	.ascii	"'/errorReport:prompt',\012}\012local subsystemversi"
	.ascii	"on = '\",5.02\"'\012if cfg.platform == 'x32' then\012"
	.ascii	"subsystemversion = '\",5.01\"'\012end\012if cfg.kin"
	.ascii	"d == 'ConsoleApp' then\012table.insert(linkeroption"
	.ascii	"s, '/SUBSYSTEM:CONSOLE'..subsystemversion)\012else\012"
	.ascii	"table.insert(linkeroptions, '/SUBSYSTEM:WINDOWS'..s"
	.ascii	"ubsystemversion)\012end\012if cfg.kind == 'SharedLi"
	.ascii	"b' then\012table.insert(linkeroptions, '/DLL')\012e"
	.ascii	"nd\012if cfg.platform == 'x64' then\012table.insert"
	.ascii	"(linkeroptions, '/MACHINE:X64')\012else\012table.in"
	.ascii	"sert(linkeroptions, '/MACHINE:X86')\012end\012for _"
	.ascii	", libdir in ipairs(cfg.libdirs) do\012table.insert("
	.ascii	"linkeroptions, string.format('/LIBPATH:%s', path.tr"
	.ascii	"anslate(libdir, '\\\\')))\012end\012if not cfg.flag"
	.ascii	"s.WinMain and (cfg.kind == 'ConsoleApp' or cfg.kind"
	.ascii	" == 'WindowedApp') then\012if cfg.flags.Unicode the"
	.ascii	"n\012table.insert(linkeroptions, '/ENTRY:wmainCRTSt"
	.ascii	"artup')\012else\012table.insert(linkeroptions, '/EN"
	.ascii	"TRY:mainCRTStartup')\012end\012end\012local deffile"
	.ascii	" = premake.findfile(cfg, \".def\")\012if deffile th"
	.ascii	"en\012table.insert(linkeroptions, '/DEF:%s', deffil"
	.ascii	"e)\012end\012if (cfg.flags.Symbols ~= nil) then\012"
	.ascii	"table.insert(linkeroptions, '/DEBUG')\012end\012if "
	.ascii	"premake.config.islinkeroptimizedbuild(cfg.flags) th"
	.ascii	"en\012table.insert(linkeroptions, '/OPT:REF')\012ta"
	.ascii	"ble.insert(linkeropti"
	.ascii	"ons, '/OPT:ICF')\012end\012table.insert(linkeroptio"
	.ascii	"ns, '/INCREMENTAL'..((premake.config.isincrementall"
	.ascii	"ink(cfg) and '') or ':NO'))\012for _, addloption in"
	.ascii	" ipairs(cfg.linkoptions) do\012table.insert(linkero"
	.ascii	"ptions, addloption)\012end\012local linklibs = prem"
	.ascii	"ake.getlinks(cfg, \"all\", \"fullpath\")\012for _, "
	.ascii	"linklib in ipairs(linklibs) do\012table.insert(link"
	.ascii	"eroptions, path.getname(linklib))\012end\012table.s"
	.ascii	"ort(linkeroptions)\012_p(2, \".LinkerOptions = ''\""
	.ascii	")\012for _, option in ipairs(linkeroptions) do\012_"
	.ascii	"p(3, \"+ ' %s'\", option)\012end\012_p(3, \"+ .MSVC"
	.ascii	"LibPaths\")\012_p(2, \".LinkerOutput = '%s'\", cfg."
	.ascii	"buildtarget.fullpath)\012_p(1, '}')\012_p('')\012en"
	.ascii	"d\012local function executable(prj, cfg, useconfig,"
	.ascii	" commonbasepath)\012binary(prj, cfg, useconfig, 'Ex"
	.ascii	"ecutable', commonbasepath)\012end\012local function"
	.ascii	" dll(prj, cfg, useconfig, commonbasepath)\012binary"
	.ascii	"(prj, cfg, useconfig, 'DLL', commonbasepath)\012end"
	.ascii	"\012local function alias(prj, cfg, target)\012_p(1,"
	.ascii	" \"Alias('%s-%s-%s')\", prj.name, cfg.name, cfg.pla"
	.ascii	"tform)\012_p(1, '{')\012_p(2, \".Targets = '%s'\", "
	.ascii	"target)\012_p(1, '}')\012_p('')\012end\012function "
	.ascii	"premake.fastbuild.project(prj)\012io.indent = '    "
	.ascii	"'\012_p('// FASTBuild project configuration file au"
	.ascii	"togenerated by GENie.')\012_p('')\012_p('{')\012loc"
	.ascii	"al cppfiles = {}\012for file in premake.project.eac"
	.ascii	"hfile(prj) do\012if path.issourcefile(file.name) th"
	.ascii	"en\012table.insert(cppfiles, file.name)\012end\012e"
	.ascii	"nd\012local commonbasepath = cppfiles[1]\012for _, "
	.ascii	"file in ipairs(cppfiles) do\012commonbasepath = pat"
	.ascii	"h.getcommonbasedir(commonbasepath..'/', file)\012en"
	.ascii	"d\012_p(1, \".CompilerInputFilesRoot = '%s/'\", com"
	.ascii	"monbasepath)\012_p(1, '.CompilerInputFiles = {')\012"
	.ascii	"for _, file in ipairs(cppfiles) do\012_p(2, \"'%s',"
	.ascii	"\", file)\012end\012_p(1, '}')\012_p('')\012local t"
	.ascii	"argetkindmap = {\012ConsoleApp = executable,\012Win"
	.ascii	"dowedApp = executable,\012SharedLib = dll,\012Stati"
	.ascii	"cLib = library,\012}\012local useconfigmap = {\012x"
	.ascii	"32 = function(indentlevel)\012_p(indentlevel, 'Usin"
	.ascii	"g(.MSVCx86Config)')\012_p('')\012end,\012x64 = func"
	.ascii	"tion(indentlevel)\012_p(indentlevel, 'Using(.MSVCx6"
	.ascii	"4Config)')\012_p('')\012end,\012}\012local nativepl"
	.ascii	"atform = (os.is64bit() and 'x64') or 'x32'\012for _"
	.ascii	", platform in ipairs(prj.solution.platform"
	.ascii	"s) do\012for cfg in premake.eachconfig(prj, platfor"
	.ascii	"m) do\012if cfg.platform == 'Native' then\012alias("
	.ascii	"prj, cfg, string.format('%s-%s-%s', prj.name, cfg.n"
	.ascii	"ame, nativeplatform))\012else\012targetkindmap[prj."
	.ascii	"kind](prj, cfg, useconfigmap[cfg.platform], commonb"
	.ascii	"asepath)\012end\012end\012end\012_p('}')\012end\012"
	.ascii	"\000"
	.align	2
.LC59:
	.ascii	"-- Generates a FASTBuild config file for a solution"
	.ascii	".\012function premake.fastbuild.solution(sln)\012io"
	.ascii	".indent = '    '\012_p('// FastBuild solution confi"
	.ascii	"guration file.  Generated by GENie.')\012_p('//----"
	.ascii	"---------------------------------------------------"
	.ascii	"-----------------------------')\012_p('// %s', sln."
	.ascii	"name)\012_p('//------------------------------------"
	.ascii	"------------------------------------------------')\012"
	.ascii	"_p('#import VS140COMNTOOLS')\012local is64bit = os."
	.ascii	"is64bit()\012local target64 = (is64bit and ' amd64'"
	.ascii	") or ' x86_amd64'\012local target32 = (is64bit and "
	.ascii	"' amd64_x86') or ''\012local getvcvarscontent = [[\012"
	.ascii	"@set INCLUDE=\012@set LIB=\012@set CommandPromptTyp"
	.ascii	"e=\012@set PreferredToolArchitecture=\012@set Platf"
	.ascii	"orm=\012@set Path=%SystemRoot%\\System32;%SystemRoo"
	.ascii	"t%;%SystemRoot%\\System32\\wbem\012@call \"%VS140CO"
	.ascii	"MNTOOLS%..\\..\\VC\\vcvarsall.bat\" %1\012@echo %IN"
	.ascii	"CLUDE%\012@echo %LIB%\012@echo %CommandPromptType%\012"
	.ascii	"@echo %PreferredToolArchitecture%\012@echo %Platfor"
	.ascii	"m%\012@echo %Path%\012]]\012local getvcvarsfilepath"
	.ascii	" = os.getenv('TEMP')..'\\\\getvcvars.bat'\012local "
	.ascii	"getvcvarsfile = assert(io.open(getvcvarsfilepath, '"
	.ascii	"w'))\012getvcvarsfile:write(getvcvarscontent)\012ge"
	.ascii	"tvcvarsfile:close()\012local vcvarsrawx86 = os.outp"
	.ascii	"utof(string.format('call \"%s\"%s', getvcvarsfilepa"
	.ascii	"th, target32))\012local vcvarsrawx64 = os.outputof("
	.ascii	"string.format('call \"%s\"%s', getvcvarsfilepath, t"
	.ascii	"arget64))\012os.remove(getvcvarsfilepath)\012local "
	.ascii	"msvcvars = {}\012msvcvars.x32 = {}\012msvcvars.x64 "
	.ascii	"= {}\012local includeslibssplitter = string.gmatch("
	.ascii	"vcvarsrawx64, \"[^\\n]+\")\012msvcvars.x64.includes"
	.ascii	"raw = includeslibssplitter()\012msvcvars.x64.libpat"
	.ascii	"hsraw = includeslibssplitter()\012msvcvars.x64.comm"
	.ascii	"andprompttype = includeslibssplitter()\012msvcvars."
	.ascii	"x64.preferredtoolarchitecture = includeslibssplitte"
	.ascii	"r()\012msvcvars.x64.platform = includeslibssplitter"
	.ascii	"()\012msvcvars.x64.pathraw = includeslibssplitter()"
	.ascii	"\012includeslibssplitter = string.gmatch(vcvarsrawx"
	.ascii	"86, \"[^\\n]+\")\012msvcvars.x32.includesraw = incl"
	.ascii	"udeslibssplitter()\012msvcvars.x32.libpathsraw = in"
	.ascii	"cludeslibssplitter()\012msvcvars.x32.commandpromptt"
	.ascii	"ype = includeslibssplitter()\012msvcvars.x32.prefer"
	.ascii	"redtoolarc"
	.ascii	"hitecture = includeslibssplitter()\012msvcvars.x32."
	.ascii	"platform = includeslibssplitter()\012msvcvars.x32.p"
	.ascii	"athraw = includeslibssplitter()\012local function p"
	.ascii	"rintincludes(includesraw)\012_p(1, \".MSVCIncludes "
	.ascii	"= ''\")\012for i in string.gmatch(includesraw, \"[^"
	.ascii	";]+\") do\012_p(2, \"+ ' /I\\\"%s\\\"'\", i)\012end"
	.ascii	"\012end\012local function printlibpaths(libpathsraw"
	.ascii	")\012_p(1, \".MSVCLibPaths = ''\")\012for i in stri"
	.ascii	"ng.gmatch(libpathsraw, \"[^;]+\") do\012_p(2, \"+ '"
	.ascii	" /LIBPATH:\\\"%s\\\"'\", i)\012end\012end\012if is6"
	.ascii	"4bit then\012_p('.MSVCx64Config =')\012_p('[')\012_"
	.ascii	"p(1, \".Compiler  = '$VS140COMNTOOLS$..\\\\..\\\\VC"
	.ascii	"\\\\bin\\\\amd64\\\\cl.exe'\")\012_p(1, \".Libraria"
	.ascii	"n = '$VS140COMNTOOLS$..\\\\..\\\\VC\\\\bin\\\\amd64"
	.ascii	"\\\\lib.exe'\")\012_p(1, \".Linker    = '$VS140COMN"
	.ascii	"TOOLS$..\\\\..\\\\VC\\\\bin\\\\amd64\\\\link.exe'\""
	.ascii	")\012printincludes(msvcvars.x64.includesraw)\012pri"
	.ascii	"ntlibpaths(msvcvars.x64.libpathsraw)\012_p(']')\012"
	.ascii	"_p('')\012_p('.MSVCx86Config =')\012_p('[')\012_p(1"
	.ascii	", \".Compiler  = '$VS140COMNTOOLS$..\\\\..\\\\VC\\\\"
	.ascii	"bin\\\\amd64_x86\\\\cl.exe'\")\012_p(1, \".Libraria"
	.ascii	"n = '$VS140COMNTOOLS$..\\\\..\\\\VC\\\\bin\\\\amd64"
	.ascii	"_x86\\\\lib.exe'\")\012_p(1, \".Linker    = '$VS140"
	.ascii	"COMNTOOLS$..\\\\..\\\\VC\\\\bin\\\\amd64_x86\\\\lin"
	.ascii	"k.exe'\")\012printincludes(msvcvars.x32.includesraw"
	.ascii	")\012printlibpaths(msvcvars.x32.libpathsraw)\012_p("
	.ascii	"']')\012_p('')\012else\012_p('.MSVCx64Config =')\012"
	.ascii	"_p('[')\012_p(1, \".Compiler  = '$VS140COMNTOOLS$.."
	.ascii	"\\\\..\\\\VC\\\\bin\\\\x86_amd64\\\\cl.exe'\")\012_"
	.ascii	"p(1, \".Librarian = '$VS140COMNTOOLS$..\\\\..\\\\VC"
	.ascii	"\\\\bin\\\\x86_amd64\\\\lib.exe'\")\012_p(1, \".Lin"
	.ascii	"ker    = '$VS140COMNTOOLS$..\\\\..\\\\VC\\\\bin\\\\"
	.ascii	"x86_amd64\\\\link.exe'\")\012printincludes(msvcvars"
	.ascii	".x64.includesraw)\012printlibpaths(msvcvars.x64.lib"
	.ascii	"pathsraw)\012_p(']')\012_p('')\012_p('.MSVCx86Confi"
	.ascii	"g =')\012_p('[')\012_p(1, \".Compiler  = '$VS140COM"
	.ascii	"NTOOLS$..\\\\..\\\\VC\\\\bin\\\\cl.exe'\")\012_p(1,"
	.ascii	" \".Librarian = '$VS140COMNTOOLS$..\\\\..\\\\VC\\\\"
	.ascii	"bin\\\\lib.exe'\")\012_p(1, \".Linker    = '$VS140C"
	.ascii	"OMNTOOLS$..\\\\..\\\\VC\\\\bin\\\\link.exe'\")\012p"
	.ascii	"rintincludes(msvcvars.x32.includesraw)\012printlibp"
	.ascii	"aths(msvcvars.x32.libpathsraw)\012_p(']')\012_p('')"
	.ascii	"\012end\012local msvcbin = '$VS140COMNTOOLS$..\\\\."
	.ascii	".\\\\VC\\\\bin' .. ((is64bit and '\\\\amd64') or ''"
	.ascii	")\012_p('#import Path')\012_p('#import TMP')\012_p("
	.ascii	"'#import SystemRoot')\012_p('')\012_p('Setting"
	.ascii	"s')\012_p('{')\012_p(1, '.Environment = {')\012_p(2"
	.ascii	", \"'Path=%s;$Path$',\", msvcbin)\012_p(2, \"'TMP=$"
	.ascii	"TMP$',\")\012_p(2, \"'SystemRoot=$SystemRoot$',\")\012"
	.ascii	"_p(2, '}')\012_p('}')\012_p('')\012local function p"
	.ascii	"rojkindsort(a, b)\012local projvaluemap = {\012Cons"
	.ascii	"oleApp  = 3,\012WindowedApp = 3,\012SharedLib   = 2"
	.ascii	",\012StaticLib   = 1,\012}\012if projvaluemap[a.kin"
	.ascii	"d] == projvaluemap[b.kind] then\012return a.name < "
	.ascii	"b.name\012else\012return projvaluemap[a.kind] < pro"
	.ascii	"jvaluemap[b.kind]\012end\012end\012local sortedproj"
	.ascii	"s = {}\012for prj in premake.solution.eachproject(s"
	.ascii	"ln) do\012table.insert(sortedprojs, prj)\012end\012"
	.ascii	"table.sort(sortedprojs, projkindsort)\012for _, prj"
	.ascii	" in ipairs(sortedprojs) do\012local fname = premake"
	.ascii	".project.getbasename(prj.name, '%%.bff')\012fname ="
	.ascii	" path.join(prj.location, fname)\012fname = path.get"
	.ascii	"relative(sln.location, fname)\012_p('#include \"%s\""
	.ascii	"', fname)\012end\012_p('')\012_p('.ProjectVariants "
	.ascii	"= {')\012for _, plat in ipairs(sln.platforms) do\012"
	.ascii	"for _, cfg in ipairs(sln.configurations) do\012_p(1"
	.ascii	", \"'%s-%s',\", cfg, plat)\012end\012end\012_p('}')"
	.ascii	"\012_p('')\012_p('ForEach(.Variant in .ProjectVaria"
	.ascii	"nts)')\012_p('{')\012_p(1, \"Alias('all-$Variant$')"
	.ascii	"\")\012_p(1, '{')\012_p(2, '.Targets = {')\012for _"
	.ascii	", prj in ipairs(sortedprojs) do\012_p(3, \"'%s-$Var"
	.ascii	"iant$',\", prj.name)\012end\012_p(2, '}')\012_p(1, "
	.ascii	"'}')\012_p('}')\012end\012\000"
	.align	2
.LC60:
	.ascii	"premake.ninja = { }\012local p = premake\012newacti"
	.ascii	"on\012{\012trigger     = \"ninja\",\012shortname   "
	.ascii	"= \"ninja\",\012description = \"Generate Ninja buil"
	.ascii	"d files\",\012module      = \"ninja\",\012valid_kin"
	.ascii	"ds     = {\"ConsoleApp\", \"WindowedApp\", \"Static"
	.ascii	"Lib\", \"SharedLib\", \"Bundle\"},\012valid_languag"
	.ascii	"es = {\"C\", \"C++\", \"Swift\"},\012valid_tools   "
	.ascii	"  = {\012cc    = { \"gcc\" },\012swift = { \"swift\""
	.ascii	" },\012},\012onsolution = function(sln)\012io.eol  "
	.ascii	"  = \"\\r\\n\"\012io.indent = \"\\t\"\012io.escaper"
	.ascii	"(p.ninja.esc)\012p.generate(sln, \"Makefile\", p.ni"
	.ascii	"nja.generate_solution)\012io.indent = \"  \"\012p.n"
	.ascii	"inja.generate_ninja_builds(sln)\012end,\012onprojec"
	.ascii	"t = function(prj)\012io.eol    = \"\\r\\n\"\012io.i"
	.ascii	"ndent = \"  \"\012io.escaper(p.ninja.esc)\012p.ninj"
	.ascii	"a.generate_project(prj)\012end,\012oncleansolution "
	.ascii	"= function(sln)\012for _,name in ipairs(sln.configu"
	.ascii	"rations) do\012premake.clean.file(sln, p.ninja.get_"
	.ascii	"solution_name(sln, name))\012end\012end,\012onclean"
	.ascii	"project = function(prj)\012end,\012oncleantarget = "
	.ascii	"function(prj)\012end,\012}\012\000"
	.align	2
.LC61:
	.ascii	"local ninja = premake.ninja\012function ninja.esc(v"
	.ascii	"alue)\012if value then\012value = string.gsub(value"
	.ascii	", \"%$\", \"$$\") -- TODO maybe there is better way"
	.ascii	"\012value = string.gsub(value, \":\", \"$:\")\012va"
	.ascii	"lue = string.gsub(value, \"\\n\", \"$\\n\")\012valu"
	.ascii	"e = string.gsub(value, \" \", \"$ \")\012end\012ret"
	.ascii	"urn value\012end\012function ninja.shesc(value)\012"
	.ascii	"if type(value) == \"table\" then\012local result = "
	.ascii	"{}\012local n = #value\012for i = 1, n do\012table."
	.ascii	"insert(result, ninja.shesc(value[i]))\012end\012ret"
	.ascii	"urn result\012end\012if value:find(\" \") then\012r"
	.ascii	"eturn \"\\\"\" .. value .. \"\\\"\"\012end\012retur"
	.ascii	"n value\012end\012function ninja.list(value)\012if "
	.ascii	"#value > 0 then\012return \" \" .. table.concat(val"
	.ascii	"ue, \" \")\012else\012return \"\"\012end\012end\012"
	.ascii	"function ninja.arglist(arg, value)\012if #value > 0"
	.ascii	" then\012local args = {}\012for _, val in ipairs(va"
	.ascii	"lue) do\012table.insert(args, string.format(\"%s %s"
	.ascii	"\", arg, val))\012end\012return table.concat(args, "
	.ascii	"\" \")\012else\012return \"\"\012end\012end\012func"
	.ascii	"tion ninja.generate_project(prj)\012if prj.language"
	.ascii	" == \"Swift\" then\012ninja.generate_swift(prj)\012"
	.ascii	"else\012ninja.generate_cpp(prj)\012end\012end\012lo"
	.ascii	"cal function innerget(self, key)\012return rawget(g"
	.ascii	"etmetatable(self), key) or self.__inner[key]\012end"
	.ascii	"\012local prj_proxy = { __index = innerget }\012loc"
	.ascii	"al cfg_proxy = { __index = innerget }\012function n"
	.ascii	"ew_prj_proxy(prj)\012prj = prj.project or prj\012lo"
	.ascii	"cal v = { __inner = prj }\012local __configs = {}\012"
	.ascii	"for key, cfg in pairs(prj.__configs) do\012if key ~"
	.ascii	"= \"\" then\012__configs[key] = ninja.get_proxy(\"c"
	.ascii	"fg\", cfg)\012else\012__configs[key] = cfg\012end\012"
	.ascii	"end\012v.__configs = __configs\012return setmetatab"
	.ascii	"le(v, prj_proxy)\012end\012local function rebasekey"
	.ascii	"s(t, keys, old, new)\012for _,key in ipairs(keys) d"
	.ascii	"o\012t[key] = path.rebase(t[key], old, new)\012end\012"
	.ascii	"return t\012end\012local function rebasearray(t, ol"
	.ascii	"d, new)\012local res = { }\012for _,f in ipairs(t) "
	.ascii	"do\012table.insert(res, path.rebase(f, old, new))\012"
	.ascii	"end\012return res\012end\012function new_cfg_proxy("
	.ascii	"cfg)\012local keys = { \"directory\", \"fullpath\","
	.ascii	" \"bundlepath\" }\012local old = cfg.location\012lo"
	.ascii	"cal new = path.join(cfg.location, cfg.shortname)\012"
	.ascii	"local v = {\012__inner     = cfg,\012location    = "
	.ascii	"new,\012objectsdir  = path.rebase(cfg.objectsdir, o"
	.ascii	"ld, new),\012bui"
	.ascii	"ldtarget = rebasekeys(table.deepcopy(cfg.buildtarge"
	.ascii	"t), keys, old, new),\012linktarget  = rebasekeys(ta"
	.ascii	"ble.deepcopy(cfg.linktarget), keys, old, new),\012}"
	.ascii	"\012v.files             = rebasearray(cfg.files, ol"
	.ascii	"d, new)\012v.includedirs       = rebasearray(cfg.in"
	.ascii	"cludedirs, old, new)\012v.libdirs       = rebasearr"
	.ascii	"ay(cfg.libdirs, old, new)\012v.userincludedirs   = "
	.ascii	"rebasearray(cfg.userincludedirs, old, new)\012v.sys"
	.ascii	"temincludedirs = rebasearray(cfg.systemincludedirs,"
	.ascii	" old, new)\012v.swiftmodulemaps   = rebasearray(cfg"
	.ascii	".swiftmodulemaps, old, new)\012return setmetatable("
	.ascii	"v, cfg_proxy)\012end\012function cfg_proxy:getproje"
	.ascii	"ctfilename(fullpath)\012local name = self.project.n"
	.ascii	"ame .. \".ninja\"\012if fullpath ~= nil then\012ret"
	.ascii	"urn path.join(self.location, name)\012end\012return"
	.ascii	" name\012end\012function cfg_proxy:getoutputfilenam"
	.ascii	"e()\012return path.join(self.buildtarget.directory,"
	.ascii	" self.buildtarget.name)\012end\012local proxy_cache"
	.ascii	" = { \012prj = { new = new_prj_proxy }, \012cfg = {"
	.ascii	" new = new_cfg_proxy },\012}\012function get_proxy("
	.ascii	"cache, obj)\012if not cache[obj] then\012cache[obj]"
	.ascii	" = cache.new(obj)\012end\012return cache[obj]\012en"
	.ascii	"d\012function ninja.get_proxy(typ, obj)\012if not p"
	.ascii	"roxy_cache[typ] then\012error(\"invalid proxy type\""
	.ascii	")\012end\012return get_proxy(proxy_cache[typ], obj)"
	.ascii	"\012end\012\000"
	.align	2
.LC62:
	.ascii	"local ninja = premake.ninja\012local p = premake\012"
	.ascii	"local solution = p.solution\012function ninja.gener"
	.ascii	"ate_solution(sln)\012local cc = premake[_OPTIONS.cc"
	.ascii	"]\012local platforms = premake.filterplatforms(sln,"
	.ascii	" cc.platforms, \"Native\")\012_p('# %s solution mak"
	.ascii	"efile autogenerated by GENie', premake.action.curre"
	.ascii	"nt().shortname)\012_p('# Type \"make help\" for usa"
	.ascii	"ge help')\012_p('')\012_p('NINJA=ninja')\012_p('ifn"
	.ascii	"def config')\012_p('  config=%s', _MAKE.esc(premake"
	.ascii	".getconfigname(sln.configurations[1], platforms[1],"
	.ascii	" true)))\012_p('endif')\012_p('')\012local projects"
	.ascii	" = table.extract(sln.projects, \"name\")\012table.s"
	.ascii	"ort(projects)\012_p('')\012_p('.PHONY: all clean he"
	.ascii	"lp $(PROJECTS)')\012_p('')\012_p('all:')\012if (not"
	.ascii	" sln.messageskip) or (not table.contains(sln.messag"
	.ascii	"eskip, \"SkipBuildingMessage\")) then\012_p(1, '@ec"
	.ascii	"ho \"==== Building all ($(config)) ====\"')\012end\012"
	.ascii	"_p(1, '@${NINJA} -C ${config} all')\012_p('')\012fo"
	.ascii	"r _, prj in ipairs(sln.projects) do\012local prjx ="
	.ascii	" ninja.get_proxy(\"prj\", prj)\012_p('%s:', _MAKE.e"
	.ascii	"sc(prj.name))\012if (not sln.messageskip) or (not t"
	.ascii	"able.contains(sln.messageskip, \"SkipBuildingMessag"
	.ascii	"e\")) then\012_p(1, '@echo \"==== Building %s ($(co"
	.ascii	"nfig)) ====\"', prj.name)\012end\012_p(1, '@${NINJA"
	.ascii	"} -C ${config} %s', prj.name)\012_p('')\012end\012_"
	.ascii	"p('clean:')\012_p(1, '@${NINJA} -C ${config} -t cle"
	.ascii	"an')\012_p('')\012_p('help:')\012_p(1,'@echo \"Usag"
	.ascii	"e: make [config=name] [target]\"')\012_p(1,'@echo \""
	.ascii	"\"')\012_p(1,'@echo \"CONFIGURATIONS:\"')\012local "
	.ascii	"cfgpairs = { }\012for _, platform in ipairs(platfor"
	.ascii	"ms) do\012for _, cfgname in ipairs(sln.configuratio"
	.ascii	"ns) do\012_p(1,'@echo \"   %s\"', premake.getconfig"
	.ascii	"name(cfgname, platform, true))\012end\012end\012_p("
	.ascii	"1,'@echo \"\"')\012_p(1,'@echo \"TARGETS:\"')\012_p"
	.ascii	"(1,'@echo \"   all (default)\"')\012_p(1,'@echo \" "
	.ascii	"  clean\"')\012for _, prj in ipairs(sln.projects) d"
	.ascii	"o\012_p(1,'@echo \"   %s\"', prj.name)\012end\012_p"
	.ascii	"(1,'@echo \"\"')\012_p(1,'@echo \"For more informat"
	.ascii	"ion, see https://github.com/bkaradzic/genie\"')\012"
	.ascii	"end\012local generate\012local function getconfigs("
	.ascii	"sln, name, plat)\012local cfgs = {}\012for prj in s"
	.ascii	"olution.eachproject(sln) do\012prj = ninja.get_prox"
	.ascii	"y(\"prj\", prj)\012for cfg in p.eachconfig(prj, pla"
	.ascii	"t) do\012if cfg.name == name th"
	.ascii	"en\012table.insert(cfgs, cfg)\012end\012end\012end\012"
	.ascii	"return cfgs\012end\012function ninja.generate_ninja"
	.ascii	"_builds(sln)\012local cc = premake[_OPTIONS.cc]\012"
	.ascii	"sln.getlocation = function(cfg, plat)\012return pat"
	.ascii	"h.join(sln.location, premake.getconfigname(cfg, pla"
	.ascii	"t, true))\012end\012local platforms = premake.filte"
	.ascii	"rplatforms(sln, cc.platforms, \"Native\")\012for _,"
	.ascii	"plat in ipairs(platforms) do\012for _,name in ipair"
	.ascii	"s(sln.configurations) do\012p.generate(sln, ninja.g"
	.ascii	"et_solution_name(sln, name, plat), function(sln)\012"
	.ascii	"generate(getconfigs(sln, name, plat))\012end)\012en"
	.ascii	"d\012end\012end\012function ninja.get_solution_name"
	.ascii	"(sln, cfg, plat)\012return path.join(sln.getlocatio"
	.ascii	"n(cfg, plat), \"build.ninja\")\012end\012function g"
	.ascii	"enerate(prjcfgs)\012local cfgs          = {}\012loc"
	.ascii	"al cfg_start     = nil\012local cfg_first     = nil"
	.ascii	"\012local cfg_first_lib = nil\012_p(\"# solution bu"
	.ascii	"ild file\")\012_p(\"# generated with GENie ninja\")"
	.ascii	"\012_p(\"\")\012_p(\"# build projects\")\012for _,c"
	.ascii	"fg in ipairs(prjcfgs) do\012local key  = cfg.projec"
	.ascii	"t.name\012if not cfgs[key] then cfgs[key] = \"\" en"
	.ascii	"d\012cfgs[key] = cfg:getoutputfilename() .. \" \"\012"
	.ascii	"if not cfgs[\"all\"] then cfgs[\"all\"] = \"\" end\012"
	.ascii	"cfgs[\"all\"] = cfgs[\"all\"] .. cfg:getoutputfilen"
	.ascii	"ame() .. \" \"\012if (cfg_start == nil) and (cfg.so"
	.ascii	"lution.startproject == key) then\012cfg_start = key"
	.ascii	"\012end\012if (cfg_first == nil) and (cfg.kind == \""
	.ascii	"ConsoleApp\" or cfg.kind == \"WindowedApp\") then\012"
	.ascii	"cfg_first = key\012end\012if (cfg_first_lib == nil)"
	.ascii	" and (cfg.kind == \"StaticLib\" or cfg.kind == \"Sh"
	.ascii	"aredLib\") then\012cfg_first_lib = key\012end\012_p"
	.ascii	"(\"subninja \" .. cfg:getprojectfilename())\012end\012"
	.ascii	"_p(\"\")\012_p(\"# targets\")\012for cfg, outputs i"
	.ascii	"n iter.sortByKeys(cfgs) do\012_p(\"build \" .. cfg "
	.ascii	".. \": phony \" .. outputs)\012end\012_p(\"\")\012_"
	.ascii	"p(\"# default target\")\012_p(\"default \" .. (cfg_"
	.ascii	"start or cfg_first or cfg_first_lib))\012_p(\"\")\012"
	.ascii	"end\012\000"
	.align	2
.LC63:
	.ascii	"premake.ninja.cpp = { }\012local ninja = premake.ni"
	.ascii	"nja\012local cpp   = premake.ninja.cpp\012local p  "
	.ascii	"   = premake\012local function wrap_ninja_cmd(c)\012"
	.ascii	"if os.is(\"windows\") then\012return 'cmd /c \"' .."
	.ascii	" c .. '\"'\012else\012return c\012end\012end\012fun"
	.ascii	"ction ninja.generate_cpp(prj)\012local pxy = ninja."
	.ascii	"get_proxy(\"prj\", prj)\012local tool = premake.get"
	.ascii	"tool(prj)\012local platforms = premake.filterplatfo"
	.ascii	"rms(prj.solution, tool.platforms, \"Native\")\012fo"
	.ascii	"r _, platform in ipairs(platforms) do\012for cfg in"
	.ascii	" p.eachconfig(pxy, platform) do\012p.generate(cfg, "
	.ascii	"cfg:getprojectfilename(), function() cpp.generate_c"
	.ascii	"onfig(prj, cfg) end)\012end\012end\012end\012functi"
	.ascii	"on cpp.generate_config(prj, cfg)\012local tool = pr"
	.ascii	"emake.gettool(prj)\012_p('# Ninja build project fil"
	.ascii	"e autogenerated by GENie')\012_p('# https://github."
	.ascii	"com/bkaradzic/GENie')\012_p(\"\")\012_p(\"ninja_req"
	.ascii	"uired_version = 1.7\")\012_p(\"\")\012local flags ="
	.ascii	" {\012defines   = ninja.list(tool.getdefines(cfg.de"
	.ascii	"fines)),\012includes  = ninja.list(table.join(tool."
	.ascii	"getincludedirs(cfg.includedirs), tool.getquoteinclu"
	.ascii	"dedirs(cfg.userincludedirs), tool.getsystemincluded"
	.ascii	"irs(cfg.systemincludedirs))),\012cppflags  = ninja."
	.ascii	"list(tool.getcppflags(cfg)),\012asmflags  = ninja.l"
	.ascii	"ist(table.join(tool.getcflags(cfg), cfg.buildoption"
	.ascii	"s, cfg.buildoptions_asm)),\012cflags    = ninja.lis"
	.ascii	"t(table.join(tool.getcflags(cfg), cfg.buildoptions,"
	.ascii	" cfg.buildoptions_c)),\012cxxflags  = ninja.list(ta"
	.ascii	"ble.join(tool.getcflags(cfg), tool.getcxxflags(cfg)"
	.ascii	", cfg.buildoptions, cfg.buildoptions_cpp)),\012objc"
	.ascii	"flags = ninja.list(table.join(tool.getcflags(cfg), "
	.ascii	"tool.getcxxflags(cfg), cfg.buildoptions, cfg.buildo"
	.ascii	"ptions_objc)),\012}\012_p(\"\")\012_p(\"# core rule"
	.ascii	"s for \" .. cfg.name)\012_p(\"rule cc\")\012_p(\"  "
	.ascii	"command     = \" .. wrap_ninja_cmd(tool.cc .. \" $d"
	.ascii	"efines $includes $flags -MMD -MF $out.d -c -o $out "
	.ascii	"$in\"))\012_p(\"  description = cc $out\")\012_p(\""
	.ascii	"  depfile     = $out.d\")\012_p(\"  deps        = g"
	.ascii	"cc\")\012_p(\"\")\012_p(\"rule cxx\")\012_p(\"  com"
	.ascii	"mand     = \" .. wrap_ninja_cmd(tool.cxx .. \" $def"
	.ascii	"ines $includes $flags -MMD -MF $out.d -c -o $out $i"
	.ascii	"n\"))\012_p(\"  description = cxx $out\")\012_p(\" "
	.ascii	" depfile     = $out.d\")\012_p(\"  deps        "
	.ascii	"= gcc\")\012_p(\"\")\012_p(\"rule ar\")\012_p(\"  c"
	.ascii	"ommand         = \" .. wrap_ninja_cmd(tool.ar .. \""
	.ascii	" $flags $out @$out.rsp \" .. (os.is(\"MacOSX\") and"
	.ascii	" \" 2>&1 > /dev/null | sed -e '/.o) has no symbols$"
	.ascii	"$/d'\" or \"\")))\012_p(\"  description     = ar $o"
	.ascii	"ut\")\012_p(\"  rspfile         = $out.rsp\")\012_p"
	.ascii	"(\"  rspfile_content = $in $libs\")\012_p(\"\")\012"
	.ascii	"local link = iif(cfg.language == \"C\", tool.cc, to"
	.ascii	"ol.cxx)\012_p(\"rule link\")\012local startgroup = "
	.ascii	"''\012local endgroup = ''\012if (cfg.flags.LinkSupp"
	.ascii	"ortCircularDependencies) then\012startgroup = '-Wl,"
	.ascii	"--start-group'\012endgroup = '-Wl,--end-group'\012e"
	.ascii	"nd\012_p(\"  command         = \" .. wrap_ninja_cmd"
	.ascii	"(\"$pre_link \" .. link .. \" -o $out @$out.rsp $al"
	.ascii	"l_ldflags $post_build\"))\012_p(\"  description    "
	.ascii	" = link $out\")\012_p(\"  rspfile         = $out.rs"
	.ascii	"p\")\012_p(\"  rspfile_content = $all_outputfiles $"
	.ascii	"walibs\" .. string.format(\"%s $libs %s\", startgro"
	.ascii	"up, endgroup))\012_p(\"\")\012_p(\"rule exec\")\012"
	.ascii	"_p(\"  command     = \" .. wrap_ninja_cmd(\"$comman"
	.ascii	"d\"))\012_p(\"  description = Run $type commands\")"
	.ascii	"\012_p(\"\")\012if #cfg.prebuildcommands > 0 then\012"
	.ascii	"_p(\"build __prebuildcommands_\" .. premake.esc(prj"
	.ascii	".name) .. \": exec\")\012_p(1, \"command = \" .. wr"
	.ascii	"ap_ninja_cmd(\"echo Running pre-build commands && \""
	.ascii	" .. table.implode(cfg.prebuildcommands, \"\", \"\","
	.ascii	" \" && \")))\012_p(1, \"type    = pre-build\")\012_"
	.ascii	"p(\"\")\012end\012cfg.pchheader_full = cfg.pchheade"
	.ascii	"r\012for _, incdir in ipairs(cfg.includedirs) do\012"
	.ascii	"local abspath = path.getabsolute(path.join(cfg.proj"
	.ascii	"ect.location, cfg.shortname, incdir))\012local test"
	.ascii	"name = path.join(abspath, cfg.pchheader_full)\012if"
	.ascii	" os.isfile(testname) then\012cfg.pchheader_full = p"
	.ascii	"ath.getrelative(cfg.location, testname)\012break\012"
	.ascii	"end\012end\012cpp.custombuildtask(prj, cfg)\012cpp."
	.ascii	"dependencyRules(prj, cfg)\012cpp.file_rules(prj, cf"
	.ascii	"g, flags)\012local objfiles = {}\012for _, file in "
	.ascii	"ipairs(cfg.files) do\012if path.issourcefile(file) "
	.ascii	"then\012table.insert(objfiles, cpp.objectname(cfg, "
	.ascii	"file))\012end\012end\012_p('')\012cpp.linker(prj, c"
	.ascii	"fg, objfiles, tool, flags)\012_p(\"\")\012end\012fu"
	.ascii	"nction cpp.custombuildtask(prj, cfg)\012local cmd_i"
	.ascii	"ndex = 1\012local seen_commands = {}\012local comma"
	.ascii	"nd_by_name = {}\012local command_files = {}\012lo"
	.ascii	"cal prebuildsuffix = #cfg.prebuildcommands > 0 and "
	.ascii	"\"||__prebuildcommands_\" .. premake.esc(prj.name) "
	.ascii	"or \"\"\012for _, custombuildtask in ipairs(prj.cus"
	.ascii	"tombuildtask or {}) do\012for _, buildtask in ipair"
	.ascii	"s(custombuildtask or {}) do\012for _, cmd in ipairs"
	.ascii	"(buildtask[4] or {}) do\012local num = 1\012for _, "
	.ascii	"depdata in ipairs(buildtask[3] or {}) do\012cmd = s"
	.ascii	"tring.gsub(cmd,\"%$%(\" .. num ..\"%)\", string.for"
	.ascii	"mat(\"%s \", path.getrelative(cfg.location, depdata"
	.ascii	")))\012num = num + 1\012end\012cmd = string.gsub(cm"
	.ascii	"d, '%$%(<%)', '$in')\012cmd = string.gsub(cmd, '%$%"
	.ascii	"(@%)', '$out')\012local cmd_name -- shortened comma"
	.ascii	"nd name\012if seen_commands[cmd] == nil then\012loc"
	.ascii	"al _, _, name = string.find(cmd, '([.%w]+)%s')\012n"
	.ascii	"ame = 'cmd' .. cmd_index .. '_' .. string.gsub(name"
	.ascii	", '[^%w]', '_')\012seen_commands[cmd] = {\012name ="
	.ascii	" name,\012index = cmd_index,\012}\012cmd_index = cm"
	.ascii	"d_index + 1\012cmd_name = name\012else\012cmd_name "
	.ascii	"= seen_commands[cmd].name\012end\012local index = s"
	.ascii	"een_commands[cmd].index\012if command_files[index] "
	.ascii	"== nil then\012command_files[index] = {}\012end\012"
	.ascii	"local cmd_set = command_files[index]\012table.inser"
	.ascii	"t(cmd_set, {\012buildtask[1],\012buildtask[2],\012b"
	.ascii	"uildtask[3],\012seen_commands[cmd].name,\012})\012c"
	.ascii	"ommand_files[index] = cmd_set\012command_by_name[cm"
	.ascii	"d_name] = cmd\012end\012end\012end\012_p(\"# custom"
	.ascii	" build rules\")\012for command, details in pairs(se"
	.ascii	"en_commands) do\012_p(\"rule \" .. details.name)\012"
	.ascii	"_p(1, \"command = \" .. wrap_ninja_cmd(command))\012"
	.ascii	"end\012for cmd_index, cmdsets in ipairs(command_fil"
	.ascii	"es) do\012for _, cmdset in ipairs(cmdsets) do\012lo"
	.ascii	"cal file_in = path.getrelative(cfg.location, cmdset"
	.ascii	"[1])\012local file_out = path.getrelative(cfg.locat"
	.ascii	"ion, cmdset[2])\012local deps = ''\012for i, dep in"
	.ascii	" ipairs(cmdset[3]) do\012deps = deps .. path.getrel"
	.ascii	"ative(cfg.location, dep) .. ' '\012end\012_p(\"buil"
	.ascii	"d \" .. file_out .. ': ' .. cmdset[4] .. ' ' .. fil"
	.ascii	"e_in .. ' | ' .. deps .. prebuildsuffix)\012_p(\"\""
	.ascii	")\012end\012end\012end\012function cpp.dependencyRu"
	.ascii	"les(prj, cfg)\012local extra_deps = {}\012local ord"
	.ascii	"er_deps = {}\012local extra_flags = {}\012for _, de"
	.ascii	"pendency in ipairs(prj.dependency or {}) do\012for "
	.ascii	"_, dep in ipairs(dependency or {}) do\012local objf"
	.ascii	"ilename = cpp.obj"
	.ascii	"ectname(cfg, path.getrelative(prj.location, dep[1])"
	.ascii	")\012local dependency = path.getrelative(cfg.locati"
	.ascii	"on, dep[2])\012if extra_deps[objfilename] == nil th"
	.ascii	"en\012extra_deps[objfilename] = {}\012end\012table."
	.ascii	"insert(extra_deps[objfilename], dependency)\012end\012"
	.ascii	"end\012local pchfilename = cfg.pchheader_full and c"
	.ascii	"pp.pchname(cfg, cfg.pchheader_full) or ''\012for _,"
	.ascii	" file in ipairs(cfg.files) do\012local objfilename "
	.ascii	"= file == cfg.pchheader and cpp.pchname(cfg, file) "
	.ascii	"or cpp.objectname(cfg, file)\012if path.issourcefil"
	.ascii	"e(file) or file == cfg.pchheader then\012if #cfg.pr"
	.ascii	"ebuildcommands > 0 then\012if order_deps[objfilenam"
	.ascii	"e] == nil then\012order_deps[objfilename] = {}\012e"
	.ascii	"nd\012table.insert(order_deps[objfilename], '__preb"
	.ascii	"uildcommands_' .. premake.esc(prj.name))\012end\012"
	.ascii	"end\012if path.issourcefile(file) then\012if cfg.pc"
	.ascii	"hheader_full and not cfg.flags.NoPCH then\012local "
	.ascii	"nopch = table.icontains(prj.nopch, file)\012if not "
	.ascii	"nopch then\012local suffix = path.isobjcfile(file) "
	.ascii	"and '_objc' or ''\012if extra_deps[objfilename] == "
	.ascii	"nil then\012extra_deps[objfilename] = {}\012end\012"
	.ascii	"table.insert(extra_deps[objfilename], pchfilename ."
	.ascii	". suffix .. \".gch\")\012if extra_flags[objfilename"
	.ascii	"] == nil then\012extra_flags[objfilename] = {}\012e"
	.ascii	"nd\012table.insert(extra_flags[objfilename], '-incl"
	.ascii	"ude ' .. pchfilename .. suffix)\012end\012end\012en"
	.ascii	"d\012end\012cfg.extra_deps = extra_deps\012cfg.orde"
	.ascii	"r_deps = order_deps\012cfg.extra_flags = extra_flag"
	.ascii	"s\012end\012function cpp.objectname(cfg, file)\012r"
	.ascii	"eturn path.join(cfg.objectsdir, path.trimdots(path."
	.ascii	"removeext(file)) .. \".o\")\012end\012function cpp."
	.ascii	"pchname(cfg, file)\012return path.join(cfg.objectsd"
	.ascii	"ir, path.trimdots(file))\012end\012function cpp.fil"
	.ascii	"e_rules(prj,cfg, flags)\012_p(\"# build files\")\012"
	.ascii	"for _, file in ipairs(cfg.files) do\012_p(\"# FILE:"
	.ascii	" \" .. file)\012if cfg.pchheader_full == file then\012"
	.ascii	"local pchfilename = cpp.pchname(cfg, file)\012local"
	.ascii	" extra_deps = #cfg.extra_deps and '| ' .. table.con"
	.ascii	"cat(cfg.extra_deps[pchfilename] or {}, ' ') or ''\012"
	.ascii	"local order_deps = #cfg.order_deps and '|| ' .. tab"
	.ascii	"le.concat(cfg.order_deps[pchfilename] or {}, ' ') o"
	.ascii	"r ''\012local extra_flags = #cfg.extra_flags and ' "
	.ascii	"' .. table.concat(c"
	.ascii	"fg.extra_flags[pchfilename] or {}, ' ') or ''\012_p"
	.ascii	"(\"build \" .. pchfilename .. \".gch : cxx \" .. fi"
	.ascii	"le .. extra_deps .. order_deps)\012_p(1, \"flags   "
	.ascii	" = \" .. flags['cxxflags'] .. extra_flags .. iif(pr"
	.ascii	"j.language == \"C\", \"-x c-header\", \"-x c++-head"
	.ascii	"er\"))\012_p(1, \"includes = \" .. flags.includes)\012"
	.ascii	"_p(1, \"defines  = \" .. flags.defines)\012_p(\"bui"
	.ascii	"ld \" .. pchfilename .. \"_objc.gch : cxx \" .. fil"
	.ascii	"e .. extra_deps .. order_deps)\012_p(1, \"flags    "
	.ascii	"= \" .. flags['objcflags'] .. extra_flags .. iif(pr"
	.ascii	"j.language == \"C\", \"-x objective-c-header\", \"-"
	.ascii	"x objective-c++-header\"))\012_p(1, \"includes = \""
	.ascii	" .. flags.includes)\012_p(1, \"defines  = \" .. fla"
	.ascii	"gs.defines)\012elseif path.issourcefile(file) then\012"
	.ascii	"local objfilename = cpp.objectname(cfg, file)\012lo"
	.ascii	"cal extra_deps = #cfg.extra_deps and '| ' .. table."
	.ascii	"concat(cfg.extra_deps[objfilename] or {}, ' ') or '"
	.ascii	"'\012local order_deps = #cfg.order_deps and '|| ' ."
	.ascii	". table.concat(cfg.order_deps[objfilename] or {}, '"
	.ascii	" ') or ''\012local extra_flags = #cfg.extra_flags a"
	.ascii	"nd ' ' .. table.concat(cfg.extra_flags[objfilename]"
	.ascii	" or {}, ' ') or ''\012local cflags = \"cflags\"\012"
	.ascii	"if path.isobjcfile(file) then\012_p(\"build \" .. o"
	.ascii	"bjfilename .. \": cxx \" .. file .. extra_deps .. o"
	.ascii	"rder_deps)\012cflags = \"objcflags\"\012elseif path"
	.ascii	".isasmfile(file) then\012_p(\"build \" .. objfilena"
	.ascii	"me .. \": cc \" .. file .. extra_deps .. order_deps"
	.ascii	")\012cflags = \"asmflags\"\012elseif path.iscfile(f"
	.ascii	"ile) and not cfg.options.ForceCPP then\012_p(\"buil"
	.ascii	"d \" .. objfilename .. \": cc \" .. file .. extra_d"
	.ascii	"eps .. order_deps)\012else\012_p(\"build \" .. objf"
	.ascii	"ilename .. \": cxx \" .. file .. extra_deps .. orde"
	.ascii	"r_deps)\012cflags = \"cxxflags\"\012end\012_p(1, \""
	.ascii	"flags    = \" .. flags[cflags] .. extra_flags)\012_"
	.ascii	"p(1, \"includes = \" .. flags.includes)\012_p(1, \""
	.ascii	"defines  = \" .. flags.defines)\012elseif path.isre"
	.ascii	"sourcefile(file) then\012end\012end\012_p(\"\")\012"
	.ascii	"end\012function cpp.linker(prj, cfg, objfiles, tool"
	.ascii	")\012local all_ldflags    = ninja.list(table.join(t"
	.ascii	"ool.getlibdirflags(cfg), tool.getldflags(cfg), cfg."
	.ascii	"linkoptions))\012local prebuildsuffix = #cfg.prebui"
	.ascii	"ldcommands > 0 and \"||__prebuildcommands\" or \"\""
	.ascii	"\012local libs           = {}\012loca"
	.ascii	"l walibs         = {}\012local lddeps         = {}\012"
	.ascii	"if #cfg.wholearchive > 0 then\012for _, linkcfg in "
	.ascii	"ipairs(premake.getlinks(cfg, \"siblings\", \"object"
	.ascii	"\")) do\012local linkpath = path.rebase(linkcfg.lin"
	.ascii	"ktarget.fullpath, linkcfg.location, cfg.location)\012"
	.ascii	"table.insert(lddeps, linkpath)\012if table.icontain"
	.ascii	"s(cfg.wholearchive, linkcfg.project.name) then\012t"
	.ascii	"able.insert(walibs, table.concat(tool.wholearchive("
	.ascii	"linkpath), ' '))\012else\012table.insert(libs, link"
	.ascii	"path)\012end\012end\012else\012lddeps = premake.get"
	.ascii	"links(cfg, \"siblings\", \"fullpath\")\012libs   = "
	.ascii	"lddeps\012end\012lddeps               = ninja.list("
	.ascii	"lddeps)\012libs                 = ninja.list(libs) "
	.ascii	".. \" \" .. ninja.list(tool.getlinkflags(cfg))\012w"
	.ascii	"alibs               = ninja.list(walibs)\012local f"
	.ascii	"unction writevars()\012_p(1, \"all_ldflags     = \""
	.ascii	" .. all_ldflags)\012_p(1, \"libs            = \" .."
	.ascii	" libs)\012_p(1, \"walibs          = \" .. walibs)\012"
	.ascii	"_p(1, \"all_outputfiles = \" .. table.concat(objfil"
	.ascii	"es, \" \"))\012if #cfg.prelinkcommands > 0 then\012"
	.ascii	"_p(1, 'pre_link        = echo Running pre-link comm"
	.ascii	"ands && ' .. table.implode(cfg.prelinkcommands, \"\""
	.ascii	", \"\", \" && \") .. \" && \")\012end\012if #cfg.po"
	.ascii	"stbuildcommands > 0 then\012_p(1, 'post_build      "
	.ascii	"= && echo Running post-build commands && ' .. table"
	.ascii	".implode(cfg.postbuildcommands, \"\", \"\", \" && \""
	.ascii	"))\012end\012end\012if cfg.kind == \"StaticLib\" th"
	.ascii	"en\012local ar_flags = ninja.list(tool.getarchivefl"
	.ascii	"ags(cfg, cfg, false))\012_p(\"# link static lib\")\012"
	.ascii	"_p(\"build \" .. cfg:getoutputfilename() .. \": ar "
	.ascii	"\" .. table.concat(objfiles, \" \") .. \" | \" .. l"
	.ascii	"ddeps .. prebuildsuffix)\012_p(1, \"flags = \" .. n"
	.ascii	"inja.list(tool.getarchiveflags(cfg, cfg, false)))\012"
	.ascii	"_p(1, \"all_outputfiles = \" .. table.concat(objfil"
	.ascii	"es, \" \"))\012elseif cfg.kind == \"SharedLib\" or "
	.ascii	"cfg.kind == \"Bundle\" then\012local output = cfg:g"
	.ascii	"etoutputfilename()\012_p(\"# link shared lib\")\012"
	.ascii	"_p(\"build \" .. output .. \": link \" .. table.con"
	.ascii	"cat(objfiles, \" \") .. \" | \" .. lddeps .. prebui"
	.ascii	"ldsuffix)\012writevars()\012elseif (cfg.kind == \"C"
	.ascii	"onsoleApp\") or (cfg.kind == \"WindowedApp\") then\012"
	.ascii	"_p(\"# link executable\")\012_p(\"build \" .. cfg:g"
	.ascii	"etoutputfilename() .. \": link \" .. table.concat"
	.ascii	"(objfiles, \" \") .. \" | \" .. lddeps .. prebuilds"
	.ascii	"uffix)\012writevars()\012else\012p.error(\"ninja ac"
	.ascii	"tion doesn't support this kind of target \" .. cfg."
	.ascii	"kind)\012end\012end\012\000"
	.align	2
.LC64:
	.ascii	"local ninja = premake.ninja\012local swift = {}\012"
	.ascii	"local p     = premake\012function ninja.generate_sw"
	.ascii	"ift(prj)\012local pxy = ninja.get_proxy(\"prj\", pr"
	.ascii	"j)\012local tool = premake.gettool(prj)\012local pl"
	.ascii	"atforms = premake.filterplatforms(prj.solution, too"
	.ascii	"l.platforms, \"Native\")\012for _, platform in ipai"
	.ascii	"rs(platforms) do\012for cfg in p.eachconfig(pxy, pl"
	.ascii	"atform) do\012p.generate(cfg, cfg:getprojectfilenam"
	.ascii	"e(), function() swift.generate_config(prj, cfg) end"
	.ascii	")\012end\012end\012end\012function swift.generate_c"
	.ascii	"onfig(prj, cfg)\012local tool = premake.gettool(prj"
	.ascii	")\012local flags = {\012swiftcflags    = ninja.list"
	.ascii	"(tool.getswiftcflags(cfg)),\012swiftlinkflags = nin"
	.ascii	"ja.list(tool.getswiftlinkflags(cfg)),\012}\012_p(\""
	.ascii	"# Swift project build file\")\012_p(\"# generated w"
	.ascii	"ith GENie ninja\")\012_p(\"\")\012_p(\"ninja_requir"
	.ascii	"ed_version = 1.7\")\012_p(\"\")\012_p(\"out_dir = %"
	.ascii	"s\", cfg.buildtarget.directory)\012_p(\"obj_dir = %"
	.ascii	"s\", path.join(cfg.objectsdir, prj.name .. \".build"
	.ascii	"\"))\012_p(\"target = $out_dir/%s\", cfg.buildtarge"
	.ascii	"t.name)\012_p(\"module_name = %s\", prj.name)\012_p"
	.ascii	"(\"module_maps = %s\", ninja.list(tool.getmodulemap"
	.ascii	"s(cfg)))\012_p(\"swiftc_flags = %s\", flags.swiftcf"
	.ascii	"lags)\012_p(\"swiftlink_flags = %s\", flags.swiftli"
	.ascii	"nkflags)\012_p(\"ar_flags = %s\", ninja.list(tool.g"
	.ascii	"etarchiveflags(cfg, cfg, false)))\012_p(\"ld_flags "
	.ascii	"= %s\", ninja.list(tool.getldflags(cfg)))\012if cfg"
	.ascii	".flags.Symbols then\012_p(\"symbols = $target.dSYM\""
	.ascii	")\012symbols_command = string.format(\"&& %s $targe"
	.ascii	"t -o $symbols\", tool.dsymutil)\012else\012_p(\"sym"
	.ascii	"bols = \")\012symbols_command = \"\"\012end\012loca"
	.ascii	"l sdk = tool.get_sdk_path(cfg)\012if sdk then\012_p"
	.ascii	"(\"toolchain_path = %s\", tool.get_toolchain_path(c"
	.ascii	"fg))\012_p(\"sdk_path = %s\", sdk)\012_p(\"platform"
	.ascii	"_path = %s\", tool.get_sdk_platform_path(cfg))\012_"
	.ascii	"p(\"sdk = -sdk $sdk_path\")\012else\012_p(\"sdk_pat"
	.ascii	"h =\")\012_p(\"sdk =\")\012end\012_p(\"\")\012_p(\""
	.ascii	"# core rules for %s\", cfg.name)\012_p(\"rule swift"
	.ascii	"c\")\012_p(1, \"command = %s -frontend -c $in -enab"
	.ascii	"le-objc-interop $sdk -I $out_dir $swiftc_flags -mod"
	.ascii	"ule-cache-path $out_dir/ModuleCache -D SWIFT_PACKAG"
	.ascii	"E $module_maps -emit-module-doc-path $out_dir/$modu"
	.ascii	"le_name.swiftdoc -module-name $module_name -emit-mo"
	.ascii	"dule-path $out_dir/$module"
	.ascii	"_name.swiftmodule -num-threads 8 $obj_files\", tool"
	.ascii	".swift)\012_p(1, \"description = compile $out\")\012"
	.ascii	"_p(\"\")\012_p(\"rule swiftlink\")\012_p(1, \"comma"
	.ascii	"nd = %s $sdk -L $out_dir -o $out $swiftlink_flags $"
	.ascii	"ld_flags $in %s\", tool.swiftc, symbols_command)\012"
	.ascii	"_p(1, \"description = create executable\")\012_p(\""
	.ascii	"\")\012_p(\"rule ar\")\012_p(1, \"command = %s cr $"
	.ascii	"ar_flags $out $in %s\", tool.ar, (os.is(\"MacOSX\")"
	.ascii	" and \" 2>&1 > /dev/null | sed -e '/.o) has no symb"
	.ascii	"ols$$/d'\" or \"\"))\012_p(1, \"description = ar $o"
	.ascii	"ut\")\012_p(\"\")\012local objfiles = {}\012for _, "
	.ascii	"file in ipairs(cfg.files) do\012if path.isswiftfile"
	.ascii	"(file) then\012table.insert(objfiles, swift.objectn"
	.ascii	"ame(cfg, file))\012end\012end\012swift.file_rules(c"
	.ascii	"fg, objfiles)\012_p(\"\")\012swift.linker(prj, cfg,"
	.ascii	" objfiles, tool)\012end\012function swift.objectnam"
	.ascii	"e(cfg, file)\012return path.join(\"$obj_dir\", path"
	.ascii	".getname(file)..\".o\")\012end\012function swift.fi"
	.ascii	"le_rules(cfg, objfiles)\012_p(\"build %s: swiftc %s"
	.ascii	"\", ninja.list(objfiles), ninja.list(cfg.files))\012"
	.ascii	"_p(1, \"obj_files = %s\", ninja.arglist(\"-o\", obj"
	.ascii	"files))\012end\012function swift.linker(prj, cfg, o"
	.ascii	"bjfiles, tool)\012local lddeps = ninja.list(premake"
	.ascii	".getlinks(cfg, \"siblings\", \"fullpath\")) \012if "
	.ascii	"cfg.kind == \"StaticLib\" then\012_p(\"build $targe"
	.ascii	"t: ar %s | %s \", ninja.list(objfiles), lddeps)\012"
	.ascii	"else\012local lddeps = ninja.list(premake.getlinks("
	.ascii	"cfg, \"siblings\", \"fullpath\"))\012_p(\"build $ta"
	.ascii	"rget: swiftlink %s | %s\", ninja.list(objfiles), ld"
	.ascii	"deps)\012end\012end\012\000"
	.align	2
.LC65:
	.ascii	"local ninja = premake.ninja\012local swift = { }\012"
	.ascii	"local p     = premake\012function ninja.generate_sw"
	.ascii	"ift_incremental(prj)\012local pxy = ninja.get_proxy"
	.ascii	"(\"prj\", prj)\012local tool = premake.gettool(prj)"
	.ascii	"\012local platforms = premake.filterplatforms(prj.s"
	.ascii	"olution, tool.platforms, \"Native\")\012for _, plat"
	.ascii	"form in ipairs(platforms) do\012for cfg in p.eachco"
	.ascii	"nfig(pxy, platform) do\012p.generate(cfg, cfg:getpr"
	.ascii	"ojectfilename(), function() swift.generate_config(p"
	.ascii	"rj, cfg) end)\012end\012end\012end\012function swif"
	.ascii	"t.generate_config(prj, cfg)\012local tool = premake"
	.ascii	".gettool(prj)\012local flags = {\012swiftcflags = n"
	.ascii	"inja.list(table.join(tool.getswiftcflags(cfg), cfg."
	.ascii	"buildoptions_swiftc)),\012}\012_p(\"# Swift project"
	.ascii	" build file\")\012_p(\"# generated with GENie ninja"
	.ascii	"\")\012_p(\"\")\012_p(\"ninja_required_version = 1."
	.ascii	"7\")\012_p(\"\")\012_p(\"out_dir = %s\", cfg.buildt"
	.ascii	"arget.directory)\012_p(\"obj_dir = %s\", path.join("
	.ascii	"cfg.objectsdir, prj.name .. \".build\"))\012_p(\"mo"
	.ascii	"dule_name = %s\", prj.name)\012_p(\"module_maps = %"
	.ascii	"s\", ninja.list(tool.getmodulemaps(cfg)))\012_p(\"s"
	.ascii	"wiftc_flags = %s\", flags.swiftcflags)\012_p(\"swif"
	.ascii	"tlink_flags = %s\", flags.swiftlinkflags)\012_p(\"a"
	.ascii	"r_flags = %s\", ninja.list(tool.getarchiveflags(cfg"
	.ascii	", cfg, false)))\012local sdk = tool.get_sdk_path(cf"
	.ascii	"g)\012if sdk then\012_p(\"toolchain_path = %s\", to"
	.ascii	"ol.get_toolchain_path(cfg))\012_p(\"sdk_path = %s\""
	.ascii	", sdk)\012_p(\"platform_path = %s\", tool.get_sdk_p"
	.ascii	"latform_path(cfg))\012_p(\"sdk = -sdk $sdk_path\")\012"
	.ascii	"_p(\"ld_baseflags = -force_load $toolchain_path/usr"
	.ascii	"/lib/arc/libarclite_macosx.a -L $out_dir -F $platfo"
	.ascii	"rm_path/Developer/Library/Frameworks -syslibroot $s"
	.ascii	"dk_path -lobjc -lSystem -L $toolchain_path/usr/lib/"
	.ascii	"swift/macosx -rpath $toolchain_path/usr/lib/swift/m"
	.ascii	"acosx -macosx_version_min 10.10.0 -no_objc_category"
	.ascii	"_merging\")\012else\012_p(\"sdk_path =\")\012_p(\"s"
	.ascii	"dk =\")\012_p(\"ld_baseflags =\")\012end\012_p(\"\""
	.ascii	")\012_p(\"# core rules for %s\", cfg.name)\012_p(\""
	.ascii	"rule swiftc\")\012_p(1, \"command = %s -frontend -c"
	.ascii	" -primary-file $in $files $target -enable-objc-inte"
	.ascii	"rop $sdk -I $out_dir -enable-testing -module-cache-"
	.ascii	"path $out_dir/ModuleCache -D SWIFT_PACKAGE $module_"
	.ascii	"maps -emit-module-doc-path $out_doc_name s"
	.ascii	"wiftc_flags -module-name $module_name -emit-module-"
	.ascii	"path $out_module_name -emit-dependencies-path $out."
	.ascii	"d -emit-reference-dependencies-path $obj_dir/$basen"
	.ascii	"ame.swiftdeps -o $out\", tool.swiftc)\012_p(1, \"de"
	.ascii	"scription = compile $out\")\012_p(\"\")\012_p(\"rul"
	.ascii	"e swiftm\")\012_p(1, \"command = %s -frontend -emit"
	.ascii	"-module $in $parse_as_library swiftc_flags $target "
	.ascii	"-enable-objc-interop $sdk -I $out_dir -F $platform_"
	.ascii	"path/Developer/Library/Frameworks -enable-testing -"
	.ascii	"module-cache-path $out_dir/ModuleCache -D SWIFT_PAC"
	.ascii	"KAGE $module_maps -emit-module-doc-path $out_dir/$m"
	.ascii	"odule_name.swiftdoc -module-name $module_name -o $o"
	.ascii	"ut\", tool.swift)\012_p(1, \"description = generate"
	.ascii	" module\")\012_p(\"\")\012_p(\"rule swiftlink\")\012"
	.ascii	"_p(1, \"command = %s $target $sdk $swiftlink_flags "
	.ascii	"-L $out_dir -o $out_dir/$module_name -F $platform_p"
	.ascii	"ath/Developer/Library/Frameworks $in\", tool.swiftc"
	.ascii	")\012_p(1, \"description = linking $target\")\012_p"
	.ascii	"(\"\")\012_p(\"rule ar\")\012_p(1, \"command = %s c"
	.ascii	"r $ar_flags $out $in $libs %s\", tool.ar, (os.is(\""
	.ascii	"MacOSX\") and \" 2>&1 > /dev/null | sed -e '/.o) ha"
	.ascii	"s no symbols$$/d'\" or \"\"))\012_p(1, \"descriptio"
	.ascii	"n = ar $out\")\012_p(\"\")\012_p(\"rule link\")\012"
	.ascii	"_p(\"  command = %s $in $ld_baseflags $all_ldflags "
	.ascii	"$libs -o $out\", tool.ld)\012_p(\"  description = l"
	.ascii	"ink $out\")\012_p(\"\")\012swift.file_rules(cfg, fl"
	.ascii	"ags)\012local objfiles = {}\012local modfiles = {}\012"
	.ascii	"local docfiles = {}\012for _, file in ipairs(cfg.fi"
	.ascii	"les) do\012if path.issourcefile(file) then\012table"
	.ascii	".insert(objfiles, swift.objectname(cfg, file))\012t"
	.ascii	"able.insert(modfiles, swift.modulename(cfg, file))\012"
	.ascii	"table.insert(docfiles, swift.docname(cfg, file))\012"
	.ascii	"end\012end\012_p(\"\")\012swift.linker(prj, cfg, {o"
	.ascii	"bjfiles, modfiles, docfiles}, tool, flags)\012_p(\""
	.ascii	"\")\012end\012function swift.objectname(cfg, file)\012"
	.ascii	"return path.join(\"$obj_dir\", path.getname(file).."
	.ascii	"\".o\")\012end\012function swift.modulename(cfg, fi"
	.ascii	"le)\012return path.join(\"$obj_dir\", path.getname("
	.ascii	"file)..\".o.swiftmodule\")\012end\012function swift"
	.ascii	".docname(cfg, file)\012return path.join(\"$obj_dir\""
	.ascii	", path.getname(file)..\".o.swiftdoc\")\012end\012fu"
	.ascii	"nction swift.file_rules(cfg, flags)\012_p(\"# build"
	.ascii	" files\")\012local sfiles = Set(cfg.files)"
	.ascii	"\012for _, file in ipairs(cfg.files) do\012if path."
	.ascii	"issourcefile(file) then\012if path.isswiftfile(file"
	.ascii	") then\012local objn = swift.objectname(cfg, file)\012"
	.ascii	"local modn = swift.modulename(cfg, file)\012local d"
	.ascii	"ocn = swift.docname(cfg, file)\012_p(\"build %s | %"
	.ascii	"s %s: swiftc %s\", objn, modn, docn, file)\012_p(1,"
	.ascii	" \"out_module_name = %s\", modn)\012_p(1, \"out_doc"
	.ascii	"_name = %s\", docn)\012_p(1, \"files = \".. ninja.l"
	.ascii	"ist(sfiles - {file}))\012build_flags = \"swiftcflag"
	.ascii	"s\"\012end\012_p(1, \"flags    = \" .. flags[build_"
	.ascii	"flags])\012elseif path.isresourcefile(file) then\012"
	.ascii	"end\012end\012_p(\"\")\012end\012function swift.lin"
	.ascii	"ker(prj, cfg, depfiles, tool)\012local all_ldflags "
	.ascii	"= ninja.list(table.join(tool.getlibdirflags(cfg), t"
	.ascii	"ool.getldflags(cfg), cfg.linkoptions))\012local ldd"
	.ascii	"eps      = ninja.list(premake.getlinks(cfg, \"sibli"
	.ascii	"ngs\", \"fullpath\")) \012local libs        = lddep"
	.ascii	"s .. \" \" .. ninja.list(tool.getlinkflags(cfg))\012"
	.ascii	"local function writevars()\012_p(1, \"all_ldflags ="
	.ascii	" \" .. all_ldflags)\012_p(1, \"libs        = \" .. "
	.ascii	"libs)\012end\012local objfiles, modfiles, docfiles "
	.ascii	"= table.unpack(depfiles)\012_p(\"build $out_dir/$mo"
	.ascii	"dule_name.swiftmodule | $out_dir/$module_name.swift"
	.ascii	"doc: swiftm %s | %s\", table.concat(modfiles, \" \""
	.ascii	"), table.concat(docfiles, \" \"))\012_p(\"\")\012lo"
	.ascii	"cal output = cfg:getoutputfilename()\012if cfg.kind"
	.ascii	" == \"StaticLib\" then\012local ar_flags = ninja.li"
	.ascii	"st(tool.getarchiveflags(cfg, cfg, false))\012_p(\"b"
	.ascii	"uild %s: ar %s | %s $out_dir/$module_name.swiftmodu"
	.ascii	"le $out_dir/$module_name.swiftdoc\", output, table."
	.ascii	"concat(objfiles, \" \"), lddeps)\012_p(1, \"flags ="
	.ascii	" %s\", ninja.list(tool.getarchiveflags(cfg, cfg, fa"
	.ascii	"lse)))\012elseif cfg.kind == \"SharedLib\" then\012"
	.ascii	"_p(\"build %s : swiftlink %s | %s $out_dir/$module_"
	.ascii	"name.swiftmodule $out_dir/$module_name.swiftdoc\", "
	.ascii	"output, table.concat(objfiles, \" \"), libs)\012wri"
	.ascii	"tevars()\012elseif (cfg.kind == \"ConsoleApp\") or "
	.ascii	"(cfg.kind == \"WindowedApp\") then\012_p(\"build %s"
	.ascii	": swiftlink %s | %s $out_dir/$module_name.swiftmodu"
	.ascii	"le $out_dir/$module_name.swiftdoc\", output, table."
	.ascii	"concat(objfiles, \" \"), lddeps)\012else\012p.error"
	.ascii	"(\"ninja action doesn't support this kind of target"
	.ascii	" \" .. cfg.kind)\012end\012end\012\000"
	.align	2
.LC66:
	.ascii	"premake.qbs = { }\012local qbs = premake.qbs\012new"
	.ascii	"action\012{\012trigger     = \"qbs\",\012shortname "
	.ascii	"  = \"qbs\",\012description = \"Generate QBS build "
	.ascii	"files\",\012module      = \"qbs\",\012valid_kinds  "
	.ascii	"   = {\"ConsoleApp\", \"WindowedApp\", \"StaticLib\""
	.ascii	", \"SharedLib\", \"Bundle\"},\012valid_languages = "
	.ascii	"{\"C\", \"C++\"},\012valid_tools     = {\012cc = { "
	.ascii	"\"gcc\", \"msc\" },\012},\012onsolution = function("
	.ascii	"sln)\012io.eol    = \"\\n\"\012io.indent = \"\\t\"\012"
	.ascii	"io.escaper(qbs.esc)\012premake.generate(sln, sln.na"
	.ascii	"me .. \".creator.qbs\",      qbs.generate_solution)"
	.ascii	"\012io.indent = \" \"\012premake.generate(sln, sln."
	.ascii	"name .. \".creator.qbs.user\", qbs.generate_user)\012"
	.ascii	"end,\012onproject = function(prj)\012io.eol    = \""
	.ascii	"\\n\"\012io.indent = \"\\t\"\012io.escaper(qbs.esc)"
	.ascii	"\012premake.generate(prj, prj.name .. \".qbs\", qbs"
	.ascii	".generate_project)\012end,\012}\012\000"
	.align	2
.LC67:
	.ascii	"function premake.qbs.list(indent, name, table)\012i"
	.ascii	"f #table > 0 then\012_p(indent, '%s: [', name)\012f"
	.ascii	"or _, item in ipairs(table) do\012_p(indent+1, '\"%"
	.ascii	"s\",', item:gsub('\"', '\\\\\"'))\012end\012_p(inde"
	.ascii	"nt+1, ']')\012end\012end\000"
	.align	2
.LC68:
	.ascii	"local qbs = premake.qbs\012function qbs.generate_so"
	.ascii	"lution(sln)\012_p('/*')\012_p(' * QBS project file "
	.ascii	"autogenerated by GENie')\012_p(' * https://github.c"
	.ascii	"om/bkaradzic/GENie')\012_p(' */')\012_p('')\012_p('"
	.ascii	"import qbs')\012_p('')\012_p(0, 'Project {')\012_p("
	.ascii	"1, 'references: [')\012for prj in premake.solution."
	.ascii	"eachproject(sln) do\012_p(2, '\"' .. prj.name .. '."
	.ascii	"qbs\",')\012end\012_p(1, ']')\012_p(0, '}')\012end\012"
	.ascii	"local function is_app(kind)\012if kind == \"Console"
	.ascii	"App\" or kind == \"WindowedApp\" then\012return tru"
	.ascii	"e\012end\012return false\012end\012function qbs.gen"
	.ascii	"erate_user(sln)\012_p(0, '<?xml version=\"1.0\" enc"
	.ascii	"oding=\"UTF-8\"?>')\012_p(0, '<!DOCTYPE QtCreatorPr"
	.ascii	"oject>')\012_p(0, '<!-- QBS project file autogenera"
	.ascii	"ted by GENie https://github.com/bkaradzic/GENie -->"
	.ascii	"')\012_p(0, '<qtcreator>')\012local startProject = "
	.ascii	"0\012local idx = 0\012for prj in premake.solution.e"
	.ascii	"achproject(sln) do\012if is_app(prj.kind) then\012i"
	.ascii	"f sln.startproject == prj.name then\012startProject"
	.ascii	" = idx\012end\012idx = idx + 1\012end\012end\012_p("
	.ascii	"1, '<data>')\012_p(2, '<variable>ProjectExplorer.Pr"
	.ascii	"oject.Target.0</variable>')\012_p(2, '<valuemap typ"
	.ascii	"e=\"QVariantMap\">')\012_p(3, '<value type=\"QStrin"
	.ascii	"g\" key=\"ProjectExplorer.ProjectConfiguration.Defa"
	.ascii	"ultDisplayName\">Desktop</value>')\012_p(3, '<value"
	.ascii	" type=\"QString\" key=\"ProjectExplorer.ProjectConf"
	.ascii	"iguration.DisplayName\">Desktop</value>')\012local "
	.ascii	"qbsguid    = \"\"\012local qbsprofile = \"\"\012loc"
	.ascii	"al qtcreatordir = \"\"\012if _OS == \"windows\" the"
	.ascii	"n\012qtcreatordir = path.join(os.getenv(\"APPDATA\""
	.ascii	"), \"QtProject/qtcreator\")\012else\012qtcreatordir"
	.ascii	" = path.join(os.getenv(\"HOME\"), \".config/QtProje"
	.ascii	"ct/qtcreator\")\012end\012local file = io.open(path"
	.ascii	".join(qtcreatordir, \"qbs.conf\"))\012if file == ni"
	.ascii	"l then\012file = io.open(path.join(qtcreatordir, \""
	.ascii	"qbs/1.6.0/qbs.conf\"))\012end\012if file ~= nil the"
	.ascii	"n\012for line in file:lines() do\012if line == \"[o"
	.ascii	"rg]\" then\012local str = 'qt-project\\\\qbs\\\\pre"
	.ascii	"ferences\\\\qtcreator\\\\kit\\\\%'\012local index ="
	.ascii	" string.len(str)+1\012for line in file:lines() do\012"
	.ascii	"if index == string.find(line, '7B', index) then\012"
	.ascii	"line = string.sub(line, index+2)\012qbsguid    = st"
	.ascii	"ring.sub(line, 1, 36)\012qbsprofile = string.sub(li"
	.ascii	"ne, 41)\012break\012end\012end\012else\012local str"
	.ascii	" = '\\t<key"
	.ascii	">org.qt-project.qbs.preferences.qtcreator.kit.'\012"
	.ascii	"local index = string.len(str)+1\012for line in file"
	.ascii	":lines() do\012if qbsguid == \"\" and index == stri"
	.ascii	"ng.find(line, '{', index) then\012line = string.sub"
	.ascii	"(line, index+1)\012qbsguid = string.sub(line, 1, 36"
	.ascii	")\012elseif qbsguid ~= \"\" then\012qbsprofile = st"
	.ascii	"ring.sub(line, 10, 29)\012break\012end\012end\012en"
	.ascii	"d\012break\012end\012io.close(file)\012end\012_p(3,"
	.ascii	" '<value type=\"QString\" key=\"ProjectExplorer.Pro"
	.ascii	"jectConfiguration.Id\">{%s}</value>', qbsguid)\012_"
	.ascii	"p(3, '<value type=\"int\" key=\"ProjectExplorer.Tar"
	.ascii	"get.ActiveBuildConfiguration\">0</value>')\012_p(3,"
	.ascii	" '<value type=\"int\" key=\"ProjectExplorer.Target."
	.ascii	"ActiveDeployConfiguration\">0</value>')\012_p(3, '<"
	.ascii	"value type=\"int\" key=\"ProjectExplorer.Target.Act"
	.ascii	"iveRunConfiguration\">%d</value>', startProject)\012"
	.ascii	"idx = 0\012for _, cfgname in ipairs(sln.configurati"
	.ascii	"ons) do\012_p(3, '<valuemap type=\"QVariantMap\" ke"
	.ascii	"y=\"ProjectExplorer.Target.BuildConfiguration.%d\">"
	.ascii	"', idx)\012_p(4, '<value type=\"QString\" key=\"Pro"
	.ascii	"jectExplorer.BuildConfiguration.BuildDirectory\">bu"
	.ascii	"ild</value>')\012_p(4, '<valuemap type=\"QVariantMa"
	.ascii	"p\" key=\"ProjectExplorer.BuildConfiguration.BuildS"
	.ascii	"tepList.0\">')\012_p(5, '<valuemap type=\"QVariantM"
	.ascii	"ap\" key=\"ProjectExplorer.BuildStepList.Step.0\">'"
	.ascii	")\012_p(6, '<value type=\"bool\" key=\"ProjectExplo"
	.ascii	"rer.BuildStep.Enabled\">true</value>')\012_p(6, '<v"
	.ascii	"alue type=\"QString\" key=\"ProjectExplorer.Project"
	.ascii	"Configuration.DefaultDisplayName\"></value>')\012_p"
	.ascii	"(6, '<value type=\"QString\" key=\"ProjectExplorer."
	.ascii	"ProjectConfiguration.DisplayName\">Qbs Build</value"
	.ascii	">')\012_p(6, '<value type=\"QString\" key=\"Project"
	.ascii	"Explorer.ProjectConfiguration.Id\">Qbs.BuildStep</v"
	.ascii	"alue>')\012_p(6, '<value type=\"bool\" key=\"Qbs.Cl"
	.ascii	"eanInstallRoot\">false</value>')\012_p(6, '<valuema"
	.ascii	"p type=\"QVariantMap\" key=\"Qbs.Configuration\">')"
	.ascii	"\012_p(7, '<value type=\"QString\" key=\"qbs.buildV"
	.ascii	"ariant\">%s</value>', cfgname:lower())\012_p(7, '<v"
	.ascii	"alue type=\"QString\" key=\"qbs.profile\">%s</value"
	.ascii	">', qbsprofile)\012_p(6, '</valuemap>')\012_p(5, '<"
	.ascii	"/valuemap>')\012_p(5, '<value type=\"int\" key=\"Pr"
	.ascii	"ojectExplorer.BuildStepList.StepsCount\">1</value>'"
	.ascii	")\012_p(5, '<value type=\"QString\" key=\"P"
	.ascii	"rojectExplorer.ProjectConfiguration.DefaultDisplayN"
	.ascii	"ame\">Build</value>')\012_p(5, '<value type=\"QStri"
	.ascii	"ng\" key=\"ProjectExplorer.ProjectConfiguration.Dis"
	.ascii	"playName\"></value>')\012_p(5, '<value type=\"QStri"
	.ascii	"ng\" key=\"ProjectExplorer.ProjectConfiguration.Id\""
	.ascii	">ProjectExplorer.BuildSteps.Build</value>')\012_p(4"
	.ascii	", '</valuemap>')\012_p(4, '<valuemap type=\"QVarian"
	.ascii	"tMap\" key=\"ProjectExplorer.BuildConfiguration.Bui"
	.ascii	"ldStepList.1\">')\012_p(5, '<valuemap type=\"QVaria"
	.ascii	"ntMap\" key=\"ProjectExplorer.BuildStepList.Step.0\""
	.ascii	">')\012_p(6, '<value type=\"bool\" key=\"ProjectExp"
	.ascii	"lorer.BuildStep.Enabled\">true</value>')\012_p(6, '"
	.ascii	"<value type=\"QString\" key=\"ProjectExplorer.Proje"
	.ascii	"ctConfiguration.DefaultDisplayName\"></value>')\012"
	.ascii	"_p(6, '<value type=\"QString\" key=\"ProjectExplore"
	.ascii	"r.ProjectConfiguration.DisplayName\">Qbs Clean</val"
	.ascii	"ue>')\012_p(6, '<value type=\"QString\" key=\"Proje"
	.ascii	"ctExplorer.ProjectConfiguration.Id\">Qbs.CleanStep<"
	.ascii	"/value>')\012_p(6, '<value type=\"bool\" key=\"Qbs."
	.ascii	"CleanAll\">true</value>')\012_p(6, '<value type=\"b"
	.ascii	"ool\" key=\"Qbs.DryKeepGoing\">false</value>')\012_"
	.ascii	"p(6, '<value type=\"bool\" key=\"Qbs.DryRun\">false"
	.ascii	"</value>')\012_p(5, '</valuemap>')\012_p(5, '<value"
	.ascii	" type=\"int\" key=\"ProjectExplorer.BuildStepList.S"
	.ascii	"tepsCount\">1</value>')\012_p(5, '<value type=\"QSt"
	.ascii	"ring\" key=\"ProjectExplorer.ProjectConfiguration.D"
	.ascii	"efaultDisplayName\">Clean</value>')\012_p(5, '<valu"
	.ascii	"e type=\"QString\" key=\"ProjectExplorer.ProjectCon"
	.ascii	"figuration.DisplayName\"></value>')\012_p(5, '<valu"
	.ascii	"e type=\"QString\" key=\"ProjectExplorer.ProjectCon"
	.ascii	"figuration.Id\">ProjectExplorer.BuildSteps.Clean</v"
	.ascii	"alue>')\012_p(4, '</valuemap>')\012_p(4, '<value ty"
	.ascii	"pe=\"int\" key=\"ProjectExplorer.BuildConfiguration"
	.ascii	".BuildStepListCount\">2</value>')\012_p(4, '<value "
	.ascii	"type=\"bool\" key=\"ProjectExplorer.BuildConfigurat"
	.ascii	"ion.ClearSystemEnvironment\">false</value>')\012_p("
	.ascii	"4, '<valuelist type=\"QVariantList\" key=\"ProjectE"
	.ascii	"xplorer.BuildConfiguration.UserEnvironmentChanges\""
	.ascii	"/>')\012_p(4, '<value type=\"QString\" key=\"Projec"
	.ascii	"tExplorer.ProjectConfiguration.DefaultDisplayName\""
	.ascii	">%s</value>', cfgname)\012_p(4, '<value type=\"QStr"
	.ascii	"ing\" key=\"ProjectExplorer.ProjectConfiguration.Di"
	.ascii	"splay"
	.ascii	"Name\"></value>')\012_p(4, '<value type=\"QString\""
	.ascii	" key=\"ProjectExplorer.ProjectConfiguration.Id\">Qb"
	.ascii	"s.QbsBuildConfiguration</value>')\012_p(3, '</value"
	.ascii	"map>')\012idx = idx + 1\012end\012_p(3, '<value typ"
	.ascii	"e=\"int\" key=\"ProjectExplorer.Target.BuildConfigu"
	.ascii	"rationCount\">%d</value>', idx)\012_p(3, '<valuemap"
	.ascii	" type=\"QVariantMap\" key=\"ProjectExplorer.Target."
	.ascii	"DeployConfiguration.0\">')\012_p(4, '<valuemap type"
	.ascii	"=\"QVariantMap\" key=\"ProjectExplorer.BuildConfigu"
	.ascii	"ration.BuildStepList.0\">')\012_p(5, '<value type=\""
	.ascii	"int\" key=\"ProjectExplorer.BuildStepList.StepsCoun"
	.ascii	"t\">0</value>')\012_p(5, '<value type=\"QString\" k"
	.ascii	"ey=\"ProjectExplorer.ProjectConfiguration.DefaultDi"
	.ascii	"splayName\">Deploy</value>')\012_p(5, '<value type="
	.ascii	"\"QString\" key=\"ProjectExplorer.ProjectConfigurat"
	.ascii	"ion.DisplayName\"></value>')\012_p(5, '<value type="
	.ascii	"\"QString\" key=\"ProjectExplorer.ProjectConfigurat"
	.ascii	"ion.Id\">ProjectExplorer.BuildSteps.Deploy</value>'"
	.ascii	")\012_p(4, '</valuemap>')\012_p(4, '<value type=\"i"
	.ascii	"nt\" key=\"ProjectExplorer.BuildConfiguration.Build"
	.ascii	"StepListCount\">1</value>')\012_p(4, '<value type=\""
	.ascii	"QString\" key=\"ProjectExplorer.ProjectConfiguratio"
	.ascii	"n.DefaultDisplayName\">Deploy locally</value>')\012"
	.ascii	"_p(4, '<value type=\"QString\" key=\"ProjectExplore"
	.ascii	"r.ProjectConfiguration.DisplayName\">Qbs Install</v"
	.ascii	"alue>')\012_p(4, '<value type=\"QString\" key=\"Pro"
	.ascii	"jectExplorer.ProjectConfiguration.Id\">Qbs.Deploy</"
	.ascii	"value>')\012_p(3, '</valuemap>')\012_p(3, '<value t"
	.ascii	"ype=\"int\" key=\"ProjectExplorer.Target.DeployConf"
	.ascii	"igurationCount\">1</value>')\012idx = 0\012for prj "
	.ascii	"in premake.solution.eachproject(sln) do\012if is_ap"
	.ascii	"p(prj.kind) then\012_p(3, '<valuemap type=\"QVarian"
	.ascii	"tMap\" key=\"ProjectExplorer.Target.RunConfiguratio"
	.ascii	"n.%d\">', idx)\012if idx == startProject then\012_p"
	.ascii	"(4, '<value type=\"int\" key=\"PE.EnvironmentAspect"
	.ascii	".Base\">2</value>')\012else\012_p(4, '<value type=\""
	.ascii	"int\" key=\"PE.EnvironmentAspect.Base\">-1</value>'"
	.ascii	")\012end\012_p(4, '<valuelist type=\"QVariantList\""
	.ascii	" key=\"PE.EnvironmentAspect.Changes\"/>')\012_p(4, "
	.ascii	"'<value type=\"QString\" key=\"ProjectExplorer.Proj"
	.ascii	"ectConfiguration.DefaultDisplayName\">%s</value>', "
	.ascii	"prj.name)\012_p(4, '<value type=\"QString\" key=\"P"
	.ascii	"rojectExplorer.Projec"
	.ascii	"tConfiguration.DisplayName\"></value>')\012_p(4, '<"
	.ascii	"value type=\"QString\" key=\"ProjectExplorer.Projec"
	.ascii	"tConfiguration.Id\">Qbs.RunConfiguration:%s.%s---Qb"
	.ascii	"s.RC.NameSeparator---%s</value>', prj.name, qbsprof"
	.ascii	"ile, prj.name)\012_p(4, '<value type=\"QString\" ke"
	.ascii	"y=\"Qbs.RunConfiguration.CommandLineArguments\"></v"
	.ascii	"alue>')\012local cfg = premake.getconfig(prj, nil, "
	.ascii	"nil)\012if cfg.debugdir ~= nil then\012_p(4, '<valu"
	.ascii	"e type=\"QString\" key=\"Qbs.RunConfiguration.Worki"
	.ascii	"ngDirectory\">%s</value>', cfg.debugdir)\012else\012"
	.ascii	"_p(4, '<value type=\"QString\" key=\"Qbs.RunConfigu"
	.ascii	"ration.WorkingDirectory\"></value>')\012end\012_p(3"
	.ascii	", '</valuemap>')\012idx = idx + 1\012end\012end\012"
	.ascii	"_p(3, '<value type=\"int\" key=\"ProjectExplorer.Ta"
	.ascii	"rget.RunConfigurationCount\">%d</value>', idx)\012_"
	.ascii	"p(2, '</valuemap>')\012_p(1, '</data>')\012_p(1, '<"
	.ascii	"data>')\012_p(2, '<variable>ProjectExplorer.Project"
	.ascii	".TargetCount</variable>')\012_p(2, '<value type=\"i"
	.ascii	"nt\">1</value>')\012_p(1, '</data>')\012_p(1, '<dat"
	.ascii	"a>')\012_p(2, '<variable>Version</variable>')\012_p"
	.ascii	"(2, '<value type=\"int\">18</value>')\012_p(1, '</d"
	.ascii	"ata>')\012_p(0, '</qtcreator>')\012end\012\000"
	.align	2
.LC69:
	.ascii	"local qbs = premake.qbs\012local function is_exclud"
	.ascii	"ed(prj, cfg, file)\012if table.icontains(prj.exclud"
	.ascii	"es, file) then\012return true\012end\012if table.ic"
	.ascii	"ontains(cfg.excludes, file) then\012return true\012"
	.ascii	"end\012return false\012end\012function qbs.generate"
	.ascii	"_project(prj)\012local indent = 0\012_p(indent, '/*"
	.ascii	"')\012_p(indent, ' * QBS project file autogenerated"
	.ascii	" by GENie')\012_p(indent, ' * https://github.com/bk"
	.ascii	"aradzic/GENie')\012_p(indent, ' */')\012_p(indent, "
	.ascii	"'')\012_p(indent, 'import qbs 1.0')\012_p(indent, '"
	.ascii	"')\012if prj.kind == \"ConsoleApp\" then\012_p(inde"
	.ascii	"nt, 'CppApplication {')\012_p(indent + 1, 'consoleA"
	.ascii	"pplication: true')\012elseif prj.kind == \"Windowed"
	.ascii	"App\" then\012_p(indent, 'CppApplication {')\012_p("
	.ascii	"indent + 1, 'consoleApplication: false')\012elseif "
	.ascii	"prj.kind == \"StaticLib\" then\012_p(indent, 'Stati"
	.ascii	"cLibrary {')\012elseif prj.kind == \"SharedLib\" th"
	.ascii	"en\012_p(indent, 'DynamicLibrary {')\012end\012inde"
	.ascii	"nt = indent + 1\012_p(indent, 'name: \"' .. prj.nam"
	.ascii	"e .. '\"')\012_p(indent, 'Depends { name: \"cpp\" }"
	.ascii	"')\012local deps = premake.getdependencies(prj)\012"
	.ascii	"if #deps > 0 then\012for _, depprj in ipairs(deps) "
	.ascii	"do\012_p(indent, 'Depends { name: \"%s\" }', depprj"
	.ascii	".name)\012end\012end\012local cc = premake.gettool("
	.ascii	"prj)\012local platforms = premake.filterplatforms(p"
	.ascii	"rj.solution, cc.platforms, \"Native\")\012for _, pl"
	.ascii	"atform in ipairs(platforms) do\012for cfg in premak"
	.ascii	"e.eachconfig(prj, platform) do\012if cfg.platform ~"
	.ascii	"= \"Native\" then\012_p('');\012_p(indent, 'Propert"
	.ascii	"ies { /* %s */', premake.getconfigname(cfg.name, cf"
	.ascii	"g.platform, true))\012indent = indent + 1\012local "
	.ascii	"arch = \"\"\012local linkerFlags = cfg.linkoptions\012"
	.ascii	"if cfg.platform == \"x32\" then\012arch = '&& qbs.a"
	.ascii	"rchitecture == \"x86\"'\012elseif cfg.platform == \""
	.ascii	"x64\" then\012arch = '&& qbs.architecture == \"x86_"
	.ascii	"64\"'\012end\012if cfg.name == \"Debug\" then\012_p"
	.ascii	"(indent, 'condition: qbs.buildVariant == \"debug\" "
	.ascii	"%s', arch)\012else\012_p(indent, 'condition: qbs.bu"
	.ascii	"ildVariant == \"release\" %s', arch)\012end\012_p(i"
	.ascii	"ndent, 'targetName: \"%s\"', cfg.buildtarget.basena"
	.ascii	"me)\012_p(indent, 'destinationDirectory: \"%s\"', p"
	.ascii	"ath.getabsolute('projects/qbs/' .. cfg.buildtarget."
	.ascii	"directory) .. '/')\012if cfg.flags.Cpp11 then\012_p"
	.ascii	"(indent, 'cpp.cxxLanguageVe"
	.ascii	"rsion: \"c++11\"')\012elseif cfg.flags.Cpp14 then\012"
	.ascii	"_p(indent, 'cpp.cxxLanguageVersion: \"c++14\"')\012"
	.ascii	"elseif cfg.flags.Cpp17 then\012_p(indent, 'cpp.cxxL"
	.ascii	"anguageVersion: \"c++17\"')\012else\012_p(indent, '"
	.ascii	"cpp.cxxLanguageVersion: \"c++98\"')\012end\012if os"
	.ascii	".is(\"windows\") then\012if not cfg.flags.WinMain a"
	.ascii	"nd (cfg.kind == 'ConsoleApp' or cfg.kind == 'Window"
	.ascii	"edApp') then\012if cfg.flags.Unicode then\012_p(ind"
	.ascii	"ent, 'cpp.entryPoint: \"wmainCRTStartup\"')\012else"
	.ascii	"\012_p(indent, 'cpp.entryPoint: \"mainCRTStartup\"'"
	.ascii	")\012end\012end\012end\012qbs.list(\012  indent\012"
	.ascii	", \"cpp.commonCompilerFlags\"\012, cfg.buildoptions"
	.ascii	"\012)\012qbs.list(\012  indent\012, \"cpp.cFlags\"\012"
	.ascii	", cfg.buildoptions_c\012)\012qbs.list(\012  indent\012"
	.ascii	", \"cpp.cxxFlags\"\012, cfg.buildoptions_cpp\012)\012"
	.ascii	"qbs.list(\012  indent\012, \"cpp.objcFlags\"\012, c"
	.ascii	"fg.buildoptions_objc\012)\012qbs.list(\012  indent\012"
	.ascii	", \"cpp.objcxxFlags\"\012, cfg.buildoptions_objc\012"
	.ascii	")\012if cfg.flags.StaticRuntime then\012_p(indent, "
	.ascii	"'cpp.runtimeLibrary: \"static\"')\012else\012_p(ind"
	.ascii	"ent, 'cpp.runtimeLibrary: \"dynamic\"')\012end\012i"
	.ascii	"f cfg.flags.PedanticWarnings\012or cfg.flags.ExtraW"
	.ascii	"arnings\012then\012_p(indent, 'cpp.warningLevel: \""
	.ascii	"all\"')\012else\012_p(indent, 'cpp.warningLevel: \""
	.ascii	"default\"')\012end\012if cfg.flags.FatalWarnings th"
	.ascii	"en\012_p(indent, 'cpp.treatWarningsAsErrors: true')"
	.ascii	"\012else\012_p(indent, 'cpp.treatWarningsAsErrors: "
	.ascii	"false')\012end\012if cfg.flags.NoRTTI then\012_p(in"
	.ascii	"dent, 'cpp.enableRtti: false')\012else\012_p(indent"
	.ascii	", 'cpp.enableRtti: true')\012end\012if cfg.flags.No"
	.ascii	"Exceptions then\012_p(indent, 'cpp.enableExceptions"
	.ascii	": false')\012else\012_p(indent, 'cpp.enableExceptio"
	.ascii	"ns: true')\012end\012if cfg.flags.Symbols then\012_"
	.ascii	"p(indent, 'cpp.debugInformation: true')\012else\012"
	.ascii	"_p(indent, 'cpp.debugInformation: false')\012end\012"
	.ascii	"if cfg.flags.Unicode then\012_p(indent, 'cpp.window"
	.ascii	"sApiCharacterSet: \"unicode\"')\012else\012_p(inden"
	.ascii	"t, 'cpp.windowsApiCharacterSet: \"\"')\012end\012if"
	.ascii	" not cfg.pchheader or cfg.flags.NoPCH then\012_p(in"
	.ascii	"dent, 'cpp.usePrecompiledHeader: false')\012else\012"
	.ascii	"_p(indent, 'cpp.usePrecompiledHeader: true')\012_p("
	.ascii	"indent, 'Group {')\012_p(indent+1, 'name: \"PCH\"')"
	.ascii	"\012_p(indent+1, 'files: [\"' .. cfg.pchheader .. '"
	.ascii	"\"]')\012_p(indent+1, 'fileTags: [\"cpp_pch_src\"]'"
	.ascii	")\012_p(indent, '}')\012end\012for _, value in ip"
	.ascii	"airs(cfg.flags) do\012if (value == \"Optimize\") th"
	.ascii	"en\012elseif (value == \"OptimizeSize\") then\012_p"
	.ascii	"(indent, 'cpp.optimization: \"small\"')\012elseif ("
	.ascii	"value == \"OptimizeSpeed\") then\012_p(indent, 'cpp"
	.ascii	".optimization: \"fast\"')\012end\012end\012qbs.list"
	.ascii	"(\012  indent\012, \"cpp.defines\"\012, cfg.defines"
	.ascii	"\012)\012local sortedincdirs = table.join(cfg.useri"
	.ascii	"ncludedirs, cfg.includedirs, cfg.systemincludedirs)"
	.ascii	"\012table.sort(sortedincdirs, includesort)\012qbs.l"
	.ascii	"ist(\012  indent\012, \"cpp.includePaths\"\012, sor"
	.ascii	"tedincdirs\012)\012qbs.list(\012  indent\012, \"cpp"
	.ascii	".staticLibraries\"\012, premake.getlinks(cfg, \"sys"
	.ascii	"tem\", \"fullpath\")\012)\012qbs.list(\012  indent\012"
	.ascii	", \"cpp.libraryPaths\"\012, cfg.libdirs\012)\012qbs"
	.ascii	".list(\012  indent\012, \"cpp.linkerFlags\"\012, li"
	.ascii	"nkerFlags\012)\012table.sort(prj.files)\012if #prj."
	.ascii	"files > 0 then\012_p(indent, 'files: [')\012for _, "
	.ascii	"file in ipairs(prj.files) do\012if path.iscfile(fil"
	.ascii	"e)\012or path.iscppfile(file)\012or path.isobjcfile"
	.ascii	"(file)\012or path.isresourcefile(file)\012or path.i"
	.ascii	"scppheader(file) then\012if not is_excluded(prj, cf"
	.ascii	"g, file) then\012_p(indent+1, '\"%s\",', file)\012e"
	.ascii	"nd\012end\012end\012_p(indent+1, ']')\012end\012if "
	.ascii	"#prj.excludes > 0 then\012_p(indent, 'excludeFiles:"
	.ascii	" [')\012table.sort(prj.excludes)\012for _, file in "
	.ascii	"ipairs(prj.excludes) do\012if path.issourcefile(fil"
	.ascii	"e) then\012_p(indent+1, '\"%s\",', file)\012end\012"
	.ascii	"end\012_p(indent+1, ']')\012end\012indent = indent "
	.ascii	"- 1\012_p(indent, '}');\012end\012end\012end\012ind"
	.ascii	"ent = indent - 1\012_p(indent, '}')\012end\012\000"
	.align	2
.LC70:
	.ascii	"_WORKING_DIR        = os.getcwd()\012local function"
	.ascii	" injectplatform(platform)\012if not platform then r"
	.ascii	"eturn true end\012platform = premake.checkvalue(pla"
	.ascii	"tform, premake.fields.platforms.allowed)\012for sln"
	.ascii	" in premake.solution.each() do\012local platforms ="
	.ascii	" sln.platforms or { }\012if #platforms == 0 then\012"
	.ascii	"table.insert(platforms, \"Native\")\012end\012if no"
	.ascii	"t table.contains(platforms, \"Native\") then\012ret"
	.ascii	"urn false, sln.name .. \" does not target native pl"
	.ascii	"atform\\nNative platform settings are required for "
	.ascii	"the --platform feature.\"\012end\012if not table.co"
	.ascii	"ntains(platforms, platform) then\012table.insert(pl"
	.ascii	"atforms, platform)\012end\012sln.platforms = platfo"
	.ascii	"rms\012end\012return true\012end\012function _prema"
	.ascii	"ke_main(scriptpath)\012if (scriptpath) then\012loca"
	.ascii	"l scripts  = dofile(scriptpath .. \"/_manifest.lua\""
	.ascii	")\012for _,v in ipairs(scripts) do\012dofile(script"
	.ascii	"path .. \"/\" .. v)\012end\012end\012local profiler"
	.ascii	" = newProfiler()\012if (nil ~= _OPTIONS[\"debug-pro"
	.ascii	"filer\"]) then\012profiler:start()\012end\012_PREMA"
	.ascii	"KE_COMMAND = path.getabsolute(_PREMAKE_COMMAND)\012"
	.ascii	"premake.action.set(_ACTION)\012math.randomseed(os.t"
	.ascii	"ime())\012if (nil ~= _OPTIONS[\"file\"]) then\012lo"
	.ascii	"cal fname = _OPTIONS[\"file\"]\012if (os.isfile(fna"
	.ascii	"me)) then\012dofile(fname)\012else\012error(\"No ge"
	.ascii	"nie script '\" .. fname .. \"' found!\", 2)\012end\012"
	.ascii	"else\012local dir, name = premake.findDefaultScript"
	.ascii	"(path.getabsolute(\"./\"))\012if dir ~= nil then\012"
	.ascii	"local cwd = os.getcwd()\012os.chdir(dir)\012dofile("
	.ascii	"name)\012os.chdir(cwd)\012end\012end\012if (_OPTION"
	.ascii	"S[\"version\"] or _OPTIONS[\"help\"] or not _ACTION"
	.ascii	") then\012printf(\"GENie - Project generator tool %"
	.ascii	"s\", _GENIE_VERSION_STR)\012printf(\"https://github"
	.ascii	".com/bkaradzic/GENie\")\012if (not _OPTIONS[\"versi"
	.ascii	"on\"]) then\012premake.showhelp()\012end\012return "
	.ascii	"1\012end\012action = premake.action.current()\012if"
	.ascii	" (not action) then\012error(\"Error: no such action"
	.ascii	" '\" .. _ACTION .. \"'\", 0)\012end\012ok, err = pr"
	.ascii	"emake.option.validate(_OPTIONS)\012if (not ok) then"
	.ascii	" error(\"Error: \" .. err, 0) end\012ok, err = prem"
	.ascii	"ake.checktools()\012if (not ok) then error(\"Error:"
	.ascii	" \" .. err, 0) end\012ok, err = injectplatform(_OPT"
	.ascii	"IONS[\"platform\"])\012if (not ok) then error(\"Err"
	.ascii	"or: \" .. err, 0) end\012print(\"Building config"
	.ascii	"urations...\")\012premake.bake.buildconfigs()\012ok"
	.ascii	", err = premake.checkprojects()\012if (not ok) then"
	.ascii	" error(\"Error: \" .. err, 0) end\012premake.stats "
	.ascii	"= { }\012premake.stats.num_generated = 0\012premake"
	.ascii	".stats.num_skipped   = 0\012printf(\"Running action"
	.ascii	" '%s'...\", action.trigger)\012premake.action.call("
	.ascii	"action.trigger)\012if (nil ~= _OPTIONS[\"debug-prof"
	.ascii	"iler\"]) then\012profiler:stop()\012local filePath "
	.ascii	"= path.getabsolute(\"GENie-profile.txt\")\012print("
	.ascii	"\"Writing debug-profile report to ''\" .. filePath "
	.ascii	".. \"'.\")\012local outfile = io.open(filePath, \"w"
	.ascii	"+\")\012profiler:report(outfile, true)\012outfile:c"
	.ascii	"lose()\012end\012printf(\"Done. Generated %d/%d pro"
	.ascii	"jects.\"\012, premake.stats.num_generated\012, prem"
	.ascii	"ake.stats.num_generated+premake.stats.num_skipped\012"
	.ascii	")\012return 0\012end\012\000"
	.data
	.align	2
	.type	builtin_scripts, %object
	.size	builtin_scripts, 288
builtin_scripts:
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.word	.LC24
	.word	.LC25
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.word	.LC35
	.word	.LC36
	.word	.LC37
	.word	.LC38
	.word	.LC39
	.word	.LC40
	.word	.LC41
	.word	.LC42
	.word	.LC43
	.word	.LC44
	.word	.LC45
	.word	.LC46
	.word	.LC47
	.word	.LC48
	.word	.LC49
	.word	.LC50
	.word	.LC51
	.word	.LC52
	.word	.LC53
	.word	.LC54
	.word	.LC55
	.word	.LC56
	.word	.LC57
	.word	.LC58
	.word	.LC59
	.word	.LC60
	.word	.LC61
	.word	.LC62
	.word	.LC63
	.word	.LC64
	.word	.LC65
	.word	.LC66
	.word	.LC67
	.word	.LC68
	.word	.LC69
	.word	.LC70
	.word	0
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
