From 954bbdf3aeb6212384372a003650f39416c82083 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 1 Aug 2022 09:51:21 -0700 Subject: [PATCH] Allow emscripten platform to build without threads --- CMakeLists.txt | 12 ++++++++---- configure | 15 +++++---------- configure.ac | 11 ++++++----- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8869ad627..ab62ba097 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2711,10 +2711,14 @@ endif() # We always need to have threads and timers around if(NOT HAVE_SDL_THREADS) - message_error("Threads are needed by many SDL subsystems and may not be disabled") - #set(SDL_THREADS_DISABLED 1) - #file(GLOB THREADS_SOURCES ${SDL2_SOURCE_DIR}/src/thread/generic/*.c) - #list(APPEND SOURCE_FILES ${THREADS_SOURCES}) + # The emscripten platform has been carefully vetted to work without threads + if (EMSCRIPTEN) + set(SDL_THREADS_DISABLED 1) + file(GLOB THREADS_SOURCES ${SDL2_SOURCE_DIR}/src/thread/generic/*.c) + list(APPEND SOURCE_FILES ${THREADS_SOURCES}) + else() + message_error("Threads are needed by many SDL subsystems and may not be disabled") + endif() endif() if(NOT HAVE_SDL_TIMERS) set(SDL_TIMER_DUMMY 1) diff --git a/configure b/configure index 6f65b6eae..cec44426d 100755 --- a/configure +++ b/configure @@ -852,7 +852,6 @@ enable_hidapi enable_sensor enable_power enable_filesystem -enable_threads enable_timers enable_file enable_misc @@ -1643,7 +1642,6 @@ Optional Features: --enable-sensor Enable the sensor subsystem [default=yes] --enable-power Enable the power subsystem [default=yes] --enable-filesystem Enable the filesystem subsystem [default=yes] - --enable-threads Enable the threading subsystem [default=yes] --enable-timers Enable the timer subsystem [default=yes] --enable-file Enable the file subsystem [default=yes] --enable-misc Enable the misc subsystem [default=yes] @@ -20351,14 +20349,11 @@ printf "%s\n" "#define SDL_FILESYSTEM_DISABLED 1" >>confdefs.h else SUMMARY_modules="${SUMMARY_modules} filesystem" fi -# Check whether --enable-threads was given. -if test ${enable_threads+y} -then : - enableval=$enable_threads; -else $as_nop - enable_threads=yes -fi - +# Many subsystems depend on threads, so leave them enabled by default +#AC_ARG_ENABLE(threads, +#[AS_HELP_STRING([--enable-threads], [Enable the threading subsystem [default=yes]])], +# , enable_threads=yes) +enable_threads=yes if test x$enable_threads != xyes; then printf "%s\n" "#define SDL_THREADS_DISABLED 1" >>confdefs.h diff --git a/configure.ac b/configure.ac index 5d59cd90a..af97cec00 100644 --- a/configure.ac +++ b/configure.ac @@ -526,11 +526,12 @@ fi #AC_ARG_ENABLE(threads, #[AS_HELP_STRING([--enable-threads], [Enable the threading subsystem [default=yes]])], # , enable_threads=yes) -#if test x$enable_threads != xyes; then -# AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ]) -#else -# SUMMARY_modules="${SUMMARY_modules} threads" -#fi +enable_threads=yes +if test x$enable_threads != xyes; then + AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ]) +else + SUMMARY_modules="${SUMMARY_modules} threads" +fi AC_ARG_ENABLE(timers, [AS_HELP_STRING([--enable-timers], [Enable the timer subsystem [default=yes]])], , enable_timers=yes)