summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-09-28 21:00:40 +0800
committerruki <[email protected]>2022-09-28 21:00:40 +0800
commitfebd5da99c63528d21928de16bdb46cdd7b4a1a1 (patch)
treea4bbb8bbce24b068f5dee92629514ee9eee1d452
parentce5ec4011ac7a76f39deae3027d90deabb5efd7a (diff)
improve arch for vs generator
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x.lua2
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x_solution.lua12
-rw-r--r--xmake/plugins/project/vstudio/impl/vsutils.lua10
3 files changed, 13 insertions, 11 deletions
diff --git a/xmake/plugins/project/vstudio/impl/vs201x.lua b/xmake/plugins/project/vstudio/impl/vs201x.lua
index 19176b111..edcfde2cb 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x.lua
@@ -230,7 +230,7 @@ end
function _make_targetinfo(mode, arch, target, vcxprojdir)
-- init target info
- local targetinfo = { mode = mode, arch = (arch == "x86" and "Win32" or "x64") }
+ local targetinfo = { mode = mode, arch = vsutils.vsarch(arch) }
-- get sdk version
local msvc = toolchain.load("msvc")
diff --git a/xmake/plugins/project/vstudio/impl/vs201x_solution.lua b/xmake/plugins/project/vstudio/impl/vs201x_solution.lua
index c9dea0c34..01b6b8cf9 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x_solution.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x_solution.lua
@@ -21,15 +21,7 @@
-- imports
import("core.project.project")
import("vsfile")
-
--- get vs arch
-function _vs_arch(arch)
- if arch == 'x86' or arch == 'i386' then return "Win32" end
- if arch == 'x86_64' then return "x64" end
- if arch:startswith('arm64') then return "ARM64" end
- if arch:startswith('arm') then return "ARM" end
- return arch
-end
+import("vsutils")
-- make header
function _make_header(slnfile, vsinfo)
@@ -105,7 +97,7 @@ function _make_global(slnfile, vsinfo)
for targetname, target in pairs(project.targets()) do
for _, mode in ipairs(vsinfo.modes) do
for _, arch in ipairs(vsinfo.archs) do
- local vs_arch = _vs_arch(arch)
+ local vs_arch = vsutils.vsarch(arch)
slnfile:print("{%s}.%s|%s.ActiveCfg = %s|%s", hash.uuid4(targetname), mode, arch, mode, vs_arch)
slnfile:print("{%s}.%s|%s.Build.0 = %s|%s", hash.uuid4(targetname), mode, arch, mode, vs_arch)
end
diff --git a/xmake/plugins/project/vstudio/impl/vsutils.lua b/xmake/plugins/project/vstudio/impl/vsutils.lua
index b4de1717b..9abf7a7b9 100644
--- a/xmake/plugins/project/vstudio/impl/vsutils.lua
+++ b/xmake/plugins/project/vstudio/impl/vsutils.lua
@@ -42,3 +42,13 @@ function escape(str)
return (string.gsub(str, "[%%%$@';%?%*\"<>&]", function (c) return assert(map[c]) end))
end
+
+-- get vs arch
+function vsarch(arch)
+ if arch == 'x86' or arch == 'i386' then return "Win32" end
+ if arch == 'x86_64' then return "x64" end
+ if arch:startswith('arm64') then return "ARM64" end
+ if arch:startswith('arm') then return "ARM" end
+ return arch
+end
+