meson: move SDL and SDL-image detection to meson

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2020-02-06 14:17:15 +01:00
parent ffac93df19
commit 35be72ba72
6 changed files with 37 additions and 146 deletions

142
configure vendored
View file

@ -422,8 +422,8 @@ curses=""
docs=""
fdt=""
netmap="no"
sdl=""
sdl_image=""
sdl="auto"
sdl_image="auto"
virtfs=""
mpath=""
vnc="yes"
@ -1137,13 +1137,13 @@ for opt do
# configure to be used by RPM and similar macros that set
# lots of directory switches by default.
;;
--disable-sdl) sdl="no"
--disable-sdl) sdl="disabled"
;;
--enable-sdl) sdl="yes"
--enable-sdl) sdl="enabled"
;;
--disable-sdl-image) sdl_image="no"
--disable-sdl-image) sdl_image="disabled"
;;
--enable-sdl-image) sdl_image="yes"
--enable-sdl-image) sdl_image="enabled"
;;
--disable-qom-cast-debug) qom_cast_debug="no"
;;
@ -2435,7 +2435,7 @@ if test "$cocoa" = "yes"; then
error_exit "Cocoa and GTK UIs cannot both be enabled at once"
fi
gtk=no
sdl=no
sdl=disabled
fi
# Some versions of Mac OS X incorrectly define SIZE_MAX
@ -3334,125 +3334,6 @@ if test "$vte" != "no"; then
fi
fi
##########################################
# SDL probe
# Look for sdl configuration program (pkg-config or sdl2-config). Try
# sdl2-config even without cross prefix, and favour pkg-config over sdl2-config.
sdl_probe ()
{
if $pkg_config sdl2 --exists; then
sdlconfig="$pkg_config sdl2"
sdlversion=$($sdlconfig --modversion 2>/dev/null)
elif has "$sdl2_config"; then
sdlconfig="$sdl2_config"
sdlversion=$($sdlconfig --version)
else
if test "$sdl" = "yes" ; then
feature_not_found "sdl" "Install SDL2-devel"
fi
sdl=no
# no need to do the rest
return
fi
if test -n "$cross_prefix" && test "$(basename "$sdlconfig")" = sdl2-config; then
echo warning: using "\"$sdlconfig\"" to detect cross-compiled sdl >&2
fi
cat > $TMPC << EOF
#include <SDL.h>
#undef main /* We don't want SDL to override our main() */
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
EOF
sdl_cflags=$($sdlconfig --cflags 2>/dev/null)
sdl_cflags="$sdl_cflags -Wno-undef" # workaround 2.0.8 bug
if test "$static" = "yes" ; then
if $pkg_config sdl2 --exists; then
sdl_libs=$($pkg_config sdl2 --static --libs 2>/dev/null)
else
sdl_libs=$($sdlconfig --static-libs 2>/dev/null)
fi
else
sdl_libs=$($sdlconfig --libs 2>/dev/null)
fi
if compile_prog "$sdl_cflags" "$sdl_libs" ; then
sdl=yes
# static link with sdl ? (note: sdl.pc's --static --libs is broken)
if test "$sdl" = "yes" && test "$static" = "yes" ; then
if test $? = 0 && echo $sdl_libs | grep -- -laa > /dev/null; then
sdl_libs="$sdl_libs $(aalib-config --static-libs 2>/dev/null)"
sdl_cflags="$sdl_cflags $(aalib-config --cflags 2>/dev/null)"
fi
if compile_prog "$sdl_cflags" "$sdl_libs" ; then
:
else
sdl=no
fi
fi # static link
else # sdl not found
if test "$sdl" = "yes" ; then
feature_not_found "sdl" "Install SDL2 devel"
fi
sdl=no
fi # sdl compile test
}
sdl_image_probe ()
{
if test "$sdl_image" != "no" ; then
if $pkg_config SDL2_image --exists; then
if test "$static" = "yes"; then
sdl_image_libs=$($pkg_config SDL2_image --libs --static 2>/dev/null)
else
sdl_image_libs=$($pkg_config SDL2_image --libs 2>/dev/null)
fi
sdl_image_cflags=$($pkg_config SDL2_image --cflags 2>/dev/null)
sdl_image=yes
sdl_cflags="$sdl_cflags $sdl_image_cflags"
sdl_libs="$sdl_libs $sdl_image_libs"
else
if test "$sdl_image" = "yes" ; then
feature_not_found "sdl_image" "Install SDL Image devel"
else
sdl_image=no
fi
fi
fi
}
if test "$sdl" != "no" ; then
sdl_probe
fi
if test "$sdl" = "yes" ; then
sdl_image_probe
else
if test "$sdl_image" = "yes"; then
echo "warning: SDL Image requested, but SDL is not available, disabling"
fi
sdl_image=no
fi
if test "$sdl" = "yes" ; then
cat > $TMPC <<EOF
#include <SDL.h>
#if defined(SDL_VIDEO_DRIVER_X11)
#include <X11/XKBlib.h>
#else
#error No x11 support
#endif
int main(void) { return 0; }
EOF
if compile_prog "$sdl_cflags $x11_cflags" "$sdl_libs $x11_libs" ; then
need_x11=yes
sdl_cflags="$sdl_cflags $x11_cflags"
sdl_libs="$sdl_libs $x11_libs"
fi
fi
##########################################
# RDMA needs OpenFabrics libraries
if test "$rdma" != "no" ; then
@ -7054,14 +6935,6 @@ if test "$have_x11" = "yes" && test "$need_x11" = "yes"; then
echo "X11_CFLAGS=$x11_cflags" >> $config_host_mak
echo "X11_LIBS=$x11_libs" >> $config_host_mak
fi
if test "$sdl" = "yes" ; then
echo "CONFIG_SDL=m" >> $config_host_mak
echo "SDL_CFLAGS=$sdl_cflags" >> $config_host_mak
echo "SDL_LIBS=$sdl_libs" >> $config_host_mak
if test "$sdl_image" = "yes" ; then
echo "CONFIG_SDL_IMAGE=y" >> $config_host_mak
fi
fi
if test "$cocoa" = "yes" ; then
echo "CONFIG_COCOA=y" >> $config_host_mak
fi
@ -8453,6 +8326,7 @@ NINJA=$PWD/ninjatool $meson setup \
-Dstrip=$(if test "$strip_opt" = yes; then echo true; else echo false; fi) \
-Db_pie=$(if test "$pie" = yes; then echo true; else echo false; fi) \
-Db_coverage=$(if test "$gcov" = yes; then echo true; else echo false; fi) \
-Dsdl=$sdl -Dsdl_image=$sdl_image \
$cross_arg \
"$PWD" "$source_path"