From bf1d7a3a15a6c090188974bec8ca84eb1903d4f7 Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Sat, 18 Sep 2021 10:31:37 -0400
Subject: [PATCH] cmake: Don't trust the HAVE_IMMINTRIN_H check on Apple
targets.
Otherwise universal builds might try to include an Intel-specific header
on ARM builds, etc.
Fixes #4753.
---
include/SDL_config.h.cmake | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake
index 7b20a1d686..446c094686 100644
--- a/include/SDL_config.h.cmake
+++ b/include/SDL_config.h.cmake
@@ -222,7 +222,19 @@
#cmakedefine HAVE_INOTIFY_INIT 1
#cmakedefine HAVE_INOTIFY_INIT1 1
#cmakedefine HAVE_INOTIFY 1
-#cmakedefine HAVE_IMMINTRIN_H 1
+
+/* Apple platforms might be building universal binaries, where Intel builds
+ can use immintrin.h but other architectures can't. */
+#ifdef __APPLE__
+# if defined(__has_include) && (defined(__i386__) || defined(__x86_64))
+# if __has_include(<immintrin.h>)
+# define HAVE_IMMINTRIN_H 1
+# endif
+# endif
+#else /* non-Apple platforms can use the normal CMake check for this.
+# cmakedefine HAVE_IMMINTRIN_H 1
+#endif
+
#cmakedefine HAVE_LIBUDEV_H 1
#cmakedefine HAVE_LIBSAMPLERATE_H 1
#cmakedefine HAVE_LIBDECOR_H 1