From 6aaedb813fa11ba0679c3051bc2eb28646b9506c Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Sat, 30 Aug 2025 16:53:58 -0700 Subject: Update to SDL3 --- .../SDL-3.2.20/build-scripts/rename_macros.py | 382 +++++++++++++++++++++ 1 file changed, 382 insertions(+) create mode 100755 src/contrib/SDL-3.2.20/build-scripts/rename_macros.py (limited to 'src/contrib/SDL-3.2.20/build-scripts/rename_macros.py') diff --git a/src/contrib/SDL-3.2.20/build-scripts/rename_macros.py b/src/contrib/SDL-3.2.20/build-scripts/rename_macros.py new file mode 100755 index 0000000..978120c --- /dev/null +++ b/src/contrib/SDL-3.2.20/build-scripts/rename_macros.py @@ -0,0 +1,382 @@ +#!/usr/bin/env python3 +# +# This script renames SDL macros in the specified paths + +import argparse +import pathlib +import re + + +class TextReplacer: + def __init__(self, macros, repl_format): + if isinstance(macros, dict): + macros_keys = macros.keys() + else: + macros_keys = macros + self.macros = macros + self.re_macros = re.compile(r"\W(" + "|".join(macros_keys) + r")(?:\W|$)") + self.repl_format = repl_format + + def apply(self, contents): + def cb(m): + macro = m.group(1) + original = m.group(0) + match_start, _ = m.span(0) + platform_start, platform_end = m.span(1) + if isinstance(self.macros, dict): + repl_args = (macro, self.macros[macro]) + else: + repl_args = macro, + new_text = self.repl_format.format(*repl_args) + r = original[:(platform_start-match_start)] + new_text + original[platform_end-match_start:] + return r + contents, _ = self.re_macros.subn(cb, contents) + + return contents + + +class MacrosCheck: + def __init__(self): + self.renamed_platform_macros = TextReplacer(RENAMED_MACROS, "{1}") + self.deprecated_platform_macros = TextReplacer(DEPRECATED_PLATFORM_MACROS, "{0} /* {0} has been removed in SDL3 */") + + def run(self, contents): + contents = self.renamed_platform_macros.apply(contents) + contents = self.deprecated_platform_macros.apply(contents) + return contents + + +def apply_checks(paths): + checks = ( + MacrosCheck(), + ) + + for entry in paths: + path = pathlib.Path(entry) + if not path.exists(): + print("{} does not exist, skipping".format(entry)) + continue + apply_checks_in_path(path, checks) + + +def apply_checks_in_file(file, checks): + try: + with file.open("r", encoding="UTF-8", newline="") as rfp: + original = rfp.read() + contents = original + for check in checks: + contents = check.run(contents) + if contents != original: + with file.open("w", encoding="UTF-8", newline="") as wfp: + wfp.write(contents) + except UnicodeDecodeError: + print("%s is not text, skipping" % file) + except Exception as err: + print("%s" % err) + + +def apply_checks_in_dir(path, checks): + for entry in path.glob("*"): + if entry.is_dir(): + apply_checks_in_dir(entry, checks) + else: + print("Processing %s" % entry) + apply_checks_in_file(entry, checks) + + +def apply_checks_in_path(path, checks): + if path.is_dir(): + apply_checks_in_dir(path, checks) + else: + apply_checks_in_file(path, checks) + + +def main(): + parser = argparse.ArgumentParser(fromfile_prefix_chars='@', description="Rename macros for SDL3") + parser.add_argument("args", nargs="*", help="Input source files") + args = parser.parse_args() + + try: + apply_checks(args.args) + except Exception as e: + print(e) + return 1 + + +RENAMED_MACROS = { + "__AIX__": "SDL_PLATFORM_AIX", + "__HAIKU__": "SDL_PLATFORM_HAIKU", + "__BSDI__": "SDL_PLATFORM_BSDI", + "__FREEBSD__": "SDL_PLATFORM_FREEBSD", + "__HPUX__": "SDL_PLATFORM_HPUX", + "__IRIX__": "SDL_PLATFORM_IRIX", + "__LINUX__": "SDL_PLATFORM_LINUX", + "__OS2__": "SDL_PLATFORM_OS2", + # "__ANDROID__": "SDL_PLATFORM_ANDROID, + "__APPLE__": "SDL_PLATFORM_APPLE", + "__TVOS__": "SDL_PLATFORM_TVOS", + "__IPHONEOS__": "SDL_PLATFORM_IOS", + "__MACOSX__": "SDL_PLATFORM_MACOS", + "__NETBSD__": "SDL_PLATFORM_NETBSD", + "__OPENBSD__": "SDL_PLATFORM_OPENBSD", + "__OSF__": "SDL_PLATFORM_OSF", + "__QNXNTO__": "SDL_PLATFORM_QNXNTO", + "__RISCOS__": "SDL_PLATFORM_RISCOS", + "__SOLARIS__": "SDL_PLATFORM_SOLARIS", + "__PSP__": "SDL_PLATFORM_PSP", + "__PS2__": "SDL_PLATFORM_PS2", + "__VITA__": "SDL_PLATFORM_VITA", + "__3DS__": "SDL_PLATFORM_3DS", + # "__unix__": "SDL_PLATFORM_UNIX, + "__XBOXSERIES__": "SDL_PLATFORM_XBOXSERIES", + "__XBOXONE__": "SDL_PLATFORM_XBOXONE", + "__WINDOWS__": "SDL_PLATFORM_WINDOWS", + "__WIN32__": "SDL_PLATFORM_WIN32", + # "__CYGWIN_": "SDL_PLATFORM_CYGWIN", + "__WINGDK__": "SDL_PLATFORM_WINGDK", + "__GDK__": "SDL_PLATFORM_GDK", + # "__EMSCRIPTEN__": "SDL_PLATFORM_EMSCRIPTEN", +} + +DEPRECATED_PLATFORM_MACROS = { + "__DREAMCAST__", + "__NACL__", + "__PNACL__", + "__WINDOWS__", + "__WINRT__", + "SDL_ALTIVEC_BLITTERS", + "SDL_ARM_NEON_BLITTERS", + "SDL_ARM_SIMD_BLITTERS", + "SDL_ATOMIC_DISABLED", + "SDL_AUDIO_DISABLED", + "SDL_AUDIO_DRIVER_AAUDIO", + "SDL_AUDIO_DRIVER_ALSA", + "SDL_AUDIO_DRIVER_ALSA_DYNAMIC", + "SDL_AUDIO_DRIVER_ANDROID", + "SDL_AUDIO_DRIVER_ARTS", + "SDL_AUDIO_DRIVER_ARTS_DYNAMIC", + "SDL_AUDIO_DRIVER_COREAUDIO", + "SDL_AUDIO_DRIVER_DISK", + "SDL_AUDIO_DRIVER_DSOUND", + "SDL_AUDIO_DRIVER_DUMMY", + "SDL_AUDIO_DRIVER_EMSCRIPTEN", + "SDL_AUDIO_DRIVER_ESD", + "SDL_AUDIO_DRIVER_ESD_DYNAMIC", + "SDL_AUDIO_DRIVER_FUSIONSOUND", + "SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC", + "SDL_AUDIO_DRIVER_HAIKU", + "SDL_AUDIO_DRIVER_JACK", + "SDL_AUDIO_DRIVER_JACK_DYNAMIC", + "SDL_AUDIO_DRIVER_N3DS", + "SDL_AUDIO_DRIVER_NAS", + "SDL_AUDIO_DRIVER_NAS_DYNAMIC", + "SDL_AUDIO_DRIVER_NETBSD", + "SDL_AUDIO_DRIVER_OPENSLES", + "SDL_AUDIO_DRIVER_OS2", + "SDL_AUDIO_DRIVER_OSS", + "SDL_AUDIO_DRIVER_PAUDIO", + "SDL_AUDIO_DRIVER_PIPEWIRE", + "SDL_AUDIO_DRIVER_PIPEWIRE_DYNAMIC", + "SDL_AUDIO_DRIVER_PS2", + "SDL_AUDIO_DRIVER_PSP", + "SDL_AUDIO_DRIVER_PULSEAUDIO", + "SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC", + "SDL_AUDIO_DRIVER_QSA", + "SDL_AUDIO_DRIVER_SNDIO", + "SDL_AUDIO_DRIVER_SNDIO_DYNAMIC", + "SDL_AUDIO_DRIVER_SUNAUDIO", + "SDL_AUDIO_DRIVER_VITA", + "SDL_AUDIO_DRIVER_WASAPI", + "SDL_AUDIO_DRIVER_WINMM", + "SDL_CPUINFO_DISABLED", + "SDL_DEFAULT_ASSERT_LEVEL", + "SDL_EVENTS_DISABLED", + "SDL_FILESYSTEM_ANDROID", + "SDL_FILESYSTEM_COCOA", + "SDL_FILESYSTEM_DISABLED", + "SDL_FILESYSTEM_DUMMY", + "SDL_FILESYSTEM_EMSCRIPTEN", + "SDL_FILESYSTEM_HAIKU", + "SDL_FILESYSTEM_N3DS", + "SDL_FILESYSTEM_OS2", + "SDL_FILESYSTEM_PS2", + "SDL_FILESYSTEM_PSP", + "SDL_FILESYSTEM_RISCOS", + "SDL_FILESYSTEM_UNIX", + "SDL_FILESYSTEM_VITA", + "SDL_FILESYSTEM_WINDOWS", + "SDL_FILE_DISABLED", + "SDL_HAPTIC_ANDROID", + "SDL_HAPTIC_DINPUT", + "SDL_HAPTIC_DISABLED", + "SDL_HAPTIC_DUMMY", + "SDL_HAPTIC_IOKIT", + "SDL_HAPTIC_LINUX", + "SDL_HAPTIC_XINPUT", + "SDL_HAVE_LIBDECOR_GET_MIN_MAX", + "SDL_HAVE_MACHINE_JOYSTICK_H", + "SDL_HIDAPI_DISABLED", + "SDL_INPUT_FBSDKBIO", + "SDL_INPUT_LINUXEV", + "SDL_INPUT_LINUXKD", + "SDL_INPUT_WSCONS", + "SDL_IPHONE_KEYBOARD", + "SDL_IPHONE_LAUNCHSCREEN", + "SDL_JOYSTICK_ANDROID", + "SDL_JOYSTICK_DINPUT", + "SDL_JOYSTICK_DISABLED", + "SDL_JOYSTICK_DUMMY", + "SDL_JOYSTICK_EMSCRIPTEN", + "SDL_JOYSTICK_HAIKU", + "SDL_JOYSTICK_HIDAPI", + "SDL_JOYSTICK_IOKIT", + "SDL_JOYSTICK_LINUX", + "SDL_JOYSTICK_MFI", + "SDL_JOYSTICK_N3DS", + "SDL_JOYSTICK_OS2", + "SDL_JOYSTICK_PS2", + "SDL_JOYSTICK_PSP", + "SDL_JOYSTICK_RAWINPUT", + "SDL_JOYSTICK_USBHID", + "SDL_JOYSTICK_VIRTUAL", + "SDL_JOYSTICK_VITA", + "SDL_JOYSTICK_WGI", + "SDL_JOYSTICK_XINPUT", + "SDL_LIBSAMPLERATE_DYNAMIC", + "SDL_LIBUSB_DYNAMIC", + "SDL_LOADSO_DISABLED", + "SDL_LOADSO_DLOPEN", + "SDL_LOADSO_DUMMY", + "SDL_LOADSO_LDG", + "SDL_LOADSO_OS2", + "SDL_LOADSO_WINDOWS", + "SDL_LOCALE_DISABLED", + "SDL_LOCALE_DUMMY", + "SDL_MISC_DISABLED", + "SDL_MISC_DUMMY", + "SDL_POWER_ANDROID", + "SDL_POWER_DISABLED", + "SDL_POWER_EMSCRIPTEN", + "SDL_POWER_HAIKU", + "SDL_POWER_HARDWIRED", + "SDL_POWER_LINUX", + "SDL_POWER_MACOSX", + "SDL_POWER_N3DS", + "SDL_POWER_PSP", + "SDL_POWER_UIKIT", + "SDL_POWER_VITA", + "SDL_POWER_WINDOWS", + "SDL_POWER_WINRT", + "SDL_RENDER_DISABLED", + "SDL_SENSOR_ANDROID", + "SDL_SENSOR_COREMOTION", + "SDL_SENSOR_DISABLED", + "SDL_SENSOR_DUMMY", + "SDL_SENSOR_N3DS", + "SDL_SENSOR_VITA", + "SDL_SENSOR_WINDOWS", + "SDL_THREADS_DISABLED", + "SDL_THREAD_GENERIC_COND_SUFFIX", + "SDL_THREAD_N3DS", + "SDL_THREAD_OS2", + "SDL_THREAD_PS2", + "SDL_THREAD_PSP", + "SDL_THREAD_PTHREAD", + "SDL_THREAD_PTHREAD_RECURSIVE_MUTEX", + "SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP", + "SDL_THREAD_VITA", + "SDL_THREAD_WINDOWS", + "SDL_TIMERS_DISABLED", + "SDL_TIMER_DUMMY", + "SDL_TIMER_HAIKU", + "SDL_TIMER_N3DS", + "SDL_TIMER_OS2", + "SDL_TIMER_PS2", + "SDL_TIMER_PSP", + "SDL_TIMER_UNIX", + "SDL_TIMER_VITA", + "SDL_TIMER_WINDOWS", + "SDL_UDEV_DYNAMIC", + "SDL_USE_IME", + "SDL_USE_LIBICONV", + "SDL_VIDEO_DISABLED", + "SDL_VIDEO_DRIVER_ANDROID", + "SDL_VIDEO_DRIVER_COCOA", + "SDL_VIDEO_DRIVER_DIRECTFB", + "SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC", + "SDL_VIDEO_DRIVER_DUMMY", + "SDL_VIDEO_DRIVER_EMSCRIPTEN", + "SDL_VIDEO_DRIVER_HAIKU", + "SDL_VIDEO_DRIVER_KMSDRM", + "SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC", + "SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM", + "SDL_VIDEO_DRIVER_N3DS", + "SDL_VIDEO_DRIVER_OFFSCREEN", + "SDL_VIDEO_DRIVER_OS2", + "SDL_VIDEO_DRIVER_PS2", + "SDL_VIDEO_DRIVER_PSP", + "SDL_VIDEO_DRIVER_QNX", + "SDL_VIDEO_DRIVER_RISCOS", + "SDL_VIDEO_DRIVER_RPI", + "SDL_VIDEO_DRIVER_UIKIT", + "SDL_VIDEO_DRIVER_VITA", + "SDL_VIDEO_DRIVER_VIVANTE", + "SDL_VIDEO_DRIVER_VIVANTE_VDK", + "SDL_VIDEO_DRIVER_WAYLAND", + "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC", + "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR", + "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL", + "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_LIBDECOR", + "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON", + "SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH", + "SDL_VIDEO_DRIVER_WINDOWS", + "SDL_VIDEO_DRIVER_WINRT", + "SDL_VIDEO_DRIVER_X11", + "SDL_VIDEO_DRIVER_X11_DYNAMIC", + "SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR", + "SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT", + "SDL_VIDEO_DRIVER_X11_DYNAMIC_XFIXES", + "SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2", + "SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR", + "SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS", + "SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM", + "SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS", + "SDL_VIDEO_DRIVER_X11_XCURSOR", + "SDL_VIDEO_DRIVER_X11_XDBE", + "SDL_VIDEO_DRIVER_X11_XFIXES", + "SDL_VIDEO_DRIVER_X11_XINPUT2", + "SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH", + "SDL_VIDEO_DRIVER_X11_XRANDR", + "SDL_VIDEO_DRIVER_X11_XSCRNSAVER", + "SDL_VIDEO_DRIVER_X11_XSHAPE", + "SDL_VIDEO_METAL", + "SDL_VIDEO_OPENGL", + "SDL_VIDEO_OPENGL_BGL", + "SDL_VIDEO_OPENGL_CGL", + "SDL_VIDEO_OPENGL_EGL", + "SDL_VIDEO_OPENGL_ES", + "SDL_VIDEO_OPENGL_ES2", + "SDL_VIDEO_OPENGL_GLX", + "SDL_VIDEO_OPENGL_OSMESA", + "SDL_VIDEO_OPENGL_OSMESA_DYNAMIC", + "SDL_VIDEO_OPENGL_WGL", + "SDL_VIDEO_RENDER_D3D", + "SDL_VIDEO_RENDER_D3D11", + "SDL_VIDEO_RENDER_D3D12", + "SDL_VIDEO_RENDER_DIRECTFB", + "SDL_VIDEO_RENDER_METAL", + "SDL_VIDEO_RENDER_OGL", + "SDL_VIDEO_RENDER_OGL_ES", + "SDL_VIDEO_RENDER_OGL_ES2", + "SDL_VIDEO_RENDER_PS2", + "SDL_VIDEO_RENDER_PSP", + "SDL_VIDEO_RENDER_VITA_GXM", + "SDL_VIDEO_VITA_PIB", + "SDL_VIDEO_VITA_PVR", + "SDL_VIDEO_VITA_PVR_OGL", + "SDL_VIDEO_VULKAN", +} + +if __name__ == "__main__": + raise SystemExit(main()) + -- cgit v1.2.3