summaryrefslogtreecommitdiff
path: root/src/contrib/SDL-3.2.20/build-scripts/rename_macros.py
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2025-08-30 16:53:58 -0700
committer3gg <3gg@shellblade.net>2025-08-30 16:53:58 -0700
commit6aaedb813fa11ba0679c3051bc2eb28646b9506c (patch)
tree34acbfc9840e02cb4753e6306ea7ce978bf8b58e /src/contrib/SDL-3.2.20/build-scripts/rename_macros.py
parent8f228ade99dd3d4c8da9b78ade1815c9adf85c8f (diff)
Update to SDL3
Diffstat (limited to 'src/contrib/SDL-3.2.20/build-scripts/rename_macros.py')
-rwxr-xr-xsrc/contrib/SDL-3.2.20/build-scripts/rename_macros.py382
1 files changed, 382 insertions, 0 deletions
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 @@
1#!/usr/bin/env python3
2#
3# This script renames SDL macros in the specified paths
4
5import argparse
6import pathlib
7import re
8
9
10class TextReplacer:
11 def __init__(self, macros, repl_format):
12 if isinstance(macros, dict):
13 macros_keys = macros.keys()
14 else:
15 macros_keys = macros
16 self.macros = macros
17 self.re_macros = re.compile(r"\W(" + "|".join(macros_keys) + r")(?:\W|$)")
18 self.repl_format = repl_format
19
20 def apply(self, contents):
21 def cb(m):
22 macro = m.group(1)
23 original = m.group(0)
24 match_start, _ = m.span(0)
25 platform_start, platform_end = m.span(1)
26 if isinstance(self.macros, dict):
27 repl_args = (macro, self.macros[macro])
28 else:
29 repl_args = macro,
30 new_text = self.repl_format.format(*repl_args)
31 r = original[:(platform_start-match_start)] + new_text + original[platform_end-match_start:]
32 return r
33 contents, _ = self.re_macros.subn(cb, contents)
34
35 return contents
36
37
38class MacrosCheck:
39 def __init__(self):
40 self.renamed_platform_macros = TextReplacer(RENAMED_MACROS, "{1}")
41 self.deprecated_platform_macros = TextReplacer(DEPRECATED_PLATFORM_MACROS, "{0} /* {0} has been removed in SDL3 */")
42
43 def run(self, contents):
44 contents = self.renamed_platform_macros.apply(contents)
45 contents = self.deprecated_platform_macros.apply(contents)
46 return contents
47
48
49def apply_checks(paths):
50 checks = (
51 MacrosCheck(),
52 )
53
54 for entry in paths:
55 path = pathlib.Path(entry)
56 if not path.exists():
57 print("{} does not exist, skipping".format(entry))
58 continue
59 apply_checks_in_path(path, checks)
60
61
62def apply_checks_in_file(file, checks):
63 try:
64 with file.open("r", encoding="UTF-8", newline="") as rfp:
65 original = rfp.read()
66 contents = original
67 for check in checks:
68 contents = check.run(contents)
69 if contents != original:
70 with file.open("w", encoding="UTF-8", newline="") as wfp:
71 wfp.write(contents)
72 except UnicodeDecodeError:
73 print("%s is not text, skipping" % file)
74 except Exception as err:
75 print("%s" % err)
76
77
78def apply_checks_in_dir(path, checks):
79 for entry in path.glob("*"):
80 if entry.is_dir():
81 apply_checks_in_dir(entry, checks)
82 else:
83 print("Processing %s" % entry)
84 apply_checks_in_file(entry, checks)
85
86
87def apply_checks_in_path(path, checks):
88 if path.is_dir():
89 apply_checks_in_dir(path, checks)
90 else:
91 apply_checks_in_file(path, checks)
92
93
94def main():
95 parser = argparse.ArgumentParser(fromfile_prefix_chars='@', description="Rename macros for SDL3")
96 parser.add_argument("args", nargs="*", help="Input source files")
97 args = parser.parse_args()
98
99 try:
100 apply_checks(args.args)
101 except Exception as e:
102 print(e)
103 return 1
104
105
106RENAMED_MACROS = {
107 "__AIX__": "SDL_PLATFORM_AIX",
108 "__HAIKU__": "SDL_PLATFORM_HAIKU",
109 "__BSDI__": "SDL_PLATFORM_BSDI",
110 "__FREEBSD__": "SDL_PLATFORM_FREEBSD",
111 "__HPUX__": "SDL_PLATFORM_HPUX",
112 "__IRIX__": "SDL_PLATFORM_IRIX",
113 "__LINUX__": "SDL_PLATFORM_LINUX",
114 "__OS2__": "SDL_PLATFORM_OS2",
115 # "__ANDROID__": "SDL_PLATFORM_ANDROID,
116 "__APPLE__": "SDL_PLATFORM_APPLE",
117 "__TVOS__": "SDL_PLATFORM_TVOS",
118 "__IPHONEOS__": "SDL_PLATFORM_IOS",
119 "__MACOSX__": "SDL_PLATFORM_MACOS",
120 "__NETBSD__": "SDL_PLATFORM_NETBSD",
121 "__OPENBSD__": "SDL_PLATFORM_OPENBSD",
122 "__OSF__": "SDL_PLATFORM_OSF",
123 "__QNXNTO__": "SDL_PLATFORM_QNXNTO",
124 "__RISCOS__": "SDL_PLATFORM_RISCOS",
125 "__SOLARIS__": "SDL_PLATFORM_SOLARIS",
126 "__PSP__": "SDL_PLATFORM_PSP",
127 "__PS2__": "SDL_PLATFORM_PS2",
128 "__VITA__": "SDL_PLATFORM_VITA",
129 "__3DS__": "SDL_PLATFORM_3DS",
130 # "__unix__": "SDL_PLATFORM_UNIX,
131 "__XBOXSERIES__": "SDL_PLATFORM_XBOXSERIES",
132 "__XBOXONE__": "SDL_PLATFORM_XBOXONE",
133 "__WINDOWS__": "SDL_PLATFORM_WINDOWS",
134 "__WIN32__": "SDL_PLATFORM_WIN32",
135 # "__CYGWIN_": "SDL_PLATFORM_CYGWIN",
136 "__WINGDK__": "SDL_PLATFORM_WINGDK",
137 "__GDK__": "SDL_PLATFORM_GDK",
138 # "__EMSCRIPTEN__": "SDL_PLATFORM_EMSCRIPTEN",
139}
140
141DEPRECATED_PLATFORM_MACROS = {
142 "__DREAMCAST__",
143 "__NACL__",
144 "__PNACL__",
145 "__WINDOWS__",
146 "__WINRT__",
147 "SDL_ALTIVEC_BLITTERS",
148 "SDL_ARM_NEON_BLITTERS",
149 "SDL_ARM_SIMD_BLITTERS",
150 "SDL_ATOMIC_DISABLED",
151 "SDL_AUDIO_DISABLED",
152 "SDL_AUDIO_DRIVER_AAUDIO",
153 "SDL_AUDIO_DRIVER_ALSA",
154 "SDL_AUDIO_DRIVER_ALSA_DYNAMIC",
155 "SDL_AUDIO_DRIVER_ANDROID",
156 "SDL_AUDIO_DRIVER_ARTS",
157 "SDL_AUDIO_DRIVER_ARTS_DYNAMIC",
158 "SDL_AUDIO_DRIVER_COREAUDIO",
159 "SDL_AUDIO_DRIVER_DISK",
160 "SDL_AUDIO_DRIVER_DSOUND",
161 "SDL_AUDIO_DRIVER_DUMMY",
162 "SDL_AUDIO_DRIVER_EMSCRIPTEN",
163 "SDL_AUDIO_DRIVER_ESD",
164 "SDL_AUDIO_DRIVER_ESD_DYNAMIC",
165 "SDL_AUDIO_DRIVER_FUSIONSOUND",
166 "SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC",
167 "SDL_AUDIO_DRIVER_HAIKU",
168 "SDL_AUDIO_DRIVER_JACK",
169 "SDL_AUDIO_DRIVER_JACK_DYNAMIC",
170 "SDL_AUDIO_DRIVER_N3DS",
171 "SDL_AUDIO_DRIVER_NAS",
172 "SDL_AUDIO_DRIVER_NAS_DYNAMIC",
173 "SDL_AUDIO_DRIVER_NETBSD",
174 "SDL_AUDIO_DRIVER_OPENSLES",
175 "SDL_AUDIO_DRIVER_OS2",
176 "SDL_AUDIO_DRIVER_OSS",
177 "SDL_AUDIO_DRIVER_PAUDIO",
178 "SDL_AUDIO_DRIVER_PIPEWIRE",
179 "SDL_AUDIO_DRIVER_PIPEWIRE_DYNAMIC",
180 "SDL_AUDIO_DRIVER_PS2",
181 "SDL_AUDIO_DRIVER_PSP",
182 "SDL_AUDIO_DRIVER_PULSEAUDIO",
183 "SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC",
184 "SDL_AUDIO_DRIVER_QSA",
185 "SDL_AUDIO_DRIVER_SNDIO",
186 "SDL_AUDIO_DRIVER_SNDIO_DYNAMIC",
187 "SDL_AUDIO_DRIVER_SUNAUDIO",
188 "SDL_AUDIO_DRIVER_VITA",
189 "SDL_AUDIO_DRIVER_WASAPI",
190 "SDL_AUDIO_DRIVER_WINMM",
191 "SDL_CPUINFO_DISABLED",
192 "SDL_DEFAULT_ASSERT_LEVEL",
193 "SDL_EVENTS_DISABLED",
194 "SDL_FILESYSTEM_ANDROID",
195 "SDL_FILESYSTEM_COCOA",
196 "SDL_FILESYSTEM_DISABLED",
197 "SDL_FILESYSTEM_DUMMY",
198 "SDL_FILESYSTEM_EMSCRIPTEN",
199 "SDL_FILESYSTEM_HAIKU",
200 "SDL_FILESYSTEM_N3DS",
201 "SDL_FILESYSTEM_OS2",
202 "SDL_FILESYSTEM_PS2",
203 "SDL_FILESYSTEM_PSP",
204 "SDL_FILESYSTEM_RISCOS",
205 "SDL_FILESYSTEM_UNIX",
206 "SDL_FILESYSTEM_VITA",
207 "SDL_FILESYSTEM_WINDOWS",
208 "SDL_FILE_DISABLED",
209 "SDL_HAPTIC_ANDROID",
210 "SDL_HAPTIC_DINPUT",
211 "SDL_HAPTIC_DISABLED",
212 "SDL_HAPTIC_DUMMY",
213 "SDL_HAPTIC_IOKIT",
214 "SDL_HAPTIC_LINUX",
215 "SDL_HAPTIC_XINPUT",
216 "SDL_HAVE_LIBDECOR_GET_MIN_MAX",
217 "SDL_HAVE_MACHINE_JOYSTICK_H",
218 "SDL_HIDAPI_DISABLED",
219 "SDL_INPUT_FBSDKBIO",
220 "SDL_INPUT_LINUXEV",
221 "SDL_INPUT_LINUXKD",
222 "SDL_INPUT_WSCONS",
223 "SDL_IPHONE_KEYBOARD",
224 "SDL_IPHONE_LAUNCHSCREEN",
225 "SDL_JOYSTICK_ANDROID",
226 "SDL_JOYSTICK_DINPUT",
227 "SDL_JOYSTICK_DISABLED",
228 "SDL_JOYSTICK_DUMMY",
229 "SDL_JOYSTICK_EMSCRIPTEN",
230 "SDL_JOYSTICK_HAIKU",
231 "SDL_JOYSTICK_HIDAPI",
232 "SDL_JOYSTICK_IOKIT",
233 "SDL_JOYSTICK_LINUX",
234 "SDL_JOYSTICK_MFI",
235 "SDL_JOYSTICK_N3DS",
236 "SDL_JOYSTICK_OS2",
237 "SDL_JOYSTICK_PS2",
238 "SDL_JOYSTICK_PSP",
239 "SDL_JOYSTICK_RAWINPUT",
240 "SDL_JOYSTICK_USBHID",
241 "SDL_JOYSTICK_VIRTUAL",
242 "SDL_JOYSTICK_VITA",
243 "SDL_JOYSTICK_WGI",
244 "SDL_JOYSTICK_XINPUT",
245 "SDL_LIBSAMPLERATE_DYNAMIC",
246 "SDL_LIBUSB_DYNAMIC",
247 "SDL_LOADSO_DISABLED",
248 "SDL_LOADSO_DLOPEN",
249 "SDL_LOADSO_DUMMY",
250 "SDL_LOADSO_LDG",
251 "SDL_LOADSO_OS2",
252 "SDL_LOADSO_WINDOWS",
253 "SDL_LOCALE_DISABLED",
254 "SDL_LOCALE_DUMMY",
255 "SDL_MISC_DISABLED",
256 "SDL_MISC_DUMMY",
257 "SDL_POWER_ANDROID",
258 "SDL_POWER_DISABLED",
259 "SDL_POWER_EMSCRIPTEN",
260 "SDL_POWER_HAIKU",
261 "SDL_POWER_HARDWIRED",
262 "SDL_POWER_LINUX",
263 "SDL_POWER_MACOSX",
264 "SDL_POWER_N3DS",
265 "SDL_POWER_PSP",
266 "SDL_POWER_UIKIT",
267 "SDL_POWER_VITA",
268 "SDL_POWER_WINDOWS",
269 "SDL_POWER_WINRT",
270 "SDL_RENDER_DISABLED",
271 "SDL_SENSOR_ANDROID",
272 "SDL_SENSOR_COREMOTION",
273 "SDL_SENSOR_DISABLED",
274 "SDL_SENSOR_DUMMY",
275 "SDL_SENSOR_N3DS",
276 "SDL_SENSOR_VITA",
277 "SDL_SENSOR_WINDOWS",
278 "SDL_THREADS_DISABLED",
279 "SDL_THREAD_GENERIC_COND_SUFFIX",
280 "SDL_THREAD_N3DS",
281 "SDL_THREAD_OS2",
282 "SDL_THREAD_PS2",
283 "SDL_THREAD_PSP",
284 "SDL_THREAD_PTHREAD",
285 "SDL_THREAD_PTHREAD_RECURSIVE_MUTEX",
286 "SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP",
287 "SDL_THREAD_VITA",
288 "SDL_THREAD_WINDOWS",
289 "SDL_TIMERS_DISABLED",
290 "SDL_TIMER_DUMMY",
291 "SDL_TIMER_HAIKU",
292 "SDL_TIMER_N3DS",
293 "SDL_TIMER_OS2",
294 "SDL_TIMER_PS2",
295 "SDL_TIMER_PSP",
296 "SDL_TIMER_UNIX",
297 "SDL_TIMER_VITA",
298 "SDL_TIMER_WINDOWS",
299 "SDL_UDEV_DYNAMIC",
300 "SDL_USE_IME",
301 "SDL_USE_LIBICONV",
302 "SDL_VIDEO_DISABLED",
303 "SDL_VIDEO_DRIVER_ANDROID",
304 "SDL_VIDEO_DRIVER_COCOA",
305 "SDL_VIDEO_DRIVER_DIRECTFB",
306 "SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC",
307 "SDL_VIDEO_DRIVER_DUMMY",
308 "SDL_VIDEO_DRIVER_EMSCRIPTEN",
309 "SDL_VIDEO_DRIVER_HAIKU",
310 "SDL_VIDEO_DRIVER_KMSDRM",
311 "SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC",
312 "SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM",
313 "SDL_VIDEO_DRIVER_N3DS",
314 "SDL_VIDEO_DRIVER_OFFSCREEN",
315 "SDL_VIDEO_DRIVER_OS2",
316 "SDL_VIDEO_DRIVER_PS2",
317 "SDL_VIDEO_DRIVER_PSP",
318 "SDL_VIDEO_DRIVER_QNX",
319 "SDL_VIDEO_DRIVER_RISCOS",
320 "SDL_VIDEO_DRIVER_RPI",
321 "SDL_VIDEO_DRIVER_UIKIT",
322 "SDL_VIDEO_DRIVER_VITA",
323 "SDL_VIDEO_DRIVER_VIVANTE",
324 "SDL_VIDEO_DRIVER_VIVANTE_VDK",
325 "SDL_VIDEO_DRIVER_WAYLAND",
326 "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC",
327 "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR",
328 "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL",
329 "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_LIBDECOR",
330 "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON",
331 "SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH",
332 "SDL_VIDEO_DRIVER_WINDOWS",
333 "SDL_VIDEO_DRIVER_WINRT",
334 "SDL_VIDEO_DRIVER_X11",
335 "SDL_VIDEO_DRIVER_X11_DYNAMIC",
336 "SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR",
337 "SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT",
338 "SDL_VIDEO_DRIVER_X11_DYNAMIC_XFIXES",
339 "SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2",
340 "SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR",
341 "SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS",
342 "SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM",
343 "SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS",
344 "SDL_VIDEO_DRIVER_X11_XCURSOR",
345 "SDL_VIDEO_DRIVER_X11_XDBE",
346 "SDL_VIDEO_DRIVER_X11_XFIXES",
347 "SDL_VIDEO_DRIVER_X11_XINPUT2",
348 "SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH",
349 "SDL_VIDEO_DRIVER_X11_XRANDR",
350 "SDL_VIDEO_DRIVER_X11_XSCRNSAVER",
351 "SDL_VIDEO_DRIVER_X11_XSHAPE",
352 "SDL_VIDEO_METAL",
353 "SDL_VIDEO_OPENGL",
354 "SDL_VIDEO_OPENGL_BGL",
355 "SDL_VIDEO_OPENGL_CGL",
356 "SDL_VIDEO_OPENGL_EGL",
357 "SDL_VIDEO_OPENGL_ES",
358 "SDL_VIDEO_OPENGL_ES2",
359 "SDL_VIDEO_OPENGL_GLX",
360 "SDL_VIDEO_OPENGL_OSMESA",
361 "SDL_VIDEO_OPENGL_OSMESA_DYNAMIC",
362 "SDL_VIDEO_OPENGL_WGL",
363 "SDL_VIDEO_RENDER_D3D",
364 "SDL_VIDEO_RENDER_D3D11",
365 "SDL_VIDEO_RENDER_D3D12",
366 "SDL_VIDEO_RENDER_DIRECTFB",
367 "SDL_VIDEO_RENDER_METAL",
368 "SDL_VIDEO_RENDER_OGL",
369 "SDL_VIDEO_RENDER_OGL_ES",
370 "SDL_VIDEO_RENDER_OGL_ES2",
371 "SDL_VIDEO_RENDER_PS2",
372 "SDL_VIDEO_RENDER_PSP",
373 "SDL_VIDEO_RENDER_VITA_GXM",
374 "SDL_VIDEO_VITA_PIB",
375 "SDL_VIDEO_VITA_PVR",
376 "SDL_VIDEO_VITA_PVR_OGL",
377 "SDL_VIDEO_VULKAN",
378}
379
380if __name__ == "__main__":
381 raise SystemExit(main())
382