aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2024-04-14 21:05:00 +0000
committerswiftshader-scoped@luci-project-accounts.iam.gserviceaccount.com <swiftshader-scoped@luci-project-accounts.iam.gserviceaccount.com>2024-04-15 15:07:52 +0000
commit1eaac56def92dfadfb2f49695c7d3c5cd1e1274d (patch)
treeea20e70f74ba22f810ffa5ee2baf7bbb1bb3fb32
parent62c59c41e194c288c06739788bb0aad3c86b19bf (diff)
downloadswiftshader-1eaac56def92dfadfb2f49695c7d3c5cd1e1274d.tar.gz
Fix some build issues on Windows Arm64.
* CMake: Set ARCH correctly when using `cmake -A <arch>` on Windows. * Add MSVC ARM64 support to the Windows llvm-config.h files. Change-Id: I4f870361074ca7967d5304cb776c872f91cb1168 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/73268 Reviewed-by: Shahbaz Youssefi <syoussefi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@google.com> Tested-by: Geoff Lang <geofflang@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Reviewed-by: Geoff Lang <geofflang@google.com>
-rw-r--r--CMakeLists.txt11
-rw-r--r--third_party/llvm-10.0/configs/windows/include/llvm/Config/llvm-config.h4
-rw-r--r--third_party/llvm-16.0/configs/windows/include/llvm/Config/llvm-config.h4
3 files changed, 19 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fc252f8a2..434fbb708 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -84,6 +84,17 @@ if(CMAKE_OSX_ARCHITECTURES)
endif()
endif()
+# Cross compiling with `cmake -A <arch>`.
+if(CMAKE_GENERATOR_PLATFORM)
+ if(CMAKE_GENERATOR_PLATFORM MATCHES "^(Win32|win32|X86|x86)$")
+ set(ARCH "x86")
+ elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^(Win64|win64|X64|x64)$")
+ set(ARCH "x86_64")
+ elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^(ARM64|Arm64|arm64)$")
+ set(ARCH "aarch64")
+ endif()
+endif()
+
set(CMAKE_MACOSX_RPATH TRUE)
if ((CMAKE_GENERATOR MATCHES "Visual Studio") AND (CMAKE_GENERATOR_TOOLSET STREQUAL ""))
diff --git a/third_party/llvm-10.0/configs/windows/include/llvm/Config/llvm-config.h b/third_party/llvm-10.0/configs/windows/include/llvm/Config/llvm-config.h
index 098a22c5a..34f882309 100644
--- a/third_party/llvm-10.0/configs/windows/include/llvm/Config/llvm-config.h
+++ b/third_party/llvm-10.0/configs/windows/include/llvm/Config/llvm-config.h
@@ -22,6 +22,10 @@
#define __x86_64__ 1
#endif
+#if !defined(__aarch64__) && (defined(_M_ARM64) || defined (_M_ARM64EC))
+#define __aarch64__ 1
+#endif
+
#define LLVM_CONFIG_H
/* Define if LLVM_ENABLE_DUMP is enabled */
diff --git a/third_party/llvm-16.0/configs/windows/include/llvm/Config/llvm-config.h b/third_party/llvm-16.0/configs/windows/include/llvm/Config/llvm-config.h
index 38123d487..2078fbcd5 100644
--- a/third_party/llvm-16.0/configs/windows/include/llvm/Config/llvm-config.h
+++ b/third_party/llvm-16.0/configs/windows/include/llvm/Config/llvm-config.h
@@ -22,6 +22,10 @@
#define __x86_64__ 1
#endif
+#if !defined(__aarch64__) && (defined(_M_ARM64) || defined (_M_ARM64EC))
+#define __aarch64__ 1
+#endif
+
#define LLVM_CONFIG_H
/* Define if LLVM_ENABLE_DUMP is enabled */