aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2024-09-30 15:38:45 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2024-09-30 15:38:45 +0200
commit85d8a34f9ffefa715a174f215262584d7b91b459 (patch)
treef24e3a9f41b6a2fb78bcc0f003eadeb9d73d080d /libbuild2/cc
parent9f7789ffdae2ea0aa5a3b389ca9745ff160fa60f (diff)
Fix more issues in MSVC ARM64 support
Diffstat (limited to 'libbuild2/cc')
-rw-r--r--libbuild2/cc/guess.cxx11
-rw-r--r--libbuild2/cc/windows-manifest.cxx5
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)