cmake+autotools: add option to enable/disable iconv

This commit is contained in:
Anonymous Maarten 2022-10-05 17:12:08 +02:00 committed by Sam Lantinga
parent e41942e814
commit c9f60cce40
3 changed files with 55 additions and 17 deletions

View file

@ -448,6 +448,7 @@ set_option(SDL_DIRECTFB "Use DirectFB video driver" OFF)
dep_option(SDL_DIRECTFB_SHARED "Dynamically load directfb support" ON "SDL_DIRECTFB" OFF) dep_option(SDL_DIRECTFB_SHARED "Dynamically load directfb support" ON "SDL_DIRECTFB" OFF)
set_option(SDL_DUMMYVIDEO "Use dummy video driver" ON) set_option(SDL_DUMMYVIDEO "Use dummy video driver" ON)
dep_option(SDL_IBUS "Enable IBus support" ON ${UNIX_SYS} OFF) dep_option(SDL_IBUS "Enable IBus support" ON ${UNIX_SYS} OFF)
set_option(SDL_ICONV "Support character set conversion through libiconv" ON)
set_option(SDL_OPENGL "Include OpenGL support" ON) set_option(SDL_OPENGL "Include OpenGL support" ON)
set_option(SDL_OPENGLES "Include OpenGL ES support" ON) set_option(SDL_OPENGLES "Include OpenGL ES support" ON)
set_option(SDL_PTHREADS "Use POSIX threads for multi-threading" ${SDL_PTHREADS_ENABLED_BY_DEFAULT}) set_option(SDL_PTHREADS "Use POSIX threads for multi-threading" ${SDL_PTHREADS_ENABLED_BY_DEFAULT})
@ -1023,14 +1024,16 @@ if(SDL_LIBC)
endif() endif()
endif() endif()
check_library_exists(iconv iconv_open "" HAVE_LIBICONV) if(SDL_ICONV)
if(HAVE_LIBICONV) check_library_exists(iconv iconv_open "" HAVE_LIBICONV)
list(APPEND EXTRA_LIBS iconv) if(HAVE_LIBICONV)
set(HAVE_ICONV 1) list(APPEND EXTRA_LIBS iconv)
else()
check_library_exists(c iconv_open "" HAVE_BUILTIN_ICONV)
if(HAVE_BUILTIN_ICONV)
set(HAVE_ICONV 1) set(HAVE_ICONV 1)
else()
check_library_exists(c iconv_open "" HAVE_BUILTIN_ICONV)
if(HAVE_BUILTIN_ICONV)
set(HAVE_ICONV 1)
endif()
endif() endif()
endif() endif()

31
configure vendored
View file

@ -840,6 +840,7 @@ enable_largefile
enable_assertions enable_assertions
enable_dependency_tracking enable_dependency_tracking
enable_libc enable_libc
enable_iconv
enable_gcc_atomics enable_gcc_atomics
enable_atomic enable_atomic
enable_audio enable_audio
@ -1631,6 +1632,8 @@ Optional Features:
--enable-dependency-tracking --enable-dependency-tracking
Use gcc -MMD -MT dependency tracking [default=yes] Use gcc -MMD -MT dependency tracking [default=yes]
--enable-libc Use the system C library [default=yes] --enable-libc Use the system C library [default=yes]
--enable-iconv Enable character set conversion through iconv
[default=yes]
--enable-gcc-atomics Use gcc builtin atomics [default=yes] --enable-gcc-atomics Use gcc builtin atomics [default=yes]
--enable-atomic Enable the atomic operations subsystem [default=yes] --enable-atomic Enable the atomic operations subsystem [default=yes]
--enable-audio Enable the audio subsystem [default=yes] --enable-audio Enable the audio subsystem [default=yes]
@ -18676,6 +18679,16 @@ else $as_nop
enable_libc=yes enable_libc=yes
fi fi
# Check whether --enable-iconv was given.
if test ${enable_iconv+y}
then :
enableval=$enable_iconv;
else $as_nop
enable_iconv=yes
fi
if test x$enable_libc = xyes; then if test x$enable_libc = xyes; then
printf "%s\n" "#define HAVE_LIBC 1" >>confdefs.h printf "%s\n" "#define HAVE_LIBC 1" >>confdefs.h
@ -19883,7 +19896,8 @@ then :
fi fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv_open in -liconv" >&5 if test x$enable_iconv = xyes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv_open in -liconv" >&5
printf %s "checking for iconv_open in -liconv... " >&6; } printf %s "checking for iconv_open in -liconv... " >&6; }
if test ${ac_cv_lib_iconv_iconv_open+y} if test ${ac_cv_lib_iconv_iconv_open+y}
then : then :
@ -19923,13 +19937,14 @@ then :
LIBS="$LIBS -liconv"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv" LIBS="$LIBS -liconv"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"
fi fi
ac_fn_c_check_func "$LINENO" "iconv" "ac_cv_func_iconv" ac_fn_c_check_func "$LINENO" "iconv" "ac_cv_func_iconv"
if test "x$ac_cv_func_iconv" = xyes if test "x$ac_cv_func_iconv" = xyes
then : then :
printf "%s\n" "#define HAVE_ICONV 1" >>confdefs.h printf "%s\n" "#define HAVE_ICONV 1" >>confdefs.h
fi fi
fi
ac_fn_c_check_member "$LINENO" "struct sigaction" "sa_sigaction" "ac_cv_member_struct_sigaction_sa_sigaction" "#include <signal.h> ac_fn_c_check_member "$LINENO" "struct sigaction" "sa_sigaction" "ac_cv_member_struct_sigaction_sa_sigaction" "#include <signal.h>
" "
@ -28967,7 +28982,11 @@ printf "%s\n" "#define SDL_VIDEO_RENDER_OGL_ES2 1" >>confdefs.h
SOURCES="$SOURCES $srcdir/src/video/uikit/*.m" SOURCES="$SOURCES $srcdir/src/video/uikit/*.m"
SUMMARY_video="${SUMMARY_video} uikit" SUMMARY_video="${SUMMARY_video} uikit"
have_video=yes have_video=yes
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm -liconv -lobjc" EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"
if test x$enable_iconv = xyes; then
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"
fi
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lobjc"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AVFoundation" EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AVFoundation"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AudioToolbox" EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AudioToolbox"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio" EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio"
@ -29263,8 +29282,10 @@ printf "%s\n" "#define SDL_TIMER_UNIX 1" >>confdefs.h
# Set up the core platform files # Set up the core platform files
SOURCES="$SOURCES $srcdir/src/core/os2/*.c" SOURCES="$SOURCES $srcdir/src/core/os2/*.c"
if test x$ac_cv_func_iconv != xyes -o x$ac_cv_header_iconv_h != xyes; then if test x$enable_iconv = xyes; then
SOURCES="$SOURCES $srcdir/src/core/os2/geniconv/*.c" if test x$ac_cv_func_iconv != xyes -o x$ac_cv_header_iconv_h != xyes; then
SOURCES="$SOURCES $srcdir/src/core/os2/geniconv/*.c"
fi
fi fi
# Use the Unix locale APIs. # Use the Unix locale APIs.
if test x$enable_locale = xyes; then if test x$enable_locale = xyes; then

View file

@ -317,6 +317,12 @@ dnl See whether we are allowed to use the system C library
AC_ARG_ENABLE(libc, AC_ARG_ENABLE(libc,
[AS_HELP_STRING([--enable-libc], [Use the system C library [default=yes]])], [AS_HELP_STRING([--enable-libc], [Use the system C library [default=yes]])],
, enable_libc=yes) , enable_libc=yes)
dnl See whether we are allowed to use libiconv
AC_ARG_ENABLE(iconv,
[AS_HELP_STRING([--enable-iconv], [Enable character set conversion through iconv [default=yes]])],
, enable_iconv=yes)
if test x$enable_libc = xyes; then if test x$enable_libc = xyes; then
AC_DEFINE(HAVE_LIBC, 1, [ ]) AC_DEFINE(HAVE_LIBC, 1, [ ])
@ -347,8 +353,10 @@ dnl Checks for library functions.
AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"]) AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
AC_CHECK_FUNCS(acos acosf asin asinf atan atanf atan2 atan2f ceil ceilf copysign copysignf cos cosf exp expf fabs fabsf floor floorf trunc truncf fmod fmodf log logf log10 log10f lround lroundf pow powf round roundf scalbn scalbnf sin sinf sqrt sqrtf tan tanf) AC_CHECK_FUNCS(acos acosf asin asinf atan atanf atan2 atan2f ceil ceilf copysign copysignf cos cosf exp expf fabs fabsf floor floorf trunc truncf fmod fmodf log logf log10 log10f lround lroundf pow powf round roundf scalbn scalbnf sin sinf sqrt sqrtf tan tanf)
AC_CHECK_LIB(iconv, iconv_open, [LIBS="$LIBS -liconv"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"]) if test x$enable_iconv = xyes; then
AC_CHECK_FUNCS(iconv) AC_CHECK_LIB(iconv, iconv_open, [LIBS="$LIBS -liconv"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"])
AC_CHECK_FUNCS(iconv)
fi
AC_CHECK_MEMBER(struct sigaction.sa_sigaction,[AC_DEFINE([HAVE_SA_SIGACTION], 1, [ ])], ,[#include <signal.h>]) AC_CHECK_MEMBER(struct sigaction.sa_sigaction,[AC_DEFINE([HAVE_SA_SIGACTION], 1, [ ])], ,[#include <signal.h>])
@ -4297,7 +4305,11 @@ dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
SOURCES="$SOURCES $srcdir/src/video/uikit/*.m" SOURCES="$SOURCES $srcdir/src/video/uikit/*.m"
SUMMARY_video="${SUMMARY_video} uikit" SUMMARY_video="${SUMMARY_video} uikit"
have_video=yes have_video=yes
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm -liconv -lobjc" EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"
if test x$enable_iconv = xyes; then
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"
fi
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lobjc"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AVFoundation" EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AVFoundation"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AudioToolbox" EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AudioToolbox"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio" EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio"
@ -4559,8 +4571,10 @@ dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
# Set up the core platform files # Set up the core platform files
SOURCES="$SOURCES $srcdir/src/core/os2/*.c" SOURCES="$SOURCES $srcdir/src/core/os2/*.c"
if test x$ac_cv_func_iconv != xyes -o x$ac_cv_header_iconv_h != xyes; then if test x$enable_iconv = xyes; then
SOURCES="$SOURCES $srcdir/src/core/os2/geniconv/*.c" if test x$ac_cv_func_iconv != xyes -o x$ac_cv_header_iconv_h != xyes; then
SOURCES="$SOURCES $srcdir/src/core/os2/geniconv/*.c"
fi
fi fi
# Use the Unix locale APIs. # Use the Unix locale APIs.
if test x$enable_locale = xyes; then if test x$enable_locale = xyes; then