diff options
| author | ruki <[email protected]> | 2022-09-28 21:00:40 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-09-28 21:00:40 +0800 |
| commit | febd5da99c63528d21928de16bdb46cdd7b4a1a1 (patch) | |
| tree | a4bbb8bbce24b068f5dee92629514ee9eee1d452 | |
| parent | ce5ec4011ac7a76f39deae3027d90deabb5efd7a (diff) | |
improve arch for vs generator
| -rw-r--r-- | xmake/plugins/project/vstudio/impl/vs201x.lua | 2 | ||||
| -rw-r--r-- | xmake/plugins/project/vstudio/impl/vs201x_solution.lua | 12 | ||||
| -rw-r--r-- | xmake/plugins/project/vstudio/impl/vsutils.lua | 10 |
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 + |
