Commit 8ac85744cd4fdfc8f8e2ad1e1d099535222d23e3

Sam Lantinga 2017-08-28T22:36:45

Fixed Vulkan configure check for Android and added one for Mac OS X

diff --git a/configure b/configure
index f15e262..dd15e3f 100755
--- a/configure
+++ b/configure
@@ -745,7 +745,6 @@ infodir
 docdir
 oldincludedir
 includedir
-runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -922,7 +921,6 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE}'
@@ -1175,15 +1173,6 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
-  -runstatedir | --runstatedir | --runstatedi | --runstated \
-  | --runstate | --runstat | --runsta | --runst | --runs \
-  | --run | --ru | --r)
-    ac_prev=runstatedir ;;
-  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
-  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
-  | --run=* | --ru=* | --r=*)
-    runstatedir=$ac_optarg ;;
-
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1321,7 +1310,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir runstatedir
+		libdir localedir mandir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1474,7 +1463,6 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -21921,20 +21909,48 @@ CheckVulkan()
                 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-                  #if defined(__ANDROID__) && defined(__ARM_EABI__) && !defined(__ARM_ARCH_7A__)
+                  #if defined(__ARM_ARCH) && __ARM_ARCH < 7
                   #error Vulkan doesn't work on this configuration
                   #endif
-                  int main()
-                  {
-                     return 0;
-                  }
 
 int
 main ()
 {
 
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+
+else
+
                     enable_video_vulkan=no
 
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+                ;;
+            *-*-darwin*)
+                save_CFLAGS="$CFLAGS"
+                                CFLAGS="$CFLAGS -x objective-c"
+                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+                  #include <Cocoa/Cocoa.h>
+                  #include <Metal/Metal.h>
+                  #include <QuartzCore/CAMetalLayer.h>
+
+                  #if !TARGET_CPU_X86_64
+                  #error Vulkan doesn't work on this configuration
+                  #endif
+
+int
+main ()
+{
+
+
   ;
   return 0;
 }
@@ -21942,8 +21958,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
 
+else
+
+                    enable_video_vulkan=no
+
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+                CFLAGS="$save_CFLAGS"
                 ;;
             *)
                 ;;
@@ -21951,8 +21972,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
         if test x$enable_video_vulkan = xno; then
             # For reasons I am totally unable to see, I get an undefined macro error if
             # I put this in the AC_TRY_COMPILE.
-            { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Sorry, Vulkan does not work on this configuration." >&5
-$as_echo "$as_me: WARNING: Sorry, Vulkan does not work on this configuration." >&2;}
+            { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Vulkan does not work on this configuration." >&5
+$as_echo "$as_me: WARNING: Vulkan does not work on this configuration." >&2;}
         fi
     fi
     if test x$enable_video_vulkan = xyes; then
diff --git a/configure.in b/configure.in
index 6e0c354..16498f3 100644
--- a/configure.in
+++ b/configure.in
@@ -1983,7 +1983,7 @@ AC_HELP_STRING([--enable-video-cocoa], [use Cocoa video driver [[default=yes]]])
                   , enable_video_cocoa=yes)
     if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
         save_CFLAGS="$CFLAGS"
-        dnl work around that we don't have Objective-C support in autoconf
+        dnl Work around that we don't have Objective-C support in autoconf
         CFLAGS="$CFLAGS -x objective-c"
         AC_MSG_CHECKING(for Cocoa framework)
         have_cocoa=no
@@ -2401,7 +2401,7 @@ CheckEmscriptenGLES()
     fi
 }
 
-dnl Check to see if Vulkan surface support is desired
+dnl Check to see if Vulkan support is desired
 AC_ARG_ENABLE(video-vulkan,
 AC_HELP_STRING([--enable-video-vulkan], [include Vulkan support [[default=yes]]]),
               , enable_video_vulkan=yes)
@@ -2413,17 +2413,33 @@ CheckVulkan()
         case "$host" in
             *-*-androideabi*)
                 AC_TRY_COMPILE([
-                  #if defined(__ANDROID__) && defined(__ARM_EABI__) && !defined(__ARM_ARCH_7A__)
+                  #if defined(__ARM_ARCH) && __ARM_ARCH < 7
                   #error Vulkan doesn't work on this configuration
                   #endif
-                  int main()
-                  {
-                     return 0;
-                  }
+                ],[
+                ],[
                 ],[
                     enable_video_vulkan=no
+                ])
+                ;;
+            *-*-darwin*)
+                save_CFLAGS="$CFLAGS"
+                dnl Work around that we don't have Objective-C support in autoconf
+                CFLAGS="$CFLAGS -x objective-c"
+                AC_TRY_COMPILE([
+                  #include <Cocoa/Cocoa.h>
+                  #include <Metal/Metal.h>
+                  #include <QuartzCore/CAMetalLayer.h>
+
+                  #if !TARGET_CPU_X86_64
+                  #error Vulkan doesn't work on this configuration
+                  #endif
+                ],[
                 ],[
+                ],[
+                    enable_video_vulkan=no
                 ])
+                CFLAGS="$save_CFLAGS"
                 ;;
             *)
                 ;;
@@ -2431,7 +2447,7 @@ CheckVulkan()
         if test x$enable_video_vulkan = xno; then
             # For reasons I am totally unable to see, I get an undefined macro error if
             # I put this in the AC_TRY_COMPILE.
-            AC_MSG_WARN([Sorry, Vulkan does not work on this configuration.])
+            AC_MSG_WARN([Vulkan does not work on this configuration.])
         fi
     fi
     if test x$enable_video_vulkan = xyes; then
diff --git a/src/video/cocoa/SDL_cocoametalview.h b/src/video/cocoa/SDL_cocoametalview.h
index 75751c0..745dea3 100644
--- a/src/video/cocoa/SDL_cocoametalview.h
+++ b/src/video/cocoa/SDL_cocoametalview.h
@@ -34,9 +34,9 @@
 
 #if SDL_VIDEO_VULKAN && SDL_VIDEO_DRIVER_COCOA
 
-#import <Cocoa/Cocoa.h>
-#import <Metal/Metal.h>
-#import <QuartzCore/CAMetalLayer.h>
+#include <Cocoa/Cocoa.h>
+#include <Metal/Metal.h>
+#include <QuartzCore/CAMetalLayer.h>
 
 #define METALVIEW_TAG 255