diff options
author | Alex Rønne Petersen <alex@alexrp.com> | 2024-04-14 21:05:00 +0000 |
---|---|---|
committer | swiftshader-scoped@luci-project-accounts.iam.gserviceaccount.com <swiftshader-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2024-04-15 15:07:52 +0000 |
commit | 1eaac56def92dfadfb2f49695c7d3c5cd1e1274d (patch) | |
tree | ea20e70f74ba22f810ffa5ee2baf7bbb1bb3fb32 | |
parent | 62c59c41e194c288c06739788bb0aad3c86b19bf (diff) | |
download | swiftshader-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.txt | 11 | ||||
-rw-r--r-- | third_party/llvm-10.0/configs/windows/include/llvm/Config/llvm-config.h | 4 | ||||
-rw-r--r-- | third_party/llvm-16.0/configs/windows/include/llvm/Config/llvm-config.h | 4 |
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 */
|