mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-11-04 09:44:35 +00:00 
			
		
		
		
	configure script: Implement testing for build-time Metal SDK support.
This commit is contained in:
		
							
								
								
									
										40
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										40
									
								
								configure
									
									
									
									
										vendored
									
									
								
							@@ -21230,11 +21230,47 @@ else
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
    if test x$enable_render = xyes -a x$enable_render_metal = xyes; then
 | 
			
		||||
        save_CFLAGS="$CFLAGS"
 | 
			
		||||
                CFLAGS="$CFLAGS -x objective-c"
 | 
			
		||||
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Metal framework" >&5
 | 
			
		||||
$as_echo_n "checking for Metal framework... " >&6; }
 | 
			
		||||
        have_metal=no
 | 
			
		||||
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 | 
			
		||||
/* end confdefs.h.  */
 | 
			
		||||
 | 
			
		||||
          #import <Cocoa/Cocoa.h>
 | 
			
		||||
          #import <Metal/Metal.h>
 | 
			
		||||
          #import <QuartzCore/CAMetalLayer.h>
 | 
			
		||||
 | 
			
		||||
          #if !TARGET_CPU_X86_64
 | 
			
		||||
          #error Metal doesn't work on this configuration
 | 
			
		||||
          #endif
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main ()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  ;
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
_ACEOF
 | 
			
		||||
if ac_fn_c_try_compile "$LINENO"; then :
 | 
			
		||||
 | 
			
		||||
        have_metal=yes
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 | 
			
		||||
        CFLAGS="$save_CFLAGS"
 | 
			
		||||
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_metal" >&5
 | 
			
		||||
$as_echo "$have_metal" >&6; }
 | 
			
		||||
        if test x$have_metal = xyes; then
 | 
			
		||||
 | 
			
		||||
$as_echo "#define SDL_VIDEO_RENDER_METAL 1" >>confdefs.h
 | 
			
		||||
 | 
			
		||||
        SOURCES="$SOURCES $srcdir/src/render/metal/*.m"
 | 
			
		||||
        SUMMARY_video="${SUMMARY_video} metal"
 | 
			
		||||
            SOURCES="$SOURCES $srcdir/src/render/metal/*.m"
 | 
			
		||||
            SUMMARY_video="${SUMMARY_video} metal"
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								configure.in
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								configure.in
									
									
									
									
									
								
							@@ -2066,10 +2066,30 @@ CheckMETAL()
 | 
			
		||||
AC_HELP_STRING([--enable-render-metal], [enable the Metal render driver [[default=yes]]]),
 | 
			
		||||
                                , enable_render_metal=yes)
 | 
			
		||||
    if test x$enable_render = xyes -a x$enable_render_metal = xyes; then
 | 
			
		||||
        dnl This should maybe make sure you have a supported SDK version.
 | 
			
		||||
        AC_DEFINE(SDL_VIDEO_RENDER_METAL, 1, [ ])
 | 
			
		||||
        SOURCES="$SOURCES $srcdir/src/render/metal/*.m"
 | 
			
		||||
        SUMMARY_video="${SUMMARY_video} metal"
 | 
			
		||||
        save_CFLAGS="$CFLAGS"
 | 
			
		||||
        dnl Work around that we don't have Objective-C support in autoconf
 | 
			
		||||
        CFLAGS="$CFLAGS -x objective-c"
 | 
			
		||||
        AC_MSG_CHECKING(for Metal framework)
 | 
			
		||||
        have_metal=no
 | 
			
		||||
        AC_TRY_COMPILE([
 | 
			
		||||
          #import <Cocoa/Cocoa.h>
 | 
			
		||||
          #import <Metal/Metal.h>
 | 
			
		||||
          #import <QuartzCore/CAMetalLayer.h>
 | 
			
		||||
 | 
			
		||||
          #if !TARGET_CPU_X86_64
 | 
			
		||||
          #error Metal doesn't work on this configuration
 | 
			
		||||
          #endif
 | 
			
		||||
        ],[
 | 
			
		||||
        ],[
 | 
			
		||||
        have_metal=yes
 | 
			
		||||
        ])
 | 
			
		||||
        CFLAGS="$save_CFLAGS"
 | 
			
		||||
        AC_MSG_RESULT($have_metal)
 | 
			
		||||
        if test x$have_metal = xyes; then
 | 
			
		||||
            AC_DEFINE(SDL_VIDEO_RENDER_METAL, 1, [ ])
 | 
			
		||||
            SOURCES="$SOURCES $srcdir/src/render/metal/*.m"
 | 
			
		||||
            SUMMARY_video="${SUMMARY_video} metal"
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user