mirror of https://github.com/encounter/SDL.git
configure script: Implement testing for build-time Metal SDK support.
This commit is contained in:
parent
b3b5c47366
commit
ef1014ac68
|
@ -21230,11 +21230,47 @@ 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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
28
configure.in
28
configure.in
|
@ -2066,10 +2066,30 @@ 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"
|
||||||
AC_DEFINE(SDL_VIDEO_RENDER_METAL, 1, [ ])
|
dnl Work around that we don't have Objective-C support in autoconf
|
||||||
SOURCES="$SOURCES $srcdir/src/render/metal/*.m"
|
CFLAGS="$CFLAGS -x objective-c"
|
||||||
SUMMARY_video="${SUMMARY_video} metal"
|
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue