diff options
Diffstat (limited to 'src/contrib/SDL-3.2.20/build-scripts/rename_macros.py')
-rwxr-xr-x | src/contrib/SDL-3.2.20/build-scripts/rename_macros.py | 382 |
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 | |||
5 | import argparse | ||
6 | import pathlib | ||
7 | import re | ||
8 | |||
9 | |||
10 | class 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 | |||
38 | class 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 | |||
49 | def 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 | |||
62 | def 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 | |||
78 | def 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 | |||
87 | def 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 | |||
94 | def 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 | |||
106 | RENAMED_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 | |||
141 | DEPRECATED_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 | |||
380 | if __name__ == "__main__": | ||
381 | raise SystemExit(main()) | ||
382 | |||