diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2024-09-30 15:38:45 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2024-09-30 15:38:45 +0200 |
commit | 85d8a34f9ffefa715a174f215262584d7b91b459 (patch) | |
tree | f24e3a9f41b6a2fb78bcc0f003eadeb9d73d080d /libbuild2/cc | |
parent | 9f7789ffdae2ea0aa5a3b389ca9745ff160fa60f (diff) |
Fix more issues in MSVC ARM64 support
Diffstat (limited to 'libbuild2/cc')
-rw-r--r-- | libbuild2/cc/guess.cxx | 11 | ||||
-rw-r--r-- | libbuild2/cc/windows-manifest.cxx | 5 |
2 files changed, 11 insertions, 5 deletions
diff --git a/libbuild2/cc/guess.cxx b/libbuild2/cc/guess.cxx index 406534d..2d079f0 100644 --- a/libbuild2/cc/guess.cxx +++ b/libbuild2/cc/guess.cxx @@ -1635,7 +1635,7 @@ namespace build2 // Seeing that we only do 64-bit on Windows, let's always use 64-bit // MSVC tools (link.exe, etc). In case of the Platform SDK, it's unclear - // what the CPU signifies (host, target, both). + // what the CPU signifies (host, target, both). It appears to be host. // r = (((dir_path (mi.msvc_dir) /= "bin") /= #if defined(_M_ARM64) || defined(__aarch64__) @@ -1647,8 +1647,13 @@ namespace build2 r += path::traits_type::path_separator; - r += (((dir_path (mi.psdk_dir) /= "bin") /= mi.psdk_ver) /= cpu). - representation (); + r += (((dir_path (mi.psdk_dir) /= "bin") /= mi.psdk_ver) /= +#if defined(_M_ARM64) || defined(__aarch64__) + "arm64" +#else + "x64" +#endif + ).representation (); return r; } diff --git a/libbuild2/cc/windows-manifest.cxx b/libbuild2/cc/windows-manifest.cxx index 14f4a53..ff77327 100644 --- a/libbuild2/cc/windows-manifest.cxx +++ b/libbuild2/cc/windows-manifest.cxx @@ -23,8 +23,9 @@ namespace build2 const char* windows_manifest_arch (const string& tcpu) { - const char* pa (tcpu == "i386" || tcpu == "i686" ? "x86" : - tcpu == "x86_64" ? "amd64" : + const char* pa (tcpu == "x86_64" ? "amd64" : + tcpu == "i386" || tcpu == "i686" ? "x86" : + tcpu == "aarch64" ? "arm64" : nullptr); if (pa == nullptr) |