From 22f0f2b23216965ba007ca8f328e8f48cd393ea3 Mon Sep 17 00:00:00 2001 From: Ykkrosh Date: Sat, 28 Sep 2013 14:35:28 +0000 Subject: [PATCH] Set _NO_DEBUG_HEAP=1 in VS2010 projects The debug heap has a high performance cost, even in release mode, when running inside a debugger, which is surprising to people trying to measure performance. It doesn't seem very useful at finding bugs either. Add a NoDebugHeap flag to Premake, to set that environment variable when running in the VS2010 debugger. This was SVN commit r13901. --- build/premake/premake4.lua | 6 +++++ .../premake/premake4/bin/release/premake4.exe | Bin 466432 -> 466432 bytes .../src/actions/vstudio/vs2010_vcxproxj.lua | 9 +++++++ build/premake/premake4/src/base/api.lua | 1 + build/premake/premake4/src/host/scripts.c | 22 +++++++++--------- 5 files changed, 27 insertions(+), 11 deletions(-) diff --git a/build/premake/premake4.lua b/build/premake/premake4.lua index 786110bdec..0397111c2a 100644 --- a/build/premake/premake4.lua +++ b/build/premake/premake4.lua @@ -144,6 +144,12 @@ function project_set_build_flags() flags { "ExtraWarnings" } -- this causes far too many warnings/remarks on ICC end + -- disable Windows debug heap, since it makes malloc/free hugely slower when + -- running inside a debugger + if os.is("windows") then + flags { "NoDebugHeap" } + end + configuration "Debug" defines { "DEBUG" } diff --git a/build/premake/premake4/bin/release/premake4.exe b/build/premake/premake4/bin/release/premake4.exe index 81886f22029a569e418ba63d2190ad20bae32d6c..7287a4be74c6158a1f87b2f2daa8db42c6737507 100644 GIT binary patch delta 16367 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 delta 16642 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 LEyLUO4dwp=!;oK{ diff --git a/build/premake/premake4/src/actions/vstudio/vs2010_vcxproxj.lua b/build/premake/premake4/src/actions/vstudio/vs2010_vcxproxj.lua index cc3dc59f6a..a4593ed4a5 100644 --- a/build/premake/premake4/src/actions/vstudio/vs2010_vcxproxj.lua +++ b/build/premake/premake4/src/actions/vstudio/vs2010_vcxproxj.lua @@ -731,6 +731,15 @@ local vs10_helpers = premake.vstudio.vs10_helpers function premake.vs2010_vcxproj_user(prj) _p(xml_version_and_encoding) _p('') + + for _, cfginfo in ipairs(prj.solution.vstudio_configs) do + local cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform) + if cfg.flags.NoDebugHeap then + _p(1,'', premake.esc(cfginfo.name)) + _p(2,'_NO_DEBUG_HEAP=1') + _p(1,'') + end + end _p('') end diff --git a/build/premake/premake4/src/base/api.lua b/build/premake/premake4/src/base/api.lua index c3cfd051bd..df3a43ef25 100644 --- a/build/premake/premake4/src/base/api.lua +++ b/build/premake/premake4/src/base/api.lua @@ -118,6 +118,7 @@ "MFC", "NativeWChar", "No64BitChecks", + "NoDebugHeap", "NoEditAndContinue", "NoExceptions", "NoFramePointer", diff --git a/build/premake/premake4/src/host/scripts.c b/build/premake/premake4/src/host/scripts.c index c06a8307ab..9b24529e7a 100644 --- a/build/premake/premake4/src/host/scripts.c +++ b/build/premake/premake4/src/host/scripts.c @@ -68,15 +68,15 @@ const char* builtin_scripts[] = { /* base/api.lua */ "premake.fields = \n{\nbasedir =\n{\nkind = \"path\",\nscope = \"container\",\n},\nbuildaction =\n{\nkind = \"string\",\nscope = \"config\",\nallowed = {\n\"Compile\",\n\"Copy\",\n\"Embed\",\n\"None\"\n}\n},\nbuildoptions =\n{\nkind = \"list\",\nscope = \"config\",\n},\nconfigurations = \n{\nkind = \"list\",\nscope = \"solution\",\n},\ncxxtesthdrfiles =\n{\nkind = \"filelist\",\nscope = \"config\",\n},\ncxxtestsrcfiles = \n{\nkind = \"filelist\",\nscope = \"config\",\n},\ncxxtestoptions =\n{\nkind = \"string\",\nscope = \"config\",\n},\ncxxtestpath =\n{\nkind = \"path\",\nscope = \"solution\", \n},\ncxxtestrootfile = \n{\nkind = \"path\",\nscope = \"config\",\n},\ncxxtestrootoptions =\n{\nkind = \"string\",\nscope = \"config\",\n},\ndefines =\n{\nkind = \"list\",\nscope = \"config\",\n},\ndeploymentoptions =\n{\nkind = \"list\",\nscope = \"config\",\n},\nexcludes =\n{\nkind = \"filelist\",\nscope = \"config\",\n},\nfiles =\n{\nkind = \"filelist\",\nscope = \"config\",\n},\nflags =\n{\nkind = \"lis" - "t\",\nscope = \"config\",\nisflags = true,\nallowed = {\n\"EnableSSE\",\n\"EnableSSE2\",\n\"ExtraWarnings\",\n\"FatalWarnings\",\n\"FloatFast\",\n\"FloatStrict\",\n\"Managed\",\n\"MFC\",\n\"NativeWChar\",\n\"No64BitChecks\",\n\"NoEditAndContinue\",\n\"NoExceptions\",\n\"NoFramePointer\",\n\"NoImportLib\",\n\"NoManifest\",\n\"NoMinimalRebuild\",\n\"NoNativeWChar\",\n\"NoPCH\",\n\"NoRTTI\",\n\"Optimize\",\n\"OptimizeSize\",\n\"OptimizeSpeed\",\n\"SEH\",\n\"StaticRuntime\",\n\"Symbols\",\n\"Unicode\",\n\"Unsafe\",\n\"WinMain\"\n}\n},\nframework =\n{\nkind = \"string\",\nscope = \"container\",\nallowed = {\n\"1.0\",\n\"1.1\",\n\"2.0\",\n\"3.0\",\n\"3.5\",\n\"4.0\"\n}\n},\ngnuexternals =\n{\nkind = \"list\",\nscope = \"config\",\n},\nimagepath = \n{\nkind = \"path\",\nscope = \"config\",\n},\nimageoptions =\n{\nkind = \"list\",\nscope = \"config\",\n},\nimplibdir =\n{\nkind = \"path\",\nscope = \"config\",\n},\nimplibextension =\n{\nkind = \"string\",\nscope = \"config\",\n},\nimplibname =\n{\nkind = \"string" - "\",\nscope = \"config\",\n},\nimplibprefix =\n{\nkind = \"string\",\nscope = \"config\",\n},\nimplibsuffix =\n{\nkind = \"string\",\nscope = \"config\",\n},\nincludedirs =\n{\nkind = \"dirlist\",\nscope = \"config\",\n},\nkind =\n{\nkind = \"string\",\nscope = \"config\",\nallowed = {\n\"ConsoleApp\",\n\"WindowedApp\",\n\"StaticLib\",\n\"SharedLib\"\n}\n},\nlanguage =\n{\nkind = \"string\",\nscope = \"container\",\nallowed = {\n\"C\",\n\"C++\",\n\"C#\"\n}\n},\nlibdirs =\n{\nkind = \"dirlist\",\nscope = \"config\",\n},\nlinkoptions =\n{\nkind = \"list\",\nscope = \"config\",\n},\nlinks =\n{\nkind = \"list\",\nscope = \"config\",\nallowed = function(value)\nif value:find('/', nil, true) then\nvalue = path.getabsolute(value)\nend\nreturn value\nend\n},\nlocation =\n{\nkind = \"path\",\nscope = \"container\",\n},\nnasmformat =\n{\nkind = \"string\",\nscope = \"solution\",\n},\nnasmpath =\n{\nkind = \"path\",\nscope = \"solution\"\n},\nobjdir =\n{\nkind = \"path\",\nscope = \"config\",\n},\npchheader =" - "\n{\nkind = \"path\",\nscope = \"config\",\n},\npchsource =\n{\nkind = \"path\",\nscope = \"config\",\n},\nplatforms = \n{\nkind = \"list\",\nscope = \"solution\",\nallowed = table.keys(premake.platforms),\n},\npostbuildcommands =\n{\nkind = \"list\",\nscope = \"config\",\n},\nprebuildcommands =\n{\nkind = \"list\",\nscope = \"config\",\n},\nprelinkcommands =\n{\nkind = \"list\",\nscope = \"config\",\n},\nresdefines =\n{\nkind = \"list\",\nscope = \"config\",\n},\nresincludedirs =\n{\nkind = \"dirlist\",\nscope = \"config\",\n},\nresoptions =\n{\nkind = \"list\",\nscope = \"config\",\n},\ntargetdir =\n{\nkind = \"path\",\nscope = \"config\",\n},\ntargetextension =\n{\nkind = \"string\",\nscope = \"config\",\n},\ntargetname =\n{\nkind = \"string\",\nscope = \"config\",\n},\ntargetprefix =\n{\nkind = \"string\",\nscope = \"config\",\n},\ntargetsuffix =\n{\nkind = \"string\",\nscope = \"config\",\n},\ntrimpaths =\n{\nkind = \"dirlist\",\nscope = \"config\",\n},\nuuid =\n{\nkind = \"string\",\nscope" - " = \"container\",\nallowed = function(value)\nlocal ok = true\nif (#value ~= 36) then ok = false end\nfor i=1,36 do\nlocal ch = value:sub(i,i)\nif (not ch:find(\"[ABCDEFabcdef0123456789-]\")) then ok = false end\nend\nif (value:sub(9,9) ~= \"-\") then ok = false end\nif (value:sub(14,14) ~= \"-\") then ok = false end\nif (value:sub(19,19) ~= \"-\") then ok = false end\nif (value:sub(24,24) ~= \"-\") then ok = false end\nif (not ok) then\nreturn nil, \"invalid UUID\"\nend\nreturn value:upper()\nend\n},\n}\nfunction premake.checkvalue(value, allowed)\nif (allowed) then\nif (type(allowed) == \"function\") then\nreturn allowed(value)\nelse\nfor _,v in ipairs(allowed) do\nif (value:lower() == v:lower()) then\nreturn v\nend\nend\nreturn nil, \"invalid value '\" .. value .. \"'\"\nend\nelse\nreturn value\nend\nend\nfunction premake.getobject(t)\nlocal container\nif (t == \"container\" or t == \"solution\") then\ncontainer = premake.CurrentContainer\nelse\ncontainer = premake.CurrentConfiguration\nend\nif t == \"sol" - "ution\" then\nif type(container) == \"project\" then\ncontainer = container.solution\nend\nif type(container) ~= \"solution\" then\ncontainer = nil\nend\nend\nlocal msg\nif (not container) then\nif (t == \"container\") then\nmsg = \"no active solution or project\"\nelseif (t == \"solution\") then\nmsg = \"no active solution\"\nelse\nmsg = \"no active solution, project, or configuration\"\nend\nend\nreturn container, msg\nend\nfunction premake.setarray(ctype, fieldname, value, allowed)\nlocal container, err = premake.getobject(ctype)\nif (not container) then\nerror(err, 4)\nend\nif (not container[fieldname]) then\ncontainer[fieldname] = { }\nend\nlocal function doinsert(value, depth)\nif (type(value) == \"table\") then\nfor _,v in ipairs(value) do\ndoinsert(v, depth + 1)\nend\nelse\nvalue, err = premake.checkvalue(value, allowed)\nif (not value) then\nerror(err, depth)\nend\ntable.insert(container[fieldname], value)\nend\nend\nif (value) then\ndoinsert(value, 5)\nend\nreturn container[fieldname]\nend\nlocal fun" - "ction domatchedarray(ctype, fieldname, value, matchfunc)\nlocal result = { }\nfunction makeabsolute(value, depth)\nif (type(value) == \"table\") then\nfor _, item in ipairs(value) do\nmakeabsolute(item, depth + 1)\nend\nelseif type(value) == \"string\" then\nif value:find(\"*\") then\nmakeabsolute(matchfunc(value), depth + 1)\nelse\ntable.insert(result, path.getabsolute(value))\nend\nelse\nerror(\"Invalid value in list: expected string, got \" .. type(value), depth)\nend\nend\nmakeabsolute(value, 3)\nreturn premake.setarray(ctype, fieldname, result)\nend\nfunction premake.setdirarray(ctype, fieldname, value)\nreturn domatchedarray(ctype, fieldname, value, os.matchdirs)\nend\nfunction premake.setfilearray(ctype, fieldname, value)\nreturn domatchedarray(ctype, fieldname, value, os.matchfiles)\nend\nfunction premake.setstring(ctype, fieldname, value, allowed)\nlocal container, err = premake.getobject(ctype)\nif (not container) then\nerror(err, 4)\nend\nif (value) then\nvalue, err = premake.checkvalue(value, allow" - "ed)\nif (not value) then \nerror(err, 4)\nend\ncontainer[fieldname] = value\nend\nreturn container[fieldname]\nend\nlocal function accessor(name, value)\nlocal kind = premake.fields[name].kind\nlocal scope = premake.fields[name].scope\nlocal allowed = premake.fields[name].allowed\nif ((kind == \"string\" or kind == \"path\") and value) then\nif type(value) ~= \"string\" then\nerror(\"string value expected\", 3)\nend\nend\nif (kind == \"string\") then\nreturn premake.setstring(scope, name, value, allowed)\nelseif (kind == \"path\") then\nif value then value = path.getabsolute(value) end\nreturn premake.setstring(scope, name, value)\nelseif (kind == \"list\") then\nreturn premake.setarray(scope, name, value, allowed)\nelseif (kind == \"dirlist\") then\nreturn premake.setdirarray(scope, name, value)\nelseif (kind == \"filelist\") then\nreturn premake.setfilearray(scope, name, value)\nend\nend\nfor name,_ in pairs(premake.fields) do\n_G[name] = function(value)\nreturn accessor(name, value)\nend\nend\nfunction" - " configuration(terms)\nif not terms then\nreturn premake.CurrentConfiguration\nend\nlocal container, err = premake.getobject(\"container\")\nif (not container) then\nerror(err, 2)\nend\nlocal cfg = { }\ncfg.terms = table.flatten({terms})\ntable.insert(container.blocks, cfg)\npremake.CurrentConfiguration = cfg\ncfg.keywords = { }\nfor _, word in ipairs(cfg.terms) do\ntable.insert(cfg.keywords, path.wildcards(word):lower())\nend\nfor name, field in pairs(premake.fields) do\nif (field.kind ~= \"string\" and field.kind ~= \"path\") then\ncfg[name] = { }\nend\nend\nreturn cfg\nend\nfunction project(name)\nif not name then\nreturn iif(type(premake.CurrentContainer) == \"project\", premake.CurrentContainer, nil)\nend\nlocal sln\nif (type(premake.CurrentContainer) == \"project\") then\nsln = premake.CurrentContainer.solution\nelse\nsln = premake.CurrentContainer\nend\nif (type(sln) ~= \"solution\") then\nerror(\"no active solution\", 2)\nend\npremake.CurrentContainer = sln.projects[name]\nif (not premake.CurrentContai" - "ner) then\nlocal prj = { }\npremake.CurrentContainer = prj\ntable.insert(sln.projects, prj)\nsln.projects[name] = prj\nsetmetatable(prj, {\n__type = \"project\",\n})\nprj.solution = sln\nprj.name = name\nprj.basedir = os.getcwd()\nprj.uuid = os.uuid()\nprj.blocks = { }\nend\nconfiguration { }\nreturn premake.CurrentContainer\nend\nfunction solution(name)\nif not name then\nif type(premake.CurrentContainer) == \"project\" then\nreturn premake.CurrentContainer.solution\nelse\nreturn premake.CurrentContainer\nend\nend\npremake.CurrentContainer = premake.solution.get(name)\nif (not premake.CurrentContainer) then\npremake.CurrentContainer = premake.solution.new(name)\nend\nconfiguration { }\nreturn premake.CurrentContainer\nend\nfunction newaction(a)\npremake.action.add(a)\nend\nfunction newoption(opt)\npremake.option.add(opt)\nend\n", + "t\",\nscope = \"config\",\nisflags = true,\nallowed = {\n\"EnableSSE\",\n\"EnableSSE2\",\n\"ExtraWarnings\",\n\"FatalWarnings\",\n\"FloatFast\",\n\"FloatStrict\",\n\"Managed\",\n\"MFC\",\n\"NativeWChar\",\n\"No64BitChecks\",\n\"NoDebugHeap\",\n\"NoEditAndContinue\",\n\"NoExceptions\",\n\"NoFramePointer\",\n\"NoImportLib\",\n\"NoManifest\",\n\"NoMinimalRebuild\",\n\"NoNativeWChar\",\n\"NoPCH\",\n\"NoRTTI\",\n\"Optimize\",\n\"OptimizeSize\",\n\"OptimizeSpeed\",\n\"SEH\",\n\"StaticRuntime\",\n\"Symbols\",\n\"Unicode\",\n\"Unsafe\",\n\"WinMain\"\n}\n},\nframework =\n{\nkind = \"string\",\nscope = \"container\",\nallowed = {\n\"1.0\",\n\"1.1\",\n\"2.0\",\n\"3.0\",\n\"3.5\",\n\"4.0\"\n}\n},\ngnuexternals =\n{\nkind = \"list\",\nscope = \"config\",\n},\nimagepath = \n{\nkind = \"path\",\nscope = \"config\",\n},\nimageoptions =\n{\nkind = \"list\",\nscope = \"config\",\n},\nimplibdir =\n{\nkind = \"path\",\nscope = \"config\",\n},\nimplibextension =\n{\nkind = \"string\",\nscope = \"config\",\n},\nimplibname =\n{" + "\nkind = \"string\",\nscope = \"config\",\n},\nimplibprefix =\n{\nkind = \"string\",\nscope = \"config\",\n},\nimplibsuffix =\n{\nkind = \"string\",\nscope = \"config\",\n},\nincludedirs =\n{\nkind = \"dirlist\",\nscope = \"config\",\n},\nkind =\n{\nkind = \"string\",\nscope = \"config\",\nallowed = {\n\"ConsoleApp\",\n\"WindowedApp\",\n\"StaticLib\",\n\"SharedLib\"\n}\n},\nlanguage =\n{\nkind = \"string\",\nscope = \"container\",\nallowed = {\n\"C\",\n\"C++\",\n\"C#\"\n}\n},\nlibdirs =\n{\nkind = \"dirlist\",\nscope = \"config\",\n},\nlinkoptions =\n{\nkind = \"list\",\nscope = \"config\",\n},\nlinks =\n{\nkind = \"list\",\nscope = \"config\",\nallowed = function(value)\nif value:find('/', nil, true) then\nvalue = path.getabsolute(value)\nend\nreturn value\nend\n},\nlocation =\n{\nkind = \"path\",\nscope = \"container\",\n},\nnasmformat =\n{\nkind = \"string\",\nscope = \"solution\",\n},\nnasmpath =\n{\nkind = \"path\",\nscope = \"solution\"\n},\nobjdir =\n{\nkind = \"path\",\nscope = \"config\"," + "\n},\npchheader =\n{\nkind = \"path\",\nscope = \"config\",\n},\npchsource =\n{\nkind = \"path\",\nscope = \"config\",\n},\nplatforms = \n{\nkind = \"list\",\nscope = \"solution\",\nallowed = table.keys(premake.platforms),\n},\npostbuildcommands =\n{\nkind = \"list\",\nscope = \"config\",\n},\nprebuildcommands =\n{\nkind = \"list\",\nscope = \"config\",\n},\nprelinkcommands =\n{\nkind = \"list\",\nscope = \"config\",\n},\nresdefines =\n{\nkind = \"list\",\nscope = \"config\",\n},\nresincludedirs =\n{\nkind = \"dirlist\",\nscope = \"config\",\n},\nresoptions =\n{\nkind = \"list\",\nscope = \"config\",\n},\ntargetdir =\n{\nkind = \"path\",\nscope = \"config\",\n},\ntargetextension =\n{\nkind = \"string\",\nscope = \"config\",\n},\ntargetname =\n{\nkind = \"string\",\nscope = \"config\",\n},\ntargetprefix =\n{\nkind = \"string\",\nscope = \"config\",\n},\ntargetsuffix =\n{\nkind = \"string\",\nscope = \"config\",\n},\ntrimpaths =\n{\nkind = \"dirlist\",\nscope = \"config\",\n},\nuuid =\n{\nkind = " + "\"string\",\nscope = \"container\",\nallowed = function(value)\nlocal ok = true\nif (#value ~= 36) then ok = false end\nfor i=1,36 do\nlocal ch = value:sub(i,i)\nif (not ch:find(\"[ABCDEFabcdef0123456789-]\")) then ok = false end\nend\nif (value:sub(9,9) ~= \"-\") then ok = false end\nif (value:sub(14,14) ~= \"-\") then ok = false end\nif (value:sub(19,19) ~= \"-\") then ok = false end\nif (value:sub(24,24) ~= \"-\") then ok = false end\nif (not ok) then\nreturn nil, \"invalid UUID\"\nend\nreturn value:upper()\nend\n},\n}\nfunction premake.checkvalue(value, allowed)\nif (allowed) then\nif (type(allowed) == \"function\") then\nreturn allowed(value)\nelse\nfor _,v in ipairs(allowed) do\nif (value:lower() == v:lower()) then\nreturn v\nend\nend\nreturn nil, \"invalid value '\" .. value .. \"'\"\nend\nelse\nreturn value\nend\nend\nfunction premake.getobject(t)\nlocal container\nif (t == \"container\" or t == \"solution\") then\ncontainer = premake.CurrentContainer\nelse\ncontainer = premake.CurrentConfiguration\n" + "end\nif t == \"solution\" then\nif type(container) == \"project\" then\ncontainer = container.solution\nend\nif type(container) ~= \"solution\" then\ncontainer = nil\nend\nend\nlocal msg\nif (not container) then\nif (t == \"container\") then\nmsg = \"no active solution or project\"\nelseif (t == \"solution\") then\nmsg = \"no active solution\"\nelse\nmsg = \"no active solution, project, or configuration\"\nend\nend\nreturn container, msg\nend\nfunction premake.setarray(ctype, fieldname, value, allowed)\nlocal container, err = premake.getobject(ctype)\nif (not container) then\nerror(err, 4)\nend\nif (not container[fieldname]) then\ncontainer[fieldname] = { }\nend\nlocal function doinsert(value, depth)\nif (type(value) == \"table\") then\nfor _,v in ipairs(value) do\ndoinsert(v, depth + 1)\nend\nelse\nvalue, err = premake.checkvalue(value, allowed)\nif (not value) then\nerror(err, depth)\nend\ntable.insert(container[fieldname], value)\nend\nend\nif (value) then\ndoinsert(value, 5)\nend\nreturn container[fieldnam" + "e]\nend\nlocal function domatchedarray(ctype, fieldname, value, matchfunc)\nlocal result = { }\nfunction makeabsolute(value, depth)\nif (type(value) == \"table\") then\nfor _, item in ipairs(value) do\nmakeabsolute(item, depth + 1)\nend\nelseif type(value) == \"string\" then\nif value:find(\"*\") then\nmakeabsolute(matchfunc(value), depth + 1)\nelse\ntable.insert(result, path.getabsolute(value))\nend\nelse\nerror(\"Invalid value in list: expected string, got \" .. type(value), depth)\nend\nend\nmakeabsolute(value, 3)\nreturn premake.setarray(ctype, fieldname, result)\nend\nfunction premake.setdirarray(ctype, fieldname, value)\nreturn domatchedarray(ctype, fieldname, value, os.matchdirs)\nend\nfunction premake.setfilearray(ctype, fieldname, value)\nreturn domatchedarray(ctype, fieldname, value, os.matchfiles)\nend\nfunction premake.setstring(ctype, fieldname, value, allowed)\nlocal container, err = premake.getobject(ctype)\nif (not container) then\nerror(err, 4)\nend\nif (value) then\nvalue, err = premake.check" + "value(value, allowed)\nif (not value) then \nerror(err, 4)\nend\ncontainer[fieldname] = value\nend\nreturn container[fieldname]\nend\nlocal function accessor(name, value)\nlocal kind = premake.fields[name].kind\nlocal scope = premake.fields[name].scope\nlocal allowed = premake.fields[name].allowed\nif ((kind == \"string\" or kind == \"path\") and value) then\nif type(value) ~= \"string\" then\nerror(\"string value expected\", 3)\nend\nend\nif (kind == \"string\") then\nreturn premake.setstring(scope, name, value, allowed)\nelseif (kind == \"path\") then\nif value then value = path.getabsolute(value) end\nreturn premake.setstring(scope, name, value)\nelseif (kind == \"list\") then\nreturn premake.setarray(scope, name, value, allowed)\nelseif (kind == \"dirlist\") then\nreturn premake.setdirarray(scope, name, value)\nelseif (kind == \"filelist\") then\nreturn premake.setfilearray(scope, name, value)\nend\nend\nfor name,_ in pairs(premake.fields) do\n_G[name] = function(value)\nreturn accessor(name, value)\n" + "end\nend\nfunction configuration(terms)\nif not terms then\nreturn premake.CurrentConfiguration\nend\nlocal container, err = premake.getobject(\"container\")\nif (not container) then\nerror(err, 2)\nend\nlocal cfg = { }\ncfg.terms = table.flatten({terms})\ntable.insert(container.blocks, cfg)\npremake.CurrentConfiguration = cfg\ncfg.keywords = { }\nfor _, word in ipairs(cfg.terms) do\ntable.insert(cfg.keywords, path.wildcards(word):lower())\nend\nfor name, field in pairs(premake.fields) do\nif (field.kind ~= \"string\" and field.kind ~= \"path\") then\ncfg[name] = { }\nend\nend\nreturn cfg\nend\nfunction project(name)\nif not name then\nreturn iif(type(premake.CurrentContainer) == \"project\", premake.CurrentContainer, nil)\nend\nlocal sln\nif (type(premake.CurrentContainer) == \"project\") then\nsln = premake.CurrentContainer.solution\nelse\nsln = premake.CurrentContainer\nend\nif (type(sln) ~= \"solution\") then\nerror(\"no active solution\", 2)\nend\npremake.CurrentContainer = sln.projects[name]\nif (not pre" + "make.CurrentContainer) then\nlocal prj = { }\npremake.CurrentContainer = prj\ntable.insert(sln.projects, prj)\nsln.projects[name] = prj\nsetmetatable(prj, {\n__type = \"project\",\n})\nprj.solution = sln\nprj.name = name\nprj.basedir = os.getcwd()\nprj.uuid = os.uuid()\nprj.blocks = { }\nend\nconfiguration { }\nreturn premake.CurrentContainer\nend\nfunction solution(name)\nif not name then\nif type(premake.CurrentContainer) == \"project\" then\nreturn premake.CurrentContainer.solution\nelse\nreturn premake.CurrentContainer\nend\nend\npremake.CurrentContainer = premake.solution.get(name)\nif (not premake.CurrentContainer) then\npremake.CurrentContainer = premake.solution.new(name)\nend\nconfiguration { }\nreturn premake.CurrentContainer\nend\nfunction newaction(a)\npremake.action.add(a)\nend\nfunction newoption(opt)\npremake.option.add(opt)\nend\n", /* base/cmdline.lua */ "newoption \n{\ntrigger = \"cc\",\nvalue = \"VALUE\",\ndescription = \"Choose a C/C++ compiler set\",\nallowed = {\n{ \"gcc\", \"GNU GCC (gcc/g++)\" },\n{ \"ow\", \"OpenWatcom\" },\n}\n}\nnewoption\n{\ntrigger = \"dotnet\",\nvalue = \"VALUE\",\ndescription = \"Choose a .NET compiler set\",\nallowed = {\n{ \"msnet\", \"Microsoft .NET (csc)\" },\n{ \"mono\", \"Novell Mono (mcs)\" },\n{ \"pnet\", \"Portable.NET (cscc)\" },\n}\n}\nnewoption\n{\ntrigger = \"file\",\nvalue = \"FILE\",\ndescription = \"Read FILE as a Premake script; default is 'premake4.lua'\"\n}\nnewoption\n{\ntrigger = \"help\",\ndescription = \"Display this information\"\n}\nnewoption\n{\ntrigger = \"os\",\nvalue = \"VALUE\",\ndescription = \"Generate files for a different operating system\",\nallowed = {\n{ \"bsd\", \"OpenBSD, NetBSD, or FreeBSD\" },\n{ \"linux\", \"Linux\" },\n{ \"macosx\", \"Apple Mac OS X\" },\n{ \"solaris\", \"Solaris\" },\n{ \"windows\", \"Microsoft W" @@ -254,8 +254,8 @@ const char* builtin_scripts[] = { "mat) then\nprj.solution.nasmformat = 'win32'\nend\nif not (prj.solution.nasmpath) then\nprj.solution.nasmpath = 'nasm'\nend\nif #files > 0 then\n_p(1,'')\nlocal nasmpath = path.translate(path.getrelative(prj.location, prj.solution.nasmpath),\"\\\\\")\nfor _, current_file in ipairs(files) do\n_p(2,'', path.translate(current_file,\"\\\\\"))\n_p(3,'Assembling %%(FullPath)')\n_p(3,'%s -i %s -f %s \\\"%%(FullPath)\\\" -o \\\"$(IntDir)%%(Filename).obj\\\"', \nnasmpath, \npath.translate(path.getdirectory(current_file),\"\\\\\")..\"\\\\\", \nprj.solution.nasmformat)\n_p(3,'$(IntDir)%%(Filename).obj;%%(Outputs)')\n_p(2,'')\nend\n_p(1,'')\nend\nend\nlocal function vcxproj_files(prj)\nlocal sorted =\n{\nClCompile={},\nClInclude={},\nClASM={},\nNone={},\nResourceCompile ={}\n}\ncfg = premake.getconfig(prj)\nvs10_helpers.sort_input_files(cfg.files,sorted)\nwrite_cxxtestgen_block(prj)\nwrite_file_typ" "e_block(sorted.ClInclude,\"ClInclude\")\nwrite_file_compile_block(sorted.ClCompile,prj,prj.solution.vstudio_configs)\nwrite_nasm_asm_block(sorted.ClASM, prj, prj.solution.vstudion_configs)\nwrite_file_type_block(sorted.None,'None')\nwrite_file_type_block(sorted.ResourceCompile,'ResourceCompile')\nend\nlocal function write_filter_includes(sorted_table)\nlocal directories = vs10_helpers.table_of_file_filters(sorted_table)\nif #directories >0 then\n_p(1,'')\nfor _, dir in pairs(directories) do\n_p(2,'',path.translate(dir,\"\\\\\"))\n_p(3,'{%s}',os.uuid())\n_p(2,'')\nend\n_p(1,'')\nend\nend\nlocal function write_file_filter_block(files,group_type)\nif #files > 0 then\n_p(1,'')\nfor _, current_file in ipairs(files) do\nlocal path_to_file = vs10_helpers.file_path(current_file)\nif path_to_file then\n_p(2,'<%s Include=\\\"%s\\\">', group_type,path.translate(current_file, \"\\\\\"))\n_p(3,'%s',path." "translate(path_to_file,\"\\\\\"))\n_p(2,'',group_type)\nelse\n_p(2,'<%s Include=\\\"%s\\\" />', group_type,path.translate(current_file, \"\\\\\"))\nend\nend\n_p(1,'')\nend\nend\nlocal tool_version_and_xmlns = 'ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\"'\nlocal xml_version_and_encoding = ''\nlocal function vcxproj_filter_files(prj)\nlocal sorted =\n{\nClCompile={},\nClInclude={},\nClASM={},\nNone={},\nResourceCompile ={}\n}\ncfg = premake.getconfig(prj)\nvs10_helpers.sort_input_files(cfg.files,sorted)\nio.eol = \"\\r\\n\"\n_p(xml_version_and_encoding)\n_p('')\nwrite_filter_includes(sorted)\nwrite_file_filter_block(sorted.ClInclude,\"ClInclude\")\nwrite_file_filter_block(sorted.ClCompile,\"ClCompile\")\nwrite_file_filter_block(prj.cxxtesthdrfiles,\"CustomBuild\")\nwrite_file_filter_block(sorted.ClASM,\"ClASM\")\nwrite_file_filter_block(sorted.None,\"None\")\nwrite_file_filter" - "_block(sorted.ResourceCompile,\"ResourceCompile\")\n_p('')\nend\nfunction premake.vs2010_vcxproj(prj)\nio.eol = \"\\r\\n\"\n_p(xml_version_and_encoding)\n_p('')\nvs2010_config(prj)\nvs2010_globals(prj)\n_p(1,'')\nconfig_type_block(prj)\n_p(1,'')\n_p(1,'')\n_p(1,'')\nimport_props(prj)\n_p(1,'')\nintermediate_and_out_dirs(prj)\nitem_definitions(prj)\nvcxproj_files(prj)\n_p(1,'')\n_p(1,'')\n_p(1,'')\n_p('')\nend\nfunction premake.vs2010_vcxproj_user(prj)\n_p(xml_version_and_encoding)\n_p('')\n_p('')\nend\nfunction premake.vs2010_vcxproj_filters" - "(prj)\nvcxproj_filter_files(prj)\nend\n", + "_block(sorted.ResourceCompile,\"ResourceCompile\")\n_p('')\nend\nfunction premake.vs2010_vcxproj(prj)\nio.eol = \"\\r\\n\"\n_p(xml_version_and_encoding)\n_p('')\nvs2010_config(prj)\nvs2010_globals(prj)\n_p(1,'')\nconfig_type_block(prj)\n_p(1,'')\n_p(1,'')\n_p(1,'')\nimport_props(prj)\n_p(1,'')\nintermediate_and_out_dirs(prj)\nitem_definitions(prj)\nvcxproj_files(prj)\n_p(1,'')\n_p(1,'')\n_p(1,'')\n_p('')\nend\nfunction premake.vs2010_vcxproj_user(prj)\n_p(xml_version_and_encoding)\n_p('')\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\nloc" + "al cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\nif cfg.flags.NoDebugHeap then\n_p(1,'', premake.esc(cfginfo.name))\n_p(2,'_NO_DEBUG_HEAP=1')\n_p(1,'')\nend\nend\n_p('')\nend\nfunction premake.vs2010_vcxproj_filters(prj)\nvcxproj_filter_files(prj)\nend\n", /* actions/xcode/_xcode.lua */ "premake.xcode = { }\nnewaction \n{\ntrigger = \"xcode3\",\nshortname = \"Xcode 3\",\ndescription = \"Generate Apple Xcode 3 project files (experimental)\",\nos = \"macosx\",\nvalid_kinds = { \"ConsoleApp\", \"WindowedApp\", \"SharedLib\", \"StaticLib\" },\nvalid_languages = { \"C\", \"C++\" },\nvalid_tools = {\ncc = { \"gcc\" },\n},\nvalid_platforms = { \nNative = \"Native\", \nx32 = \"Native 32-bit\", \nx64 = \"Native 64-bit\", \nUniversal32 = \"32-bit Universal\", \nUniversal64 = \"64-bit Universal\", \nUniversal = \"Universal\",\n},\ndefault_platform = \"Universal\",\nonsolution = function(sln)\npremake.xcode.preparesolution(sln)\nend,\nonproject = function(prj)\npremake.generate(prj, \"%%.xcodeproj/project.pbxproj\", premake.xcode.project)\nend,\noncleanproject = function(prj)\npremake.clean.directory(prj, \"%%.xcodeproj\")\nend,\noncheckproject = function(prj)\nlocal last\nfor cfg in premake.eachconfig(prj) do\nif last and last ~= cfg.kind then\nerror(\"Project '"