configure script: Implement testing for build-time Metal SDK support.

This commit is contained in:
Alex Szpakowski 2018-01-02 19:06:14 -04:00
parent b3b5c47366
commit ef1014ac68
2 changed files with 62 additions and 6 deletions

36
configure vendored
View File

@ -21230,12 +21230,48 @@ else
fi fi
if test x$enable_render = xyes -a x$enable_render_metal = xyes; then 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 $as_echo "#define SDL_VIDEO_RENDER_METAL 1" >>confdefs.h
SOURCES="$SOURCES $srcdir/src/render/metal/*.m" SOURCES="$SOURCES $srcdir/src/render/metal/*.m"
SUMMARY_video="${SUMMARY_video} metal" SUMMARY_video="${SUMMARY_video} metal"
fi fi
fi
} }

View File

@ -2066,11 +2066,31 @@ CheckMETAL()
AC_HELP_STRING([--enable-render-metal], [enable the Metal render driver [[default=yes]]]), AC_HELP_STRING([--enable-render-metal], [enable the Metal render driver [[default=yes]]]),
, enable_render_metal=yes) , enable_render_metal=yes)
if test x$enable_render = xyes -a x$enable_render_metal = xyes; then 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. 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, [ ]) AC_DEFINE(SDL_VIDEO_RENDER_METAL, 1, [ ])
SOURCES="$SOURCES $srcdir/src/render/metal/*.m" SOURCES="$SOURCES $srcdir/src/render/metal/*.m"
SUMMARY_video="${SUMMARY_video} metal" SUMMARY_video="${SUMMARY_video} metal"
fi fi
fi
} }