aboutsummaryrefslogtreecommitdiff
path: root/src/windows_sdk.cpp
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2021-09-13 23:12:19 +0200
committerJakub Konka <kubkon@jakubkonka.com>2021-09-13 23:40:38 +0200
commita38b636045c0384faad1565d47dfbf774821021e (patch)
treea78193473fd5b725feaf2762b10cfc189a26a325 /src/windows_sdk.cpp
parent760241ce50eaa9031339f6b591358b53f5797486 (diff)
parentf011f13933b72f4d63a5f635c7646b68beee726e (diff)
downloadzig-a38b636045c0384faad1565d47dfbf774821021e.tar.gz
zig-a38b636045c0384faad1565d47dfbf774821021e.zip
Merge remote-tracking branch 'origin/master' into zld-incr
Diffstat (limited to 'src/windows_sdk.cpp')
-rw-r--r--src/windows_sdk.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/windows_sdk.cpp b/src/windows_sdk.cpp
index fd88374311..25620805cd 100644
--- a/src/windows_sdk.cpp
+++ b/src/windows_sdk.cpp
@@ -23,16 +23,19 @@ enum NativeArch {
NativeArchArm,
NativeArchi386,
NativeArchx86_64,
+ NativeArchAarch64,
};
#if defined(_M_ARM) || defined(__arm_)
static const NativeArch native_arch = NativeArchArm;
-#endif
-#if defined(_M_IX86) || defined(__i386__)
+#elif defined(_M_IX86) || defined(__i386__)
static const NativeArch native_arch = NativeArchi386;
-#endif
-#if defined(_M_X64) || defined(__x86_64__)
+#elif defined(_M_X64) || defined(__x86_64__)
static const NativeArch native_arch = NativeArchx86_64;
+#elif defined(_M_ARM64) || defined(__aarch64__)
+static const NativeArch native_arch = NativeArchAarch64;
+#else
+#error unsupported architecture
#endif
void zig_free_windows_sdk(struct ZigWindowsSDK *sdk) {
@@ -116,6 +119,9 @@ static ZigFindWindowsSdkError find_msvc_lib_dir(ZigWindowsSDKPrivate *priv) {
case NativeArchArm:
out_append_ptr += sprintf(out_append_ptr, "arm\\");
break;
+ case NativeArchAarch64:
+ out_append_ptr += sprintf(out_append_ptr, "arm64\\");
+ break;
}
sprintf(tmp_buf, "%s%s", output_path, "vcruntime.lib");
@@ -161,6 +167,9 @@ com_done:;
case NativeArchArm:
tmp_buf_append_ptr += sprintf(tmp_buf_append_ptr, "arm\\");
break;
+ case NativeArchAarch64:
+ tmp_buf_append_ptr += sprintf(tmp_buf_append_ptr, "arm64\\");
+ break;
}
char *output_path = strdup(tmp_buf);
@@ -204,6 +213,9 @@ static ZigFindWindowsSdkError find_10_version(ZigWindowsSDKPrivate *priv) {
case NativeArchArm:
option_name = "OptionId.DesktopCPParm";
break;
+ case NativeArchAarch64:
+ option_name = "OptionId.DesktopCPParm64";
+ break;
case NativeArchx86_64:
option_name = "OptionId.DesktopCPPx64";
break;