diff --git a/3rdparty/genie/src/actions/vstudio/vstudio_vcxproj.lua b/3rdparty/genie/src/actions/vstudio/vstudio_vcxproj.lua
index a31e94380b2..3aebac7208e 100644
--- a/3rdparty/genie/src/actions/vstudio/vstudio_vcxproj.lua
+++ b/3rdparty/genie/src/actions/vstudio/vstudio_vcxproj.lua
@@ -61,7 +61,7 @@
else
_p(2, 'Win32Proj')
end
- if _ACTION:sub(3) == "2015" or _ACTION:sub(3) == "2015" then
+ if _ACTION:sub(3) == "2015" or _ACTION:sub(3) == "2017" then
_p(2,'x64')
end
if _ACTION:sub(3) == "2017" and os.isdir(path.join(os.getenv("VSINSTALLDIR"), "VC/Tools/MSVC/14.14.26428")) then
diff --git a/3rdparty/genie/src/host/scripts.c b/3rdparty/genie/src/host/scripts.c
index b10c2dce08a..c51a1584774 100644
--- a/3rdparty/genie/src/host/scripts.c
+++ b/3rdparty/genie/src/host/scripts.c
@@ -275,7 +275,7 @@ const char* builtin_scripts[] = {
/* actions/vstudio/vstudio_vcxproj.lua */
"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)\nlocal action = premake.action.current()\n_p(1,'')\n_p(2, '{%s}',prj.uuid)\n_p(2, '%s',prj.name)\nif vstudio.storeapp ~= \"durango\" then\nlocal windowsTargetPlatformVersion = prj.windowstargetplatformversion or action.vstudio.windowsTargetPlatformVersion\nif windowsTargetPlatformVersion ~= nil then\n_p(2,'%s',windowsTargetPlatformVersion"
")\nif windowsTargetPlatformVersion and string.startswith(windowsTargetPlatformVersion, \"10.\") then\n_p(2,'%s', prj.windowstargetplatformminversion or \"10.0.10240.0\")\nend\nend\nend\nif prj.flags and prj.flags.Managed then\nlocal frameworkVersion = prj.framework or \"4.0\"\n_p(2, 'v%s', frameworkVersion)\n_p(2, 'ManagedCProj')\nelseif vstudio.iswinrt() then\n_p(2, 'en-US')\nif vstudio.storeapp == \"durango\" then\n_p(2, 'Win32Proj')\n_p(2, 'title')\n_p(2, '14.0')\n_p(2, 'Native')\nelse\n_p(2, 'true')\n_p(2, '12.0')\nif vstudio.toolset == \"v120_wp81\" then\n_p(2, '"
- "Windows Phone')\nelse\n_p(2, 'Windows Store')\nend\n_p(2, '%s', vstudio.storeapp)\nend\nelse\n_p(2, 'Win32Proj')\nend\nif _ACTION:sub(3) == \"2015\" or _ACTION:sub(3) == \"2015\" then\n_p(2,'x64')\nend\nif _ACTION:sub(3) == \"2017\" and os.isdir(path.join(os.getenv(\"VSINSTALLDIR\"), \"VC/Tools/MSVC/14.14.26428\")) then\n_p(2,'14.14.26428')\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"
+ "Windows Phone')\nelse\n_p(2, 'Windows Store')\nend\n_p(2, '%s', vstudio.storeapp)\nend\nelse\n_p(2, 'Win32Proj')\nend\nif _ACTION:sub(3) == \"2015\" or _ACTION:sub(3) == \"2017\" then\n_p(2,'x64')\nend\nif _ACTION:sub(3) == \"2017\" and os.isdir(path.join(os.getenv(\"VSINSTALLDIR\"), \"VC/Tools/MSVC/14.14.26428\")) then\n_p(2,'14.14.26428')\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', premake.vstudio.toolset)\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.Unicode then\n_p(2,'Unicode')\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,'')\nif #cfg.propertysheets > 0 then\nlocal dirs = cfg.propertysheets\nfor _, dir in ipairs(dirs) do\n_p(2,'', path.translate(dir))\nend\nend\n_p(1,'')\nend\nend\nlocal function add_trailing_backslash(dir)\nif dir:len() > 0 and dir:sub(-1) ~= \"\\\\\" then\nreturn dir..\"\\\\\"\nend\nreturn dir\nend\nfunction vc2010.outputProperties(prj)\nfor _, cfginfo in ipairs(prj.solution.vstudio_configs) do\nlocal cfg = premake.getconfig(prj, cfginfo.src_buildcfg, cfginfo.src_platfor"
"m)\nlocal target = cfg.buildtarget\nlocal outdir = add_trailing_backslash(target.directory)\nlocal intdir = add_trailing_backslash(iif(action.vstudio.intDirAbsolute\n, path.translate(\n path.join(prj.solution.location, cfg.objectsdir)\n, '\\\\')\n, cfg.objectsdir\n))\n_p(1,'', premake.esc(cfginfo.name))\n_p(2,'%s', iif(outdir:len() > 0, premake.esc(outdir), \".\\\\\"))\nif cfg.platform == \"Xbox360\" then\n_p(2,'$(OutDir)%s', premake.esc(target.name))\nend\n_p(2,'%s', premake.esc(intdir))\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.platform == \"Durango\" then\n_p(2, '$(Console_SdkLibPath);$(Console_SdkWindowsM"