From c2bf3291dc1c279a9b9ac0b9b52f2c38740db4c2 Mon Sep 17 00:00:00 2001 From: iarwain Date: Sun, 26 Apr 2020 03:20:02 -0400 Subject: [PATCH] - Added vstudio.targetPlatform to premake4 - Updated premake4 windows binaries - Updated .editorconfig to maintain premake4's lua convention --- .editorconfig | 5 ++ premake/bin/windows/premake4.exe | Bin 373760 -> 374272 bytes premake/src/actions/vstudio/_vstudio.lua | 1 + .../src/actions/vstudio/vs2010_vcxproj.lua | 15 +++--- premake/src/actions/vstudio/vs2012.lua | 1 + premake/src/actions/vstudio/vs2013.lua | 3 +- premake/src/actions/vstudio/vs2015.lua | 1 + premake/src/actions/vstudio/vs2017.lua | 1 + premake/src/actions/vstudio/vs2019.lua | 1 + premake/src/host/scripts.c | 50 +++++++++--------- 10 files changed, 45 insertions(+), 33 deletions(-) diff --git a/.editorconfig b/.editorconfig index 40d7bb3b..cd2ed1d7 100644 --- a/.editorconfig +++ b/.editorconfig @@ -20,3 +20,8 @@ indent_size = 4 [*.sh] indent_size = 4 end_of_line = lf + +[*.lua] +indent_style = tab +indent_size = 4 +end_of_line = lf diff --git a/premake/bin/windows/premake4.exe b/premake/bin/windows/premake4.exe index 514b65b2a2d15a7c3cb4853d11d90e08b7c692f4..cd505b58422fd7c19ff3a812bf0b56949fbb39d4 100644 GIT binary patch delta 8320 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 i#>QRK8EIn=|>l8cM{Z)bK6>bD2VOaBY>Q(!j$ delta 8072 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 diff --git a/premake/src/actions/vstudio/_vstudio.lua b/premake/src/actions/vstudio/_vstudio.lua index 4976508f..7357ab1e 100644 --- a/premake/src/actions/vstudio/_vstudio.lua +++ b/premake/src/actions/vstudio/_vstudio.lua @@ -409,6 +409,7 @@ productVersion = "8.0.30703", solutionVersion = "11", targetFramework = "4.0", + targetPlatform = "10.0.17763.0", toolsVersion = "4.0", } } diff --git a/premake/src/actions/vstudio/vs2010_vcxproj.lua b/premake/src/actions/vstudio/vs2010_vcxproj.lua index bd94e55b..b88dc053 100644 --- a/premake/src/actions/vstudio/vs2010_vcxproj.lua +++ b/premake/src/actions/vstudio/vs2010_vcxproj.lua @@ -7,7 +7,6 @@ premake.vstudio.vc2010 = { } local vc2010 = premake.vstudio.vc2010 local vstudio = premake.vstudio - local action = premake.action.current() local function vs2010_config(prj) @@ -22,6 +21,7 @@ end local function vs2010_globals(prj) + local action = premake.action.current() _p(1,'') _p(2,'{%s}',prj.uuid) _p(2,'%s',prj.name) @@ -32,6 +32,7 @@ _p(2,'ManagedCProj') else _p(2,'Win32Proj') + _p(2,'%s', action.vstudio.targetPlatform) end _p(1,'') end @@ -158,7 +159,7 @@ end local function precompiled_header(cfg) - if not cfg.flags.NoPCH and cfg.pchheader then + if not cfg.flags.NoPCH and cfg.pchheader then _p(3,'Use') _p(3,'%s', cfg.pchheader) else @@ -230,7 +231,7 @@ end local function floating_point(cfg) - if cfg.flags.FloatFast then + if cfg.flags.FloatFast then _p(3,'Fast') elseif cfg.flags.FloatStrict and not cfg.flags.Managed then _p(3,'Strict') @@ -335,19 +336,19 @@ local function event_hooks(cfg) if #cfg.postbuildcommands> 0 then - _p(2,'') + _p(2,'') _p(3,'%s',premake.esc(table.implode(cfg.postbuildcommands, "", "", "\r\n"))) _p(2,'') end if #cfg.prebuildcommands> 0 then - _p(2,'') + _p(2,'') _p(3,'%s',premake.esc(table.implode(cfg.prebuildcommands, "", "", "\r\n"))) _p(2,'') end if #cfg.prelinkcommands> 0 then - _p(2,'') + _p(2,'') _p(3,'%s',premake.esc(table.implode(cfg.prelinkcommands, "", "", "\r\n"))) _p(2,'') end @@ -368,7 +369,7 @@ end local function item_def_lib(cfg) - -- The Xbox360 project files are stored in another place in the project file. + -- The Xbox360 project files are stored in another place in the project file. if cfg.kind == 'StaticLib' and cfg.platform ~= "Xbox360" then _p(1,'') _p(2,'$(OutDir)%s',cfg.buildtarget.name) diff --git a/premake/src/actions/vstudio/vs2012.lua b/premake/src/actions/vstudio/vs2012.lua index f0f34e4c..d27d22f7 100644 --- a/premake/src/actions/vstudio/vs2012.lua +++ b/premake/src/actions/vstudio/vs2012.lua @@ -52,6 +52,7 @@ vstudio = { solutionVersion = "12", targetFramework = "4.5", + targetPlatform = "", toolsVersion = "4.0", } } diff --git a/premake/src/actions/vstudio/vs2013.lua b/premake/src/actions/vstudio/vs2013.lua index 6d25981e..760f0828 100644 --- a/premake/src/actions/vstudio/vs2013.lua +++ b/premake/src/actions/vstudio/vs2013.lua @@ -7,7 +7,7 @@ premake.vstudio.vc2013 = {} local vc2013 = premake.vstudio.vc2013 local vstudio = premake.vstudio - + --- -- Register a command-line action for Visual Studio 2013. @@ -52,6 +52,7 @@ vstudio = { solutionVersion = "12", targetFramework = "4.5", + targetPlatform = "", toolsVersion = "12.0", } } diff --git a/premake/src/actions/vstudio/vs2015.lua b/premake/src/actions/vstudio/vs2015.lua index 8fa0ca94..f7ed3b69 100644 --- a/premake/src/actions/vstudio/vs2015.lua +++ b/premake/src/actions/vstudio/vs2015.lua @@ -52,6 +52,7 @@ vstudio = { solutionVersion = "12", targetFramework = "4.5.2", + targetPlatform = "10.0.17763.0", toolsVersion = "14.0", } } diff --git a/premake/src/actions/vstudio/vs2017.lua b/premake/src/actions/vstudio/vs2017.lua index 22410118..cc814979 100644 --- a/premake/src/actions/vstudio/vs2017.lua +++ b/premake/src/actions/vstudio/vs2017.lua @@ -52,6 +52,7 @@ vstudio = { solutionVersion = "12", targetFramework = "4.5.2", + targetPlatform = "10.0.17763.0", toolsVersion = "15.0", } } diff --git a/premake/src/actions/vstudio/vs2019.lua b/premake/src/actions/vstudio/vs2019.lua index f8960ba0..198a2f0f 100644 --- a/premake/src/actions/vstudio/vs2019.lua +++ b/premake/src/actions/vstudio/vs2019.lua @@ -52,6 +52,7 @@ vstudio = { solutionVersion = "12", targetFramework = "4.7.2", + targetPlatform = "10.0.17763.0", toolsVersion = "16.0", } } diff --git a/premake/src/host/scripts.c b/premake/src/host/scripts.c index 20e24c8f..d2fd9467 100644 --- a/premake/src/host/scripts.c +++ b/premake/src/host/scripts.c @@ -192,7 +192,7 @@ const char* builtin_scripts[] = { "udio.cleantarget,\nvstudio = {}\n}\nnewaction {\ntrigger = \"vs2005\",\nshortname = \"Visual Studio 2005\",\ndescription = \"Generate Microsoft Visual Studio 2005 project files\",\nos = \"windows\",\nvalid_kinds = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\", \"SharedLib\" },\nvalid_languages = { \"C\", \"C++\", \"C#\" },\nvalid_tools = {\ncc = { \"msc\" },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sln)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.generate)\nend,\nonproject = function(prj)\nif premake.isdotnetproject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio.cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\", vstudio.cs2005.generate_user)\nelse\npremake.generate(prj, \"%%.vcproj\", vstudio.vc200x.generate)\npremake.generate(prj, \"%%.vcproj.user\", vstudio.vc200x.generate_user)\nend\nend,\noncleansolution = vstudio.cleansolution,\noncleanproject = vstudio.cleanproject,\noncleantarget = vstudio.cleantarget,\nvstudio = {\np" "roductVersion = \"8.0.50727\",\nsolutionVersion = \"9\",\n}\n}\nnewaction {\ntrigger = \"vs2008\",\nshortname = \"Visual Studio 2008\",\ndescription = \"Generate Microsoft Visual Studio 2008 project files\",\nos = \"windows\",\nvalid_kinds = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\", \"SharedLib\" },\nvalid_languages = { \"C\", \"C++\", \"C#\" },\nvalid_tools = {\ncc = { \"msc\" },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sln)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.generate)\nend,\nonproject = function(prj)\nif premake.isdotnetproject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio.cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\", vstudio.cs2005.generate_user)\nelse\npremake.generate(prj, \"%%.vcproj\", vstudio.vc200x.generate)\npremake.generate(prj, \"%%.vcproj.user\", vstudio.vc200x.generate_user)\nend\nend,\noncleansolution = vstudio.cleansolution,\noncleanproject = vstudio.cleanproject,\noncleantarget = vstudio" ".cleantarget,\nvstudio = {\nproductVersion = \"9.0.21022\",\nsolutionVersion = \"10\",\ntoolsVersion = \"3.5\",\n}\n}\nnewaction\n{\ntrigger = \"vs2010\",\nshortname = \"Visual Studio 2010\",\ndescription = \"Generate Microsoft Visual Studio 2010 project files\",\nos = \"windows\",\nvalid_kinds = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\", \"SharedLib\" },\nvalid_languages = { \"C\", \"C++\", \"C#\"},\nvalid_tools = {\ncc = { \"msc\" },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sln)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.generate)\nend,\nonproject = function(prj)\nif premake.isdotnetproject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio.cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\", vstudio.cs2005.generate_user)\nelse\npremake.generate(prj, \"%%.vcxproj\", premake.vs2010_vcxproj)\npremake.generate(prj, \"%%.vcxproj.user\", premake.vs2010_vcxproj_user)\npremake.generate(prj, \"%%.vcxproj.filters\", vstudio.vc2010." - "generate_filters)\nend\nend,\noncleansolution = premake.vstudio.cleansolution,\noncleanproject = premake.vstudio.cleanproject,\noncleantarget = premake.vstudio.cleantarget,\nvstudio = {\nproductVersion = \"8.0.30703\",\nsolutionVersion = \"11\",\ntargetFramework = \"4.0\",\ntoolsVersion = \"4.0\",\n}\n}\n", + "generate_filters)\nend\nend,\noncleansolution = premake.vstudio.cleansolution,\noncleanproject = premake.vstudio.cleanproject,\noncleantarget = premake.vstudio.cleantarget,\nvstudio = {\nproductVersion = \"8.0.30703\",\nsolutionVersion = \"11\",\ntargetFramework = \"4.0\",\n targetPlatform = \"10.0.17763.0\",\ntoolsVersion = \"4.0\",\n}\n}\n", /* actions/vstudio/vs2002_solution.lua */ "premake.vstudio.sln2002 = { }\nlocal vstudio = premake.vstudio\nlocal sln2002 = premake.vstudio.sln2002\nfunction sln2002.generate(sln)\nio.indent = nil -- back to default\nio.eol = '\\r\\n'\nsln.vstudio_configs = premake.vstudio.buildconfigs(sln)\n_p('Microsoft Visual Studio Solution File, Format Version 7.00')\nfor prj in premake.solution.eachproject(sln) do\nlocal projpath = path.translate(path.getrelative(sln.location, vstudio.projectfile(prj)))\n_p('Project(\"{%s}\") = \"%s\", \"%s\", \"{%s}\"', vstudio.tool(prj), prj.name, projpath, prj.uuid)\n_p('EndProject')\nend\n_p('Global')\n_p(1,'GlobalSection(SolutionConfiguration) = preSolution')\nfor i, cfgname in ipairs(sln.configurations) do\n_p(2,'ConfigName.%d = %s', i - 1, cfgname)\nend\n_p(1,'EndGlobalSection')\n_p(1,'GlobalSection(ProjectDependencies) = postSolution')\n_p(1,'EndGlobalSection')\n_p(1,'GlobalSection(ProjectConfiguration) = postSolution')\nfor prj in premake.solution.eachproject(sln) do\nfor _, cfgname in ipairs(sln.configurations) do\n_p(2," @@ -257,24 +257,24 @@ const char* builtin_scripts[] = { "local cs2005 = premake.vstudio.cs2005\nfunction cs2005.generate_user(prj)\nio.eol = \"\\r\\n\"\n_p('')\n_p(' ')\nlocal refpaths = table.translate(prj.libdirs, function(v) return path.getabsolute(prj.location .. \"/\" .. v) end)\n_p(' %s', path.translate(table.concat(refpaths, \";\"), \"\\\\\"))\n_p(' ')\n_p('')\nend\n", /* actions/vstudio/vs2010_vcxproj.lua */ - "premake.vstudio.vc2010 = { }\nlocal vc2010 = premake.vstudio.vc2010\nlocal vstudio = premake.vstudio\nlocal action = premake.action.current()\nlocal function vs2010_config(prj)\n_p(1,'')\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\n_p(2,'', premake.esc(cfginfo.name))\n_p(3,'%s',cfginfo.buildcfg)\n_p(3,'%s',cfginfo.platform)\n_p(2,'')\nend\n_p(1,'')\nend\nlocal function vs2010_globals(prj)\n_p(1,'')\n_p(2,'{%s}',prj.uuid)\n_p(2,'%s',prj.name)\nif prj.flags and prj.flags.Managed then\n_p(2,'v%s', action.vstudio.targetFramework)\n_p(2,'ManagedCProj')\nelse\n_p(2,'Win32Proj')\nend\n_p(1,'')\nend\nfunction vc2010.config_type(config)\nlocal t =\n{" - "\nSharedLib = \"DynamicLibrary\",\nStaticLib = \"StaticLibrary\",\nConsoleApp = \"Application\",\nWindowedApp = \"Application\"\n}\nreturn t[config.kind]\nend\nlocal function if_config_and_platform()\nreturn 'Condition=\"\\'$(Configuration)|$(Platform)\\'==\\'%s\\'\"'\nend\nlocal function optimisation(cfg)\nlocal result = \"Disabled\"\nfor _, value in ipairs(cfg.flags) do\nif (value == \"Optimize\") then\nresult = \"Full\"\nelseif (value == \"OptimizeSize\") then\nresult = \"MinSpace\"\nelseif (value == \"OptimizeSpeed\") then\nresult = \"MaxSpeed\"\nend\nend\nreturn result\nend\nfunction vc2010.configurationPropertyGroup(cfg, cfginfo)\n_p(1,''\n, premake.esc(cfginfo.name))\n_p(2,'%s',vc2010.config_type(cfg))\n_p(2,'%s', iif(optimisation(cfg) == \"Disabled\",\"true\",\"false\"))\n_p(2,'%s',iif(cfg.flags.Unicode,\"Unicode\",\"MultiByte" - "\"))\nlocal toolsets = { vs2012 = \"v110\", vs2013 = \"v120\", vs2015 = \"v140\", vs2017 = \"v141\", vs2019 = \"v142\" }\nlocal toolset = toolsets[_ACTION]\nif toolset then\n_p(2,'%s', toolset)\nend\nif cfg.flags.MFC then\n_p(2,'%s', iif(cfg.flags.StaticRuntime, \"Static\", \"Dynamic\"))\nend\nif cfg.flags.ATL or cfg.flags.StaticATL then\n_p(2,'%s', iif(cfg.flags.StaticATL, \"Static\", \"Dynamic\"))\nend\nif cfg.flags.Managed then\n_p(2,'true')\nend\n_p(1,'')\nend\nlocal function import_props(prj)\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\n_p(1,''\n,premake.esc(cfginfo.name))\n_p(2,'')\n_p(1,'')\nend\nend\nfunction vc2010.outputProperties(prj)\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\nlocal target = cfg.buildtarget\n_p(1,'', premake.esc(cfginfo.name))\n_p(2,'%s\\\\', premake.esc(target.directory))\nif cfg.platform == \"Xbox360\" then\n_p(2,'$(OutDir)%s', premake.esc(target.name))\nend\n_p(2,'%s\\\\', premake.esc(cfg.objectsdir))\n_p(2,'%s', premake.esc(path.getbasename(target.name)))\n_p(2,'%s', premake.esc(path.getextension(target.name)))\nif cfg.kind == \"SharedLib\" then\nlocal ignore = (cfg.flags.NoImportLib ~= nil)\n _p(2,'%s', tostring(ignore))\nend\nif cfg.kind ~= \"StaticLib\" then\n_p(2,'%s', tostring(" - "premake.config.isincrementallink(cfg)))\nend\nif cfg.flags.NoManifest then\n_p(2,'false')\nend\n_p(1,'')\nend\nend\nlocal function runtime(cfg)\nlocal runtime\nlocal flags = cfg.flags\nif premake.config.isdebugbuild(cfg) then\nruntime = iif(flags.StaticRuntime and not flags.Managed, \"MultiThreadedDebug\", \"MultiThreadedDebugDLL\")\nelse\nruntime = iif(flags.StaticRuntime and not flags.Managed, \"MultiThreaded\", \"MultiThreadedDLL\")\nend\nreturn runtime\nend\nlocal function precompiled_header(cfg)\n if not cfg.flags.NoPCH and cfg.pchheader then\n_p(3,'Use')\n_p(3,'%s', cfg.pchheader)\nelse\n_p(3,'')\nend\nend\nlocal function preprocessor(indent,cfg)\nif #cfg.defines > 0 then\n_p(indent,'%s;%%(PreprocessorDefinitions)'\n,premake.esc(table.concat(cfg.defines, \";\")))\nelse\n_p(i" - "ndent,'')\nend\nend\nlocal function include_dirs(indent,cfg)\nif #cfg.includedirs > 0 then\n_p(indent,'%s;%%(AdditionalIncludeDirectories)'\n,premake.esc(path.translate(table.concat(cfg.includedirs, \";\"), '\\\\')))\nend\nend\nlocal function resinclude_dirs(indent,cfg)\nif #cfg.includedirs > 0 or #cfg.resincludedirs > 0 then\nlocal dirs = table.join(cfg.includedirs, cfg.resincludedirs)\n_p(indent,'%s;%%(AdditionalIncludeDirectories)'\n,premake.esc(path.translate(table.concat(dirs, \";\"), '\\\\')))\nend\nend\nlocal function resource_compile(cfg)\n_p(2,'')\npreprocessor(3,cfg)\nresinclude_dirs(3,cfg)\n_p(2,'')\nend\nlocal function exceptions(cfg)\nif cfg.flags.NoExceptions then\n_p(3,'false')\nelseif cfg.flags.SEH then\n_p(3,'Async')\nend\nend\nlocal function rtti(cfg)\nif cfg.flags.NoRTTI and not cfg.flags.Managed then\n_p(3,'false')\nend\nend\nlocal function wchar_t_buildin(cfg)\nif cfg.flags.NativeWChar then\n_p(3,'true')\nelseif cfg.flags.NoNativeWChar then\n_p(3,'false')\nend\nend\nlocal function sse(cfg)\nif cfg.flags.EnableSSE then\n_p(3,'StreamingSIMDExtensions')\nelseif cfg.flags.EnableSSE2 then\n_p(3,'StreamingSIMDExtensions2')\nend\nend\nlocal function floating_point(cfg)\n if cfg.flags.FloatFast then\n_p(3,'Fast')\nelseif cfg.flags.FloatStrict and not cfg.flags.Managed then\n_p(3,'Strict')\nend\nend\nlocal function debug_info(cfg)\nlocal debug_info = ''\nif cfg.flags.Symbols t" - "hen\nif cfg.platform == \"x64\"\nor cfg.flags.Managed\nor premake.config.isoptimizedbuild(cfg.flags)\nor cfg.flags.NoEditAndContinue\nthen\ndebug_info = \"ProgramDatabase\"\nelse\ndebug_info = \"EditAndContinue\"\nend\nend\n_p(3,'%s',debug_info)\nend\nlocal function minimal_build(cfg)\nif premake.config.isdebugbuild(cfg) and not cfg.flags.NoMinimalRebuild then\n_p(3,'true')\nelse\n_p(3,'false')\nend\nend\nlocal function compile_language(cfg)\nif cfg.language == \"C++\" then\n_p(3,'CompileAsCpp')\nend\nend\nlocal function vs10_clcompile(cfg)\n_p(2,'')\nif #cfg.buildoptions > 0 then\n_p(3,'%s %%(AdditionalOptions)',\ntable.concat(premake.esc(cfg.buildoptions), \" \"))\nend\n_p(3,'%s',optimisation(cfg))\ninclude_dirs(3,cfg)\npreprocessor(3,cfg)\nminimal_build(cfg)\nif not premake.config.isoptimizedb" - "uild(cfg.flags) then\nif not cfg.flags.Managed then\n_p(3,'EnableFastChecks')\nend\nif cfg.flags.ExtraWarnings then\n_p(3,'true')\nend\nelse\n_p(3,'true')\nend\n_p(3,'%s', runtime(cfg))\n_p(3,'true')\nprecompiled_header(cfg)\nif cfg.flags.ExtraWarnings then\n_p(3,'Level4')\nelse\n_p(3,'Level3')\nend\nif cfg.flags.FatalWarnings then\n_p(3,'true')\nend\nexceptions(cfg)\nrtti(cfg)\nwchar_t_buildin(cfg)\nsse(cfg)\nfloating_point(cfg)\ndebug_info(cfg)\nif cfg.flags.NoFramePointer then\n_p(3,'true')\nend\ncompile_language(cfg)\n_p(2,'')\nend\nlocal function event_hooks(cfg)\nif #cfg.postbuildcommands> 0 then\n _p(2,'')\n_p(3,'%s',premake.esc(tabl" - "e.implode(cfg.postbuildcommands, \"\", \"\", \"\\r\\n\")))\n_p(2,'')\nend\nif #cfg.prebuildcommands> 0 then\n _p(2,'')\n_p(3,'%s',premake.esc(table.implode(cfg.prebuildcommands, \"\", \"\", \"\\r\\n\")))\n_p(2,'')\nend\nif #cfg.prelinkcommands> 0 then\n _p(2,'')\n_p(3,'%s',premake.esc(table.implode(cfg.prelinkcommands, \"\", \"\", \"\\r\\n\")))\n_p(2,'')\nend\nend\nlocal function additional_options(indent,cfg)\nif #cfg.linkoptions > 0 then\n_p(indent,'%s %%(AdditionalOptions)',\ntable.concat(premake.esc(cfg.linkoptions), \" \"))\nend\nend\nlocal function link_target_machine(index,cfg)\nlocal platforms = {x32 = 'MachineX86', x64 = 'MachineX64'}\nif platforms[cfg.platform] then\n_p(index,'%s', platforms[cfg.platform])\nend\nend\nlocal function item_def_lib(cfg)\n -- The Xbox360 project files are stored in another place" - " in the project file.\nif cfg.kind == 'StaticLib' and cfg.platform ~= \"Xbox360\" then\n_p(1,'')\n_p(2,'$(OutDir)%s',cfg.buildtarget.name)\nadditional_options(2,cfg)\nlink_target_machine(2,cfg)\n_p(1,'')\nend\nend\nlocal function import_lib(cfg)\nif cfg.kind == \"SharedLib\" then\nlocal implibname = cfg.linktarget.fullpath\n_p(3,'%s',iif(cfg.flags.NoImportLib, cfg.objectsdir .. \"\\\\\" .. path.getname(implibname), implibname))\nelseif cfg.kind == \"ConsoleApp\" or cfg.kind == \"WindowedApp\" then\nif cfg[\"implibname\"] then\nlocal implibname = cfg.linktarget.fullpath\n_p(3,'%s',iif(cfg.flags.NoImportLib, cfg.objectsdir .. \"\\\\\" .. path.getname(implibname), implibname))\nend\nend\nend\nfunction vc2010.link(cfg)\n_p(2,'')\n_p(3,'%s', iif(cfg.kind == \"ConsoleApp\", \"Console\", \"Windows\"))\n_p(3,'%s', tostring(cfg.flags.Symbols " - "~= nil))\nif premake.config.isoptimizedbuild(cfg.flags) then\n_p(3,'true')\n_p(3,'true')\nend\nif cfg.kind ~= 'StaticLib' then\nvc2010.additionalDependencies(cfg)\n_p(3,'$(OutDir)%s', cfg.buildtarget.name)\nif #cfg.libdirs > 0 then\n_p(3,'%s;%%(AdditionalLibraryDirectories)',\npremake.esc(path.translate(table.concat(cfg.libdirs, ';'), '\\\\')))\nend\nif vc2010.config_type(cfg) == 'Application' and not cfg.flags.WinMain and not cfg.flags.Managed then\n_p(3,'mainCRTStartup')\nend\nimport_lib(cfg)\nlocal deffile = premake.findfile(cfg, \".def\")\nif deffile then\n_p(3,'%s', deffile)\nend\nlink_target_machine(3,cfg)\nadditional_options(3,cfg)\nend\n_p(2,'')\nend\nfunction vc2010.additionalDependencies(cfg)\nlocal links = premake.getlinks(cfg, \"system\", \"ful" - "lpath\")\nif #links > 0 then\n_p(3,'%s;%%(AdditionalDependencies)',\ntable.concat(links, \";\"))\nend\nend\nlocal function item_definitions(prj)\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\n_p(1,''\n,premake.esc(cfginfo.name))\nvs10_clcompile(cfg)\nresource_compile(cfg)\nitem_def_lib(cfg)\nvc2010.link(cfg)\nevent_hooks(cfg)\n_p(1,'')\nend\nend\nfunction vc2010.getfilegroup(prj, group)\nlocal sortedfiles = prj.vc2010sortedfiles\nif not sortedfiles then\nsortedfiles = {\nClCompile = {},\nClInclude = {},\nNone = {},\nResourceCompile = {},\n}\nfor file in premake.project.eachfile(prj) do\nif path.iscppfile(file.name) then\ntable.insert(sortedfiles.ClCompile, file)\nelseif path.iscppheader(file.name) then\ntable.insert(sortedfiles.ClInclude, file)\nelseif path.isresourcefile(file.name) then\ntable.i" - "nsert(sortedfiles.ResourceCompile, file)\nelse\ntable.insert(sortedfiles.None, file)\nend\nend\nprj.vc2010sortedfiles = sortedfiles\nend\nreturn sortedfiles[group]\nend\nfunction vc2010.files(prj)\nvc2010.simplefilesgroup(prj, \"ClInclude\")\nvc2010.compilerfilesgroup(prj)\nvc2010.simplefilesgroup(prj, \"None\")\nvc2010.simplefilesgroup(prj, \"ResourceCompile\")\nend\nfunction vc2010.simplefilesgroup(prj, section)\nlocal files = vc2010.getfilegroup(prj, section)\nif #files > 0 then\n_p(1,'')\nfor _, file in ipairs(files) do\n_p(2,'<%s Include=\\\"%s\\\" />', section, path.translate(file.name, \"\\\\\"))\nend\n_p(1,'')\nend\nend\nfunction vc2010.compilerfilesgroup(prj)\nlocal configs = prj.solution.vstudio_configs\nlocal files = vc2010.getfilegroup(prj, \"ClCompile\")\nif #files > 0 then\nlocal config_mappings = {}\nfor _, cfginfo in ipairs(configs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\nif cfg.pchheader and cfg.pchsource and not cfg.flags.No" - "PCH then\nconfig_mappings[cfginfo] = path.translate(cfg.pchsource, \"\\\\\")\nend\nend\n_p(1,'')\nfor _, file in ipairs(files) do\nlocal translatedpath = path.translate(file.name, \"\\\\\")\n_p(2,'', translatedpath)\nfor _, cfginfo in ipairs(configs) do\nif config_mappings[cfginfo] and translatedpath == config_mappings[cfginfo] then\n_p(3,'Create', premake.esc(cfginfo.name))\nconfig_mappings[cfginfo] = nil --only one source file per pch\nend\nend\n_p(2,'')\nend\n_p(1,'')\nend\nend\nfunction vc2010.header(targets)\nio.eol = \"\\r\\n\"\n_p('')\nlocal action = premake.action.current()\nlocal t = \"\"\nif targets then\nt = ' DefaultTargets=\"' .. targets .. '\"'\nend\n_p('', t, action.vstudio.toolsVersion)\nend\nfunction premake.vs2010_vcxproj(p" - "rj)\nio.indent = \" \"\nvc2010.header(\"Build\")\nvs2010_config(prj)\nvs2010_globals(prj)\n_p(1,'')\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\nvc2010.configurationPropertyGroup(cfg, cfginfo)\nend\n_p(1,'')\n_p(1,'')\n_p(1,'')\nimport_props(prj)\n_p(1,'')\nvc2010.outputProperties(prj)\nitem_definitions(prj)\nvc2010.files(prj)\nvc2010.projectReferences(prj)\n_p(1,'')\n_p(1,'')\n_p(1,'')\n_p('')\nend\nfunction vc2010.projectReferences(prj)\nlocal deps = premake.getdependencies(prj)\nif #deps > 0 then\n_p(1,'')\nfor _, dep in ipairs(deps) do\nlocal deppath = pa" - "th.getrelative(prj.location, vstudio.projectfile(dep))\n_p(2,'', path.translate(deppath, \"\\\\\"))\n_p(3,'{%s}', dep.uuid)\n_p(2,'')\nend\n_p(1,'')\nend\nend\nfunction vc2010.debugdir(cfg)\nif cfg.debugdir then\n_p(' %s', path.translate(cfg.debugdir, '\\\\'))\n_p(' WindowsLocalDebugger')\nend\nif cfg.debugargs then\n_p(' %s', table.concat(cfg.debugargs, \" \"))\nend\nend\nfunction vc2010.debugenvs(cfg)\nif cfg.debugenvs and #cfg.debugenvs > 0 then\n_p(2,'%s%s',table.concat(cfg.debugenvs, \"\\n\")\n,iif(cfg.flags.DebugEnvsInherit,'\\n$(LocalDebuggerEnvironment)','')\n)\nif cfg.flags.DebugEnvsDontMerge then\n_p(2,'false')\nend\nend\nend\nfunction " - "premake.vs2010_vcxproj_user(prj)\nio.indent = \" \"\nvc2010.header()\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\n_p(' ', premake.esc(cfginfo.name))\nvc2010.debugdir(cfg)\nvc2010.debugenvs(cfg)\n_p(' ')\nend\n_p('')\nend\n", + "premake.vstudio.vc2010 = { }\nlocal vc2010 = premake.vstudio.vc2010\nlocal vstudio = premake.vstudio\nlocal function vs2010_config(prj)\n_p(1,'')\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\n_p(2,'', premake.esc(cfginfo.name))\n_p(3,'%s',cfginfo.buildcfg)\n_p(3,'%s',cfginfo.platform)\n_p(2,'')\nend\n_p(1,'')\nend\nlocal function vs2010_globals(prj)\n local action = premake.action.current()\n_p(1,'')\n_p(2,'{%s}',prj.uuid)\n_p(2,'%s',prj.name)\nif prj.flags and prj.flags.Managed then\n_p(2,'v%s', action.vstudio.targetFramework)\n_p(2,'ManagedCProj')\nelse\n_p(2,'Win32Proj')\n _p(2,'%s', act" + "ion.vstudio.targetPlatform)\nend\n_p(1,'')\nend\nfunction vc2010.config_type(config)\nlocal t =\n{\nSharedLib = \"DynamicLibrary\",\nStaticLib = \"StaticLibrary\",\nConsoleApp = \"Application\",\nWindowedApp = \"Application\"\n}\nreturn t[config.kind]\nend\nlocal function if_config_and_platform()\nreturn 'Condition=\"\\'$(Configuration)|$(Platform)\\'==\\'%s\\'\"'\nend\nlocal function optimisation(cfg)\nlocal result = \"Disabled\"\nfor _, value in ipairs(cfg.flags) do\nif (value == \"Optimize\") then\nresult = \"Full\"\nelseif (value == \"OptimizeSize\") then\nresult = \"MinSpace\"\nelseif (value == \"OptimizeSpeed\") then\nresult = \"MaxSpeed\"\nend\nend\nreturn result\nend\nfunction vc2010.configurationPropertyGroup(cfg, cfginfo)\n_p(1,''\n, premake.esc(cfginfo.name))\n_p(2,'%s',vc2010.config_type(cfg))\n_p(2,'%s', iif(optimisation(cfg) == \"Disa" + "bled\",\"true\",\"false\"))\n_p(2,'%s',iif(cfg.flags.Unicode,\"Unicode\",\"MultiByte\"))\nlocal toolsets = { vs2012 = \"v110\", vs2013 = \"v120\", vs2015 = \"v140\", vs2017 = \"v141\", vs2019 = \"v142\" }\nlocal toolset = toolsets[_ACTION]\nif toolset then\n_p(2,'%s', toolset)\nend\nif cfg.flags.MFC then\n_p(2,'%s', iif(cfg.flags.StaticRuntime, \"Static\", \"Dynamic\"))\nend\nif cfg.flags.ATL or cfg.flags.StaticATL then\n_p(2,'%s', iif(cfg.flags.StaticATL, \"Static\", \"Dynamic\"))\nend\nif cfg.flags.Managed then\n_p(2,'true')\nend\n_p(1,'')\nend\nlocal function import_props(prj)\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\n_p(1,''\n,premake.esc(cfginfo.name))\n_p(2,'')\n_p(1,'')\nend\nend\nfunction vc2010.outputProperties(prj)\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\nlocal target = cfg.buildtarget\n_p(1,'', premake.esc(cfginfo.name))\n_p(2,'%s\\\\', premake.esc(target.directory))\nif cfg.platform == \"Xbox360\" then\n_p(2,'$(OutDir)%s', premake.esc(target.name))\nend\n_p(2,'%s\\\\', premake.esc(cfg.objectsdir))\n_p(2,'%s', premake.esc(path.getbasename(target.name)))\n_p(2,'%s', premake.esc(path.getextension(target.name)))\nif cfg.kind == \"SharedLib\" then\nlocal ignore = (cfg.flags.NoImportLib ~= nil)\n _p(2,'%s', t" + "ostring(ignore))\nend\nif cfg.kind ~= \"StaticLib\" then\n_p(2,'%s', tostring(premake.config.isincrementallink(cfg)))\nend\nif cfg.flags.NoManifest then\n_p(2,'false')\nend\n_p(1,'')\nend\nend\nlocal function runtime(cfg)\nlocal runtime\nlocal flags = cfg.flags\nif premake.config.isdebugbuild(cfg) then\nruntime = iif(flags.StaticRuntime and not flags.Managed, \"MultiThreadedDebug\", \"MultiThreadedDebugDLL\")\nelse\nruntime = iif(flags.StaticRuntime and not flags.Managed, \"MultiThreaded\", \"MultiThreadedDLL\")\nend\nreturn runtime\nend\nlocal function precompiled_header(cfg)\n if not cfg.flags.NoPCH and cfg.pchheader then\n_p(3,'Use')\n_p(3,'%s', cfg.pchheader)\nelse\n_p(3,'')\nend\nend\nlocal function preprocessor(indent,cfg)\nif #cfg.defines > 0 then\n_p(indent,'%s;%%" + "(PreprocessorDefinitions)'\n,premake.esc(table.concat(cfg.defines, \";\")))\nelse\n_p(indent,'')\nend\nend\nlocal function include_dirs(indent,cfg)\nif #cfg.includedirs > 0 then\n_p(indent,'%s;%%(AdditionalIncludeDirectories)'\n,premake.esc(path.translate(table.concat(cfg.includedirs, \";\"), '\\\\')))\nend\nend\nlocal function resinclude_dirs(indent,cfg)\nif #cfg.includedirs > 0 or #cfg.resincludedirs > 0 then\nlocal dirs = table.join(cfg.includedirs, cfg.resincludedirs)\n_p(indent,'%s;%%(AdditionalIncludeDirectories)'\n,premake.esc(path.translate(table.concat(dirs, \";\"), '\\\\')))\nend\nend\nlocal function resource_compile(cfg)\n_p(2,'')\npreprocessor(3,cfg)\nresinclude_dirs(3,cfg)\n_p(2,'')\nend\nlocal function exceptions(cfg)\nif cfg.flags.NoExceptions then\n_p(3,'false')\nelseif cfg.flags.SEH then\n_p(3,'Async')\nend\nend\nlocal function rtti(cfg)\nif cfg.flags.NoRTTI and not cfg.flags.Managed then\n_p(3,'false')\nend\nend\nlocal function wchar_t_buildin(cfg)\nif cfg.flags.NativeWChar then\n_p(3,'true')\nelseif cfg.flags.NoNativeWChar then\n_p(3,'false')\nend\nend\nlocal function sse(cfg)\nif cfg.flags.EnableSSE then\n_p(3,'StreamingSIMDExtensions')\nelseif cfg.flags.EnableSSE2 then\n_p(3,'StreamingSIMDExtensions2')\nend\nend\nlocal function floating_point(cfg)\n if cfg.flags.FloatFast then\n_p(3,'Fast')\nelseif cfg.flags.FloatStrict and not cfg.flags.Managed then\n_p(3,'Stric" + "t')\nend\nend\nlocal function debug_info(cfg)\nlocal debug_info = ''\nif cfg.flags.Symbols then\nif cfg.platform == \"x64\"\nor cfg.flags.Managed\nor premake.config.isoptimizedbuild(cfg.flags)\nor cfg.flags.NoEditAndContinue\nthen\ndebug_info = \"ProgramDatabase\"\nelse\ndebug_info = \"EditAndContinue\"\nend\nend\n_p(3,'%s',debug_info)\nend\nlocal function minimal_build(cfg)\nif premake.config.isdebugbuild(cfg) and not cfg.flags.NoMinimalRebuild then\n_p(3,'true')\nelse\n_p(3,'false')\nend\nend\nlocal function compile_language(cfg)\nif cfg.language == \"C++\" then\n_p(3,'CompileAsCpp')\nend\nend\nlocal function vs10_clcompile(cfg)\n_p(2,'')\nif #cfg.buildoptions > 0 then\n_p(3,'%s %%(AdditionalOptions)',\ntable.concat(premake.esc(cfg.buildoptions), \" \"))\nend\n_p(3,'%s',opti" + "misation(cfg))\ninclude_dirs(3,cfg)\npreprocessor(3,cfg)\nminimal_build(cfg)\nif not premake.config.isoptimizedbuild(cfg.flags) then\nif not cfg.flags.Managed then\n_p(3,'EnableFastChecks')\nend\nif cfg.flags.ExtraWarnings then\n_p(3,'true')\nend\nelse\n_p(3,'true')\nend\n_p(3,'%s', runtime(cfg))\n_p(3,'true')\nprecompiled_header(cfg)\nif cfg.flags.ExtraWarnings then\n_p(3,'Level4')\nelse\n_p(3,'Level3')\nend\nif cfg.flags.FatalWarnings then\n_p(3,'true')\nend\nexceptions(cfg)\nrtti(cfg)\nwchar_t_buildin(cfg)\nsse(cfg)\nfloating_point(cfg)\ndebug_info(cfg)\nif cfg.flags.NoFramePointer then\n_p(3,'true')\nend\ncompile_language(cfg)\n_p(2,'')\nend\nlocal function event_hooks(cfg" + ")\nif #cfg.postbuildcommands> 0 then\n _p(2,'')\n_p(3,'%s',premake.esc(table.implode(cfg.postbuildcommands, \"\", \"\", \"\\r\\n\")))\n_p(2,'')\nend\nif #cfg.prebuildcommands> 0 then\n _p(2,'')\n_p(3,'%s',premake.esc(table.implode(cfg.prebuildcommands, \"\", \"\", \"\\r\\n\")))\n_p(2,'')\nend\nif #cfg.prelinkcommands> 0 then\n _p(2,'')\n_p(3,'%s',premake.esc(table.implode(cfg.prelinkcommands, \"\", \"\", \"\\r\\n\")))\n_p(2,'')\nend\nend\nlocal function additional_options(indent,cfg)\nif #cfg.linkoptions > 0 then\n_p(indent,'%s %%(AdditionalOptions)',\ntable.concat(premake.esc(cfg.linkoptions), \" \"))\nend\nend\nlocal function link_target_machine(index,cfg)\nlocal platforms = {x32 = 'MachineX86', x64 = 'MachineX64'}\nif platforms[cfg.platform] then\n_p(index,'%s', platforms[cfg.platfo" + "rm])\nend\nend\nlocal function item_def_lib(cfg)\n -- The Xbox360 project files are stored in another place in the project file.\nif cfg.kind == 'StaticLib' and cfg.platform ~= \"Xbox360\" then\n_p(1,'')\n_p(2,'$(OutDir)%s',cfg.buildtarget.name)\nadditional_options(2,cfg)\nlink_target_machine(2,cfg)\n_p(1,'')\nend\nend\nlocal function import_lib(cfg)\nif cfg.kind == \"SharedLib\" then\nlocal implibname = cfg.linktarget.fullpath\n_p(3,'%s',iif(cfg.flags.NoImportLib, cfg.objectsdir .. \"\\\\\" .. path.getname(implibname), implibname))\nelseif cfg.kind == \"ConsoleApp\" or cfg.kind == \"WindowedApp\" then\nif cfg[\"implibname\"] then\nlocal implibname = cfg.linktarget.fullpath\n_p(3,'%s',iif(cfg.flags.NoImportLib, cfg.objectsdir .. \"\\\\\" .. path.getname(implibname), implibname))\nend\nend\nend\nfunction vc2010.link(cfg)\n_p(2,'')\n_p(3,'%s', iif(cfg.kind == \"ConsoleApp\", \"Cons" + "ole\", \"Windows\"))\n_p(3,'%s', tostring(cfg.flags.Symbols ~= nil))\nif premake.config.isoptimizedbuild(cfg.flags) then\n_p(3,'true')\n_p(3,'true')\nend\nif cfg.kind ~= 'StaticLib' then\nvc2010.additionalDependencies(cfg)\n_p(3,'$(OutDir)%s', cfg.buildtarget.name)\nif #cfg.libdirs > 0 then\n_p(3,'%s;%%(AdditionalLibraryDirectories)',\npremake.esc(path.translate(table.concat(cfg.libdirs, ';'), '\\\\')))\nend\nif vc2010.config_type(cfg) == 'Application' and not cfg.flags.WinMain and not cfg.flags.Managed then\n_p(3,'mainCRTStartup')\nend\nimport_lib(cfg)\nlocal deffile = premake.findfile(cfg, \".def\")\nif deffile then\n_p(3,'%s', deffile)\nend\nlink_target_machine(3,cfg)\nadditional_options(3,cfg)\nend\n_p(2,'<" + "/Link>')\nend\nfunction vc2010.additionalDependencies(cfg)\nlocal links = premake.getlinks(cfg, \"system\", \"fullpath\")\nif #links > 0 then\n_p(3,'%s;%%(AdditionalDependencies)',\ntable.concat(links, \";\"))\nend\nend\nlocal function item_definitions(prj)\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\n_p(1,''\n,premake.esc(cfginfo.name))\nvs10_clcompile(cfg)\nresource_compile(cfg)\nitem_def_lib(cfg)\nvc2010.link(cfg)\nevent_hooks(cfg)\n_p(1,'')\nend\nend\nfunction vc2010.getfilegroup(prj, group)\nlocal sortedfiles = prj.vc2010sortedfiles\nif not sortedfiles then\nsortedfiles = {\nClCompile = {},\nClInclude = {},\nNone = {},\nResourceCompile = {},\n}\nfor file in premake.project.eachfile(prj) do\nif path.iscppfile(file.name) then\ntable.insert(sortedfiles.ClCompile, file)\nelseif path.iscppheade" + "r(file.name) then\ntable.insert(sortedfiles.ClInclude, file)\nelseif path.isresourcefile(file.name) then\ntable.insert(sortedfiles.ResourceCompile, file)\nelse\ntable.insert(sortedfiles.None, file)\nend\nend\nprj.vc2010sortedfiles = sortedfiles\nend\nreturn sortedfiles[group]\nend\nfunction vc2010.files(prj)\nvc2010.simplefilesgroup(prj, \"ClInclude\")\nvc2010.compilerfilesgroup(prj)\nvc2010.simplefilesgroup(prj, \"None\")\nvc2010.simplefilesgroup(prj, \"ResourceCompile\")\nend\nfunction vc2010.simplefilesgroup(prj, section)\nlocal files = vc2010.getfilegroup(prj, section)\nif #files > 0 then\n_p(1,'')\nfor _, file in ipairs(files) do\n_p(2,'<%s Include=\\\"%s\\\" />', section, path.translate(file.name, \"\\\\\"))\nend\n_p(1,'')\nend\nend\nfunction vc2010.compilerfilesgroup(prj)\nlocal configs = prj.solution.vstudio_configs\nlocal files = vc2010.getfilegroup(prj, \"ClCompile\")\nif #files > 0 then\nlocal config_mappings = {}\nfor _, cfginfo in ipairs(configs) do\nlocal cfg = premake.ge" + "tconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\nif cfg.pchheader and cfg.pchsource and not cfg.flags.NoPCH then\nconfig_mappings[cfginfo] = path.translate(cfg.pchsource, \"\\\\\")\nend\nend\n_p(1,'')\nfor _, file in ipairs(files) do\nlocal translatedpath = path.translate(file.name, \"\\\\\")\n_p(2,'', translatedpath)\nfor _, cfginfo in ipairs(configs) do\nif config_mappings[cfginfo] and translatedpath == config_mappings[cfginfo] then\n_p(3,'Create', premake.esc(cfginfo.name))\nconfig_mappings[cfginfo] = nil --only one source file per pch\nend\nend\n_p(2,'')\nend\n_p(1,'')\nend\nend\nfunction vc2010.header(targets)\nio.eol = \"\\r\\n\"\n_p('')\nlocal action = premake.action.current()\nlocal t = \"\"\nif targets then\nt = ' DefaultTargets=\"' .. targets .. '\"'\nend\n_p('', t, action.vstudio.toolsVersion)\nend\nfunction premake.vs2010_vcxproj(prj)\nio.indent = \" \"\nvc2010.header(\"Build\")\nvs2010_config(prj)\nvs2010_globals(prj)\n_p(1,'')\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\nvc2010.configurationPropertyGroup(cfg, cfginfo)\nend\n_p(1,'')\n_p(1,'')\n_p(1,'')\nimport_props(prj)\n_p(1,'')\nvc2010.outputProperties(prj)\nitem_definitions(prj)\nvc2010.files(prj)\nvc2010.projectReferences(prj)\n_p(1,'')\n_p(1,'')\n_p(1,'')\n_p('')\nend\nfunction vc2010.projectReferences(prj)\nlocal deps = premak" + "e.getdependencies(prj)\nif #deps > 0 then\n_p(1,'')\nfor _, dep in ipairs(deps) do\nlocal deppath = path.getrelative(prj.location, vstudio.projectfile(dep))\n_p(2,'', path.translate(deppath, \"\\\\\"))\n_p(3,'{%s}', dep.uuid)\n_p(2,'')\nend\n_p(1,'')\nend\nend\nfunction vc2010.debugdir(cfg)\nif cfg.debugdir then\n_p(' %s', path.translate(cfg.debugdir, '\\\\'))\n_p(' WindowsLocalDebugger')\nend\nif cfg.debugargs then\n_p(' %s', table.concat(cfg.debugargs, \" \"))\nend\nend\nfunction vc2010.debugenvs(cfg)\nif cfg.debugenvs and #cfg.debugenvs > 0 then\n_p(2,'%s%s',table.concat(cfg.debugenvs, \"\\n\")\n,iif(cfg.flags.DebugEnvsInherit,'\\n$(LocalDebuggerEnvironment)','')\n)\nif cfg.flags.DebugEnvsDontM" + "erge then\n_p(2,'false')\nend\nend\nend\nfunction premake.vs2010_vcxproj_user(prj)\nio.indent = \" \"\nvc2010.header()\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platform)\n_p(' ', premake.esc(cfginfo.name))\nvc2010.debugdir(cfg)\nvc2010.debugenvs(cfg)\n_p(' ')\nend\n_p('')\nend\n", /* actions/vstudio/vs2010_vcxproj_filters.lua */ "local vc2010 = premake.vstudio.vc2010\nlocal project = premake.project\nfunction vc2010.filteridgroup(prj)\nlocal filters = { }\nlocal filterfound = false\nfor file in project.eachfile(prj) do\nlocal folders = string.explode(file.vpath, \"/\", true)\nlocal path = \"\"\nfor i = 1, #folders - 1 do\nif not filterfound then\nfilterfound = true\n_p(1,'')\nend\npath = path .. folders[i]\nif not filters[path] then\nfilters[path] = true\n_p(2, '', path)\n_p(3, '{%s}', os.uuid())\n_p(2, '')\nend\npath = path .. \"\\\\\"\nend\nend\nif filterfound then\n_p(1,'')\nend\nend\nfunction vc2010.filefiltergroup(prj, section)\nlocal files = vc2010.getfilegroup(prj, section)\nif #files > 0 then\n_p(1,'')\nfor _, file in ipairs(files) do\nlocal filter\nif file.name ~= file.vpath then\nfilter = path.getdirectory(file.vpath)\nelse\nfilter = path.getdirectory(file.name)\nend\nif filter ~= \".\" then\n_p(2,'<%s Include=\\\"%s\\\">', " @@ -282,23 +282,23 @@ const char* builtin_scripts[] = { /* actions/vstudio/vs2012.lua */ "premake.vstudio.vc2012 = {}\nlocal vc2012 = premake.vstudio.vc2012\nlocal vstudio = premake.vstudio\nnewaction\n{\ntrigger = \"vs2012\",\nshortname = \"Visual Studio 2012\",\ndescription = \"Generate Microsoft Visual Studio 2012 project files\",\nos = \"windows\",\nvalid_kinds = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\", \"SharedLib\" },\nvalid_languages = { \"C\", \"C++\", \"C#\"},\nvalid_tools = {\ncc = { \"msc\" },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sln)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.generate)\nend,\nonproject = function(prj)\nif premake.isdotnetproject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio.cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\", vstudio.cs2005.generate_user)\nelse\npremake.generate(prj, \"%%.vcxproj\", premake.vs2010_vcxproj)\npremake.generate(prj, \"%%.vcxproj.user\", premake.vs2010_vcxproj_user)\npremake.generate(prj, \"%%.vcxproj.filters\", vstudio.vc2010.generate_filters)\nend" - "\nend,\noncleansolution = premake.vstudio.cleansolution,\noncleanproject = premake.vstudio.cleanproject,\noncleantarget = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.5\",\ntoolsVersion = \"4.0\",\n}\n}\n", + "\nend,\noncleansolution = premake.vstudio.cleansolution,\noncleanproject = premake.vstudio.cleanproject,\noncleantarget = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.5\",\ntargetPlatform = \"\",\ntoolsVersion = \"4.0\",\n}\n}\n", /* actions/vstudio/vs2013.lua */ - "premake.vstudio.vc2013 = {}\nlocal vc2013 = premake.vstudio.vc2013\nlocal vstudio = premake.vstudio\n \nnewaction\n{\ntrigger = \"vs2013\",\nshortname = \"Visual Studio 2013\",\ndescription = \"Generate Microsoft Visual Studio 2013 project files\",\nos = \"windows\",\nvalid_kinds = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\", \"SharedLib\" },\nvalid_languages = { \"C\", \"C++\", \"C#\"},\nvalid_tools = {\ncc = { \"msc\" },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sln)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.generate)\nend,\nonproject = function(prj)\nif premake.isdotnetproject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio.cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\", vstudio.cs2005.generate_user)\nelse\npremake.generate(prj, \"%%.vcxproj\", premake.vs2010_vcxproj)\npremake.generate(prj, \"%%.vcxproj.user\", premake.vs2010_vcxproj_user)\npremake.generate(prj, \"%%.vcxproj.filters\", vstudio.vc2010.generate_filters)" - "\nend\nend,\noncleansolution = premake.vstudio.cleansolution,\noncleanproject = premake.vstudio.cleanproject,\noncleantarget = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.5\",\ntoolsVersion = \"12.0\",\n}\n}\n", + "premake.vstudio.vc2013 = {}\nlocal vc2013 = premake.vstudio.vc2013\nlocal vstudio = premake.vstudio\nnewaction\n{\ntrigger = \"vs2013\",\nshortname = \"Visual Studio 2013\",\ndescription = \"Generate Microsoft Visual Studio 2013 project files\",\nos = \"windows\",\nvalid_kinds = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\", \"SharedLib\" },\nvalid_languages = { \"C\", \"C++\", \"C#\"},\nvalid_tools = {\ncc = { \"msc\" },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sln)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.generate)\nend,\nonproject = function(prj)\nif premake.isdotnetproject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio.cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\", vstudio.cs2005.generate_user)\nelse\npremake.generate(prj, \"%%.vcxproj\", premake.vs2010_vcxproj)\npremake.generate(prj, \"%%.vcxproj.user\", premake.vs2010_vcxproj_user)\npremake.generate(prj, \"%%.vcxproj.filters\", vstudio.vc2010.generate_filters)\nend" + "\nend,\noncleansolution = premake.vstudio.cleansolution,\noncleanproject = premake.vstudio.cleanproject,\noncleantarget = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.5\",\ntargetPlatform = \"\",\ntoolsVersion = \"12.0\",\n}\n}\n", /* actions/vstudio/vs2015.lua */ "premake.vstudio.vc2015 = {}\nlocal vc2015 = premake.vstudio.vc2015\nlocal vstudio = premake.vstudio\nnewaction\n{\ntrigger = \"vs2015\",\nshortname = \"Visual Studio 2015\",\ndescription = \"Generate Microsoft Visual Studio 2015 project files\",\nos = \"windows\",\nvalid_kinds = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\", \"SharedLib\" },\nvalid_languages = { \"C\", \"C++\", \"C#\"},\nvalid_tools = {\ncc = { \"msc\" },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sln)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.generate)\nend,\nonproject = function(prj)\nif premake.isdotnetproject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio.cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\", vstudio.cs2005.generate_user)\nelse\npremake.generate(prj, \"%%.vcxproj\", premake.vs2010_vcxproj)\npremake.generate(prj, \"%%.vcxproj.user\", premake.vs2010_vcxproj_user)\npremake.generate(prj, \"%%.vcxproj.filters\", vstudio.vc2010.generate_filters)\nend" - "\nend,\noncleansolution = premake.vstudio.cleansolution,\noncleanproject = premake.vstudio.cleanproject,\noncleantarget = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.5.2\",\ntoolsVersion = \"14.0\",\n}\n}\n", + "\nend,\noncleansolution = premake.vstudio.cleansolution,\noncleanproject = premake.vstudio.cleanproject,\noncleantarget = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.5.2\",\ntargetPlatform = \"10.0.17763.0\",\ntoolsVersion = \"14.0\",\n}\n}\n", /* actions/vstudio/vs2017.lua */ "premake.vstudio.vc2017 = {}\nlocal vc2017 = premake.vstudio.vc2017\nlocal vstudio = premake.vstudio\nnewaction\n{\ntrigger = \"vs2017\",\nshortname = \"Visual Studio 2017\",\ndescription = \"Generate Microsoft Visual Studio 2017 project files\",\nos = \"windows\",\nvalid_kinds = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\", \"SharedLib\" },\nvalid_languages = { \"C\", \"C++\", \"C#\"},\nvalid_tools = {\ncc = { \"msc\" },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sln)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.generate)\nend,\nonproject = function(prj)\nif premake.isdotnetproject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio.cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\", vstudio.cs2005.generate_user)\nelse\npremake.generate(prj, \"%%.vcxproj\", premake.vs2010_vcxproj)\npremake.generate(prj, \"%%.vcxproj.user\", premake.vs2010_vcxproj_user)\npremake.generate(prj, \"%%.vcxproj.filters\", vstudio.vc2010.generate_filters)\nend" - "\nend,\noncleansolution = premake.vstudio.cleansolution,\noncleanproject = premake.vstudio.cleanproject,\noncleantarget = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.5.2\",\ntoolsVersion = \"15.0\",\n}\n}\n", + "\nend,\noncleansolution = premake.vstudio.cleansolution,\noncleanproject = premake.vstudio.cleanproject,\noncleantarget = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.5.2\",\ntargetPlatform = \"10.0.17763.0\",\ntoolsVersion = \"15.0\",\n}\n}\n", /* actions/vstudio/vs2019.lua */ "premake.vstudio.vc2019 = {}\nlocal vc2019 = premake.vstudio.vc2019\nlocal vstudio = premake.vstudio\nnewaction\n{\ntrigger = \"vs2019\",\nshortname = \"Visual Studio 2019\",\ndescription = \"Generate Microsoft Visual Studio 2019 project files\",\nos = \"windows\",\nvalid_kinds = { \"ConsoleApp\", \"WindowedApp\", \"StaticLib\", \"SharedLib\" },\nvalid_languages = { \"C\", \"C++\", \"C#\"},\nvalid_tools = {\ncc = { \"msc\" },\ndotnet = { \"msnet\" },\n},\nonsolution = function(sln)\npremake.generate(sln, \"%%.sln\", vstudio.sln2005.generate)\nend,\nonproject = function(prj)\nif premake.isdotnetproject(prj) then\npremake.generate(prj, \"%%.csproj\", vstudio.cs2005.generate)\npremake.generate(prj, \"%%.csproj.user\", vstudio.cs2005.generate_user)\nelse\npremake.generate(prj, \"%%.vcxproj\", premake.vs2010_vcxproj)\npremake.generate(prj, \"%%.vcxproj.user\", premake.vs2010_vcxproj_user)\npremake.generate(prj, \"%%.vcxproj.filters\", vstudio.vc2010.generate_filters)\nend" - "\nend,\noncleansolution = premake.vstudio.cleansolution,\noncleanproject = premake.vstudio.cleanproject,\noncleantarget = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.7.2\",\ntoolsVersion = \"16.0\",\n}\n}\n", + "\nend,\noncleansolution = premake.vstudio.cleansolution,\noncleanproject = premake.vstudio.cleanproject,\noncleantarget = premake.vstudio.cleantarget,\nvstudio = {\nsolutionVersion = \"12\",\ntargetFramework = \"4.7.2\",\ntargetPlatform = \"10.0.17763.0\",\ntoolsVersion = \"16.0\",\n}\n}\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 '"