Skip to content

Commit

Permalink
Fixed Vulkan configure check for Android and added one for Mac OS X
Browse files Browse the repository at this point in the history
  • Loading branch information
slouken committed Aug 29, 2017
1 parent 90b38a5 commit 8ac8574
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 31 deletions.
61 changes: 41 additions & 20 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -745,7 +745,6 @@ infodir
docdir
oldincludedir
includedir
runstatedir
localstatedir
sharedstatedir
sysconfdir
Expand Down Expand Up @@ -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}'
Expand Down Expand Up @@ -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=* \
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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]
Expand Down Expand Up @@ -21921,38 +21909,71 @@ 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;
}
_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"
;;
*)
;;
esac
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
Expand Down
32 changes: 24 additions & 8 deletions configure.in
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand All @@ -2413,25 +2413,41 @@ 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"
;;
*)
;;
esac
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
Expand Down
6 changes: 3 additions & 3 deletions src/video/cocoa/SDL_cocoametalview.h
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down

0 comments on commit 8ac8574

Please sign in to comment.