summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2017-03-18 15:38:00 +0800
committerruki <[email protected]>2017-03-18 15:38:00 +0800
commitab30f318f4b2622f4c8535cdcec9eccd2a58f461 (patch)
tree3e566b00bbfa5e65b454a888fae6158ad1f4e0f3
parentbd1ad95848680fd63762138fa5ee5c0a4e18356e (diff)
fix arch and sdk version for vs201x project plugin
-rwxr-xr-xxmake/plugins/project/vstudio/impl/vs201x.lua2
-rwxr-xr-xxmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua26
2 files changed, 19 insertions, 9 deletions
diff --git a/xmake/plugins/project/vstudio/impl/vs201x.lua b/xmake/plugins/project/vstudio/impl/vs201x.lua
index 6d9c6826b..ccf34db67 100755
--- a/xmake/plugins/project/vstudio/impl/vs201x.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x.lua
@@ -91,7 +91,7 @@ function make(outputdir, vsinfo)
_target.kind = target:get("kind")
_target.scriptdir = target:scriptdir()
_target.info = _target.info or {}
- table.insert(_target.info, { mode = mode, arch = arch, target = target })
+ table.insert(_target.info, { mode = mode, arch = ifelse(arch == "x86", "Win32", "x64"), target = target })
-- save all sourcefiles and headerfiles
_target.sourcefiles = table.unique(table.join(_target.sourcefiles or {}, (target:sourcefiles())))
diff --git a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua
index 3bae5607d..649dd5c61 100755
--- a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua
@@ -146,14 +146,21 @@ function _make_configurations(vcxprojfile, vsinfo, target, vcxprojdir)
, static = "StaticLibrary"
}
- -- the versions
- local versions =
+ -- the toolset versions
+ local toolset_versions =
+ {
+ vs2010 = "100"
+ , vs2012 = "110"
+ , vs2013 = "120"
+ , vs2015 = "140"
+ , vs2017 = "141"
+ }
+
+ -- the sdk version
+ local sdk_versions =
{
- vs2010 = '100'
- , vs2012 = '110'
- , vs2013 = '120'
- , vs2015 = '140'
- , vs2017 = '141'
+ vs2015 = "10.0.10240.0"
+ , vs2017 = "10.0.14393.0"
}
-- make ProjectConfigurations
@@ -170,6 +177,9 @@ function _make_configurations(vcxprojfile, vsinfo, target, vcxprojdir)
vcxprojfile:enter("<PropertyGroup Label=\"Globals\">")
vcxprojfile:print("<ProjectGuid>{%s}</ProjectGuid>", os.uuid(targetname))
vcxprojfile:print("<RootNamespace>%s</RootNamespace>", targetname)
+ if vsinfo.vstudio_version >= "2015" then
+ vcxprojfile:print("<WindowsTargetPlatformVersion>%s</WindowsTargetPlatformVersion>", sdk_versions["vs" .. vsinfo.vstudio_version])
+ end
vcxprojfile:leave("</PropertyGroup>")
-- import Microsoft.Cpp.Default.props
@@ -179,7 +189,7 @@ function _make_configurations(vcxprojfile, vsinfo, target, vcxprojdir)
for _, targetinfo in ipairs(target.info) do
vcxprojfile:enter("<PropertyGroup Condition=\"\'%$(Configuration)|%$(Platform)\'==\'%s|%s\'\" Label=\"Configuration\">", targetinfo.mode, targetinfo.arch)
vcxprojfile:print("<ConfigurationType>%s</ConfigurationType>", assert(configuration_types[target.kind]))
- vcxprojfile:print("<PlatformToolset>v%s</PlatformToolset>", assert(versions["vs" .. vsinfo.vstudio_version]))
+ vcxprojfile:print("<PlatformToolset>v%s</PlatformToolset>", assert(toolset_versions["vs" .. vsinfo.vstudio_version]))
vcxprojfile:print("<CharacterSet>MultiByte</CharacterSet>")
vcxprojfile:leave("</PropertyGroup>")
end