From 998117b3ff80640fb2840522fddfef13417aa62f Mon Sep 17 00:00:00 2001
From: pionere <[EMAIL REDACTED]>
Date: Sun, 9 Jan 2022 16:00:22 +0100
Subject: [PATCH] add 'Misc' subsystem
---
CMakeLists.txt | 73 ++++++++++++++++++++++----------------
include/SDL_config.h.cmake | 1 +
include/SDL_config.h.in | 1 +
3 files changed, 45 insertions(+), 30 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4ea56547451..b8e2278985f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -361,7 +361,7 @@ set(LONGESTOPTIONNAME 0) # set_option and friends will change this.
set(SDL_SUBSYSTEMS
Atomic Audio Video Render Events Joystick Haptic Hidapi Power Threads Timers
- File Loadso CPUinfo Filesystem Dlopen Sensor Locale)
+ File Loadso CPUinfo Filesystem Dlopen Sensor Locale Misc)
foreach(_SUB ${SDL_SUBSYSTEMS})
string(TOUPPER ${_SUB} _OPT)
if (NOT DEFINED SDL_${_OPT}_ENABLED_BY_DEFAULT)
@@ -1037,9 +1037,11 @@ if(ANDROID)
file(GLOB ANDROID_CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/android/*.c)
set(SOURCE_FILES ${SOURCE_FILES} ${ANDROID_CORE_SOURCES} ${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c)
- file(GLOB ANDROID_MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/android/*.c)
- set(SOURCE_FILES ${SOURCE_FILES} ${ANDROID_MISC_SOURCES})
- set(HAVE_SDL_MISC TRUE)
+ if(SDL_MISC)
+ file(GLOB ANDROID_MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/android/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${ANDROID_MISC_SOURCES})
+ set(HAVE_SDL_MISC TRUE)
+ endif()
# SDL_spinlock.c Needs to be compiled in ARM mode.
# There seems to be no better way currently to set the ARM mode.
@@ -1449,9 +1451,11 @@ elseif(UNIX AND NOT APPLE AND NOT ANDROID AND NOT RISCOS AND NOT HAIKU)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_LINUX_VERSION_H")
endif()
- file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/unix/*.c)
- set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES})
- set(HAVE_SDL_MISC TRUE)
+ if(SDL_MISC)
+ file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/unix/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES})
+ set(HAVE_SDL_MISC TRUE)
+ endif()
if(SDL_POWER)
if(LINUX)
@@ -1523,14 +1527,15 @@ elseif(WINDOWS)
endif()
endif()
- if(WINDOWS_STORE)
- file(GLOB WINRT_MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/winrt/*.cpp)
- set(SOURCE_FILES ${SOURCE_FILES} ${WINRT_MISC_SOURCES})
- else()
- file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/windows/*.c)
- set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES})
+ if(SDL_MISC)
+ if(WINDOWS_STORE)
+ file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/winrt/*.cpp)
+ else()
+ file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/windows/*.c)
+ endif()
+ set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES})
+ set(HAVE_SDL_MISC TRUE)
endif()
- set(HAVE_SDL_MISC TRUE)
# Check for DirectX
if(SDL_DIRECTX)
@@ -1825,14 +1830,16 @@ elseif(APPLE)
message_error("SDL_FILE must be enabled to build on MacOS X")
endif()
- if(IOS OR TVOS)
- file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/ios/*.m)
- file(GLOB SDLMAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/uikit/*.c)
- else()
- file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/macosx/*.m)
+ if(SDL_MISC)
+ if(IOS OR TVOS)
+ file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/ios/*.m)
+ file(GLOB SDLMAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/uikit/*.c)
+ else()
+ file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/macosx/*.m)
+ endif()
+ set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES})
+ set(HAVE_SDL_MISC TRUE)
endif()
- set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES})
- set(HAVE_SDL_MISC TRUE)
if(SDL_AUDIO)
set(SDL_AUDIO_DRIVER_COREAUDIO 1)
@@ -2127,9 +2134,11 @@ elseif(HAIKU)
set(HAVE_SDL_JOYSTICK TRUE)
endif()
- file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/haiku/*.cc)
- set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES})
- set(HAVE_SDL_MISC TRUE)
+ if(SDL_MISC)
+ file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/haiku/*.cc)
+ set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES})
+ set(HAVE_SDL_MISC TRUE)
+ endif()
if(SDL_VIDEO)
set(SDL_VIDEO_DRIVER_HAIKU 1)
@@ -2181,9 +2190,11 @@ elseif(HAIKU)
list(APPEND EXTRA_LIBS root be media game device textencoding)
elseif(RISCOS)
- file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/riscos/*.c)
- set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES})
- set(HAVE_SDL_MISC TRUE)
+ if(SDL_MISC)
+ file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/riscos/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES})
+ set(HAVE_SDL_MISC TRUE)
+ endif()
if(SDL_VIDEO)
set(SDL_VIDEO_DRIVER_RISCOS 1)
@@ -2223,9 +2234,11 @@ elseif(VITA)
set_source_files_properties(${SDL2_SOURCE_DIR}/src/atomic/SDL_spinlock.c PROPERTIES COMPILE_FLAGS -marm)
endif()
- file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/vita/*.c)
- set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES})
- set(HAVE_SDL_MISC TRUE)
+ if(SDL_MISC)
+ file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/vita/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES})
+ set(HAVE_SDL_MISC TRUE)
+ endif()
if(SDL_AUDIO)
set(SDL_AUDIO_DRIVER_VITA 1)
diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake
index ee4ffeb8f2f..af135c93abd 100644
--- a/include/SDL_config.h.cmake
+++ b/include/SDL_config.h.cmake
@@ -278,6 +278,7 @@
#cmakedefine SDL_POWER_DISABLED @SDL_POWER_DISABLED@
#cmakedefine SDL_FILESYSTEM_DISABLED @SDL_FILESYSTEM_DISABLED@
#cmakedefine SDL_LOCALE_DISABLED @SDL_LOCALE_DISABLED@
+#cmakedefine SDL_MISC_DISABLED @SDL_MISC_DISABLED@
/* Enable various audio drivers */
#cmakedefine SDL_AUDIO_DRIVER_ALSA @SDL_AUDIO_DRIVER_ALSA@
diff --git a/include/SDL_config.h.in b/include/SDL_config.h.in
index a6ab9015e80..5ef2c15b93b 100644
--- a/include/SDL_config.h.in
+++ b/include/SDL_config.h.in
@@ -264,6 +264,7 @@
#undef SDL_POWER_DISABLED
#undef SDL_FILESYSTEM_DISABLED
#undef SDL_LOCALE_DISABLED
+#undef SDL_MISC_DISABLED
/* Enable various audio drivers */
#undef SDL_AUDIO_DRIVER_AAUDIO