rename_macros.py 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576
  1. #!/usr/bin/env python3
  2. #
  3. # This script renames SDL macros in the specified paths
  4. import argparse
  5. import pathlib
  6. import re
  7. class TextReplacer:
  8. def __init__(self, macros, repl_format):
  9. if isinstance(macros, dict):
  10. macros_keys = macros.keys()
  11. else:
  12. macros_keys = macros
  13. self.macros = macros
  14. self.re_macros = re.compile(r"\W(" + "|".join(macros_keys) + r")(?:\W|$)")
  15. self.repl_format = repl_format
  16. def apply(self, contents):
  17. def cb(m):
  18. macro = m.group(1)
  19. original = m.group(0)
  20. match_start, _ = m.span(0)
  21. platform_start, platform_end = m.span(1)
  22. if isinstance(self.macros, dict):
  23. repl_args = (macro, self.macros[macro])
  24. else:
  25. repl_args = macro,
  26. new_text = self.repl_format.format(*repl_args)
  27. r = original[:(platform_start-match_start)] + new_text + original[platform_end-match_start:]
  28. return r
  29. contents, _ = self.re_macros.subn(cb, contents)
  30. return contents
  31. class MacrosCheck:
  32. def __init__(self):
  33. self.renamed_platform_macros = TextReplacer(RENAMED_MACROS, "{1}")
  34. self.deprecated_platform_macros = TextReplacer(DEPRECATED_PLATFORM_MACROS, "{0} /* {0} has been removed in SDL3 */")
  35. def run(self, contents):
  36. contents = self.renamed_platform_macros.apply(contents)
  37. contents = self.deprecated_platform_macros.apply(contents)
  38. return contents
  39. def apply_checks(paths):
  40. checks = (
  41. MacrosCheck(),
  42. )
  43. for entry in paths:
  44. path = pathlib.Path(entry)
  45. if not path.exists():
  46. print("{} does not exist, skipping".format(entry))
  47. continue
  48. apply_checks_in_path(path, checks)
  49. def apply_checks_in_file(file, checks):
  50. try:
  51. with file.open("r", encoding="UTF-8", newline="") as rfp:
  52. original = rfp.read()
  53. contents = original
  54. for check in checks:
  55. contents = check.run(contents)
  56. if contents != original:
  57. with file.open("w", encoding="UTF-8", newline="") as wfp:
  58. wfp.write(contents)
  59. except UnicodeDecodeError:
  60. print("%s is not text, skipping" % file)
  61. except Exception as err:
  62. print("%s" % err)
  63. def apply_checks_in_dir(path, checks):
  64. for entry in path.glob("*"):
  65. if entry.is_dir():
  66. apply_checks_in_dir(entry, checks)
  67. else:
  68. print("Processing %s" % entry)
  69. apply_checks_in_file(entry, checks)
  70. def apply_checks_in_path(path, checks):
  71. if path.is_dir():
  72. apply_checks_in_dir(path, checks)
  73. else:
  74. apply_checks_in_file(path, checks)
  75. def main():
  76. parser = argparse.ArgumentParser(fromfile_prefix_chars='@', description="Rename macros for SDL3")
  77. parser.add_argument("args", nargs="*", help="Input source files")
  78. args = parser.parse_args()
  79. try:
  80. apply_checks(args.args)
  81. except Exception as e:
  82. print(e)
  83. return 1
  84. RENAMED_MACROS = {
  85. "__AIX__": "SDL_PLATFORM_AIX",
  86. "__HAIKU__": "SDL_PLATFORM_HAIKU",
  87. "__BSDI__": "SDL_PLATFORM_BSDI",
  88. "__FREEBSD__": "SDL_PLATFORM_FREEBSD",
  89. "__HPUX__": "SDL_PLATFORM_HPUX",
  90. "__IRIX__": "SDL_PLATFORM_IRIX",
  91. "__LINUX__": "SDL_PLATFORM_LINUX",
  92. "__OS2__": "SDL_PLATFORM_OS2",
  93. # "__ANDROID__": "SDL_PLATFORM_ANDROID,
  94. "__NGAGE__": "SDL_PLATFORM_NGAGE",
  95. "__APPLE__": "SDL_PLATFORM_APPLE",
  96. "__TVOS__": "SDL_PLATFORM_TVOS",
  97. "__IPHONEOS__": "SDL_PLATFORM_IOS",
  98. "__MACOSX__": "SDL_PLATFORM_MACOS",
  99. "__NETBSD__": "SDL_PLATFORM_NETBSD",
  100. "__OPENBSD__": "SDL_PLATFORM_OPENBSD",
  101. "__OSF__": "SDL_PLATFORM_OSF",
  102. "__QNXNTO__": "SDL_PLATFORM_QNXNTO",
  103. "__RISCOS__": "SDL_PLATFORM_RISCOS",
  104. "__SOLARIS__": "SDL_PLATFORM_SOLARIS",
  105. "__PSP__": "SDL_PLATFORM_PSP",
  106. "__PS2__": "SDL_PLATFORM_PS2",
  107. "__VITA__": "SDL_PLATFORM_VITA",
  108. "__3DS__": "SDL_PLATFORM_3DS",
  109. # "__unix__": "SDL_PLATFORM_UNIX,
  110. "__WINRT__": "SDL_PLATFORM_WINRT",
  111. "__XBOXSERIES__": "SDL_PLATFORM_XBOXSERIES",
  112. "__XBOXONE__": "SDL_PLATFORM_XBOXONE",
  113. "__WINDOWS__": "SDL_PLATFORM_WINDOWS",
  114. "__WIN32__": "SDL_PLATFORM_WIN32",
  115. # "__CYGWIN_": "SDL_PLATFORM_CYGWIN",
  116. "__WINGDK__": "SDL_PLATFORM_WINGDK",
  117. "__GDK__": "SDL_PLATFORM_GDK",
  118. # "__EMSCRIPTEN__": "SDL_PLATFORM_EMSCRIPTEN",
  119. }
  120. DEPRECATED_PLATFORM_MACROS = {
  121. "__DREAMCAST__",
  122. "__NACL__",
  123. "__PNACL__",
  124. "__WINDOWS__",
  125. "DYNAPI_NEEDS_DLOPEN",
  126. "HAVE_ABS",
  127. "HAVE_ACOS",
  128. "HAVE_ACOSF",
  129. "HAVE_ALLOCA",
  130. "HAVE_ALLOCA_H",
  131. "HAVE_ALTIVEC_H",
  132. "HAVE_ASIN",
  133. "HAVE_ASINF",
  134. "HAVE_ATAN",
  135. "HAVE_ATAN2",
  136. "HAVE_ATAN2F",
  137. "HAVE_ATANF",
  138. "HAVE_ATOF",
  139. "HAVE_ATOI",
  140. "HAVE_AUDIOCLIENT_H",
  141. "HAVE_BCOPY",
  142. "HAVE_BSEARCH",
  143. "HAVE_CALLOC",
  144. "HAVE_CEIL",
  145. "HAVE_CEILF",
  146. "HAVE_CLOCK_GETTIME",
  147. "HAVE_COPYSIGN",
  148. "HAVE_COPYSIGNF",
  149. "HAVE_COS",
  150. "HAVE_COSF",
  151. "HAVE_CTYPE_H",
  152. "HAVE_D3D11_H",
  153. "HAVE_D3D12_H",
  154. "HAVE_D3D_H",
  155. "HAVE_DBUS_DBUS_H",
  156. "HAVE_DDRAW_H",
  157. "HAVE_DINPUT_H",
  158. "HAVE_DLOPEN",
  159. "HAVE_DSOUND_H",
  160. "HAVE_DXGI_H",
  161. "HAVE_ELF_AUX_INFO",
  162. "HAVE_EXP",
  163. "HAVE_EXPF",
  164. "HAVE_FABS",
  165. "HAVE_FABSF",
  166. "HAVE_FCITX",
  167. "HAVE_FLOAT_H",
  168. "HAVE_FLOAT_H",
  169. "HAVE_FLOOR",
  170. "HAVE_FLOORF",
  171. "HAVE_FMOD",
  172. "HAVE_FMODF",
  173. "HAVE_FOPEN64",
  174. "HAVE_FREE",
  175. "HAVE_FSEEKO",
  176. "HAVE_FSEEKO64",
  177. "HAVE_GCC_ATOMICS",
  178. "HAVE_GCC_SYNC_LOCK_TEST_AND_SET",
  179. "HAVE_GETAUXVAL",
  180. "HAVE_GETENV",
  181. "HAVE_GETPAGESIZE",
  182. "HAVE_IBUS_IBUS_H",
  183. "HAVE_ICONV",
  184. "HAVE_ICONV_H",
  185. "HAVE_IMMINTRIN_H",
  186. "HAVE_IMMINTRIN_H",
  187. "HAVE_INDEX",
  188. "HAVE_INOTIFY",
  189. "HAVE_INOTIFY_INIT",
  190. "HAVE_INOTIFY_INIT1",
  191. "HAVE_INTTYPES_H",
  192. "HAVE_ITOA",
  193. "HAVE_LIBC",
  194. "HAVE_LIBDECOR_H",
  195. "HAVE_LIBSAMPLERATE_H",
  196. "HAVE_LIBUDEV_H",
  197. "HAVE_LIBUNWIND_H",
  198. "HAVE_LIBUSB",
  199. "HAVE_LIMITS_H",
  200. "HAVE_LINUX_INPUT_H",
  201. "HAVE_LOG",
  202. "HAVE_LOG10",
  203. "HAVE_LOG10F",
  204. "HAVE_LOGF",
  205. "HAVE_LROUND",
  206. "HAVE_LROUNDF",
  207. "HAVE_MALLOC",
  208. "HAVE_MALLOC_H",
  209. "HAVE_MATH_H",
  210. "HAVE_MEMCMP",
  211. "HAVE_MEMCPY",
  212. "HAVE_MEMMOVE",
  213. "HAVE_MEMORY_H",
  214. "HAVE_MEMSET",
  215. "HAVE_MMDEVICEAPI_H",
  216. "HAVE_MPROTECT",
  217. "HAVE_M_PI",
  218. "HAVE_NANOSLEEP",
  219. "HAVE_O_CLOEXEC",
  220. "HAVE_POLL",
  221. "HAVE_POW",
  222. "HAVE_POWF",
  223. "HAVE_PTHREAD_NP_H",
  224. "HAVE_PTHREAD_SETNAME_NP",
  225. "HAVE_PTHREAD_SET_NAME_NP",
  226. "HAVE_PUTENV",
  227. "HAVE_QSORT",
  228. "HAVE_REALLOC",
  229. "HAVE_RINDEX",
  230. "HAVE_ROAPI_H",
  231. "HAVE_ROUND",
  232. "HAVE_ROUNDF",
  233. "HAVE_SA_SIGACTION",
  234. "HAVE_SCALBN",
  235. "HAVE_SCALBNF",
  236. "HAVE_SEM_TIMEDWAIT",
  237. "HAVE_SENSORSAPI_H",
  238. "HAVE_SETENV",
  239. "HAVE_SETJMP",
  240. "HAVE_SHELLSCALINGAPI_H",
  241. "HAVE_SIGACTION",
  242. "HAVE_SIGNAL_H",
  243. "HAVE_SIN",
  244. "HAVE_SINF",
  245. "HAVE_SQRT",
  246. "HAVE_SQRTF",
  247. "HAVE_SSCANF",
  248. "HAVE_STDARG_H",
  249. "HAVE_STDARG_H",
  250. "HAVE_STDDEF_H",
  251. "HAVE_STDDEF_H",
  252. "HAVE_STDINT_H",
  253. "HAVE_STDINT_H",
  254. "HAVE_STDIO_H",
  255. "HAVE_STDLIB_H",
  256. "HAVE_STRCASECMP",
  257. "HAVE_STRCASESTR",
  258. "HAVE_STRCHR",
  259. "HAVE_STRCMP",
  260. "HAVE_STRINGS_H",
  261. "HAVE_STRING_H",
  262. "HAVE_STRLCAT",
  263. "HAVE_STRLCPY",
  264. "HAVE_STRLEN",
  265. "HAVE_STRNCASECMP",
  266. "HAVE_STRNCMP",
  267. "HAVE_STRRCHR",
  268. "HAVE_STRSTR",
  269. "HAVE_STRTOD",
  270. "HAVE_STRTOK_R",
  271. "HAVE_STRTOL",
  272. "HAVE_STRTOLL",
  273. "HAVE_STRTOUL",
  274. "HAVE_STRTOULL",
  275. "HAVE_SYSCONF",
  276. "HAVE_SYSCTLBYNAME",
  277. "HAVE_SYS_INOTIFY_H",
  278. "HAVE_SYS_TYPES_H",
  279. "HAVE_TAN",
  280. "HAVE_TANF",
  281. "HAVE_TPCSHRD_H",
  282. "HAVE_TRUNC",
  283. "HAVE_TRUNCF",
  284. "HAVE_UNSETENV",
  285. "HAVE_VSNPRINTF",
  286. "HAVE_VSSCANF",
  287. "HAVE_WCHAR_H",
  288. "HAVE_WCSCASECMP",
  289. "HAVE_WCSCMP",
  290. "HAVE_WCSDUP",
  291. "HAVE_WCSLCAT",
  292. "HAVE_WCSLCPY",
  293. "HAVE_WCSLEN",
  294. "HAVE_WCSNCASECMP",
  295. "HAVE_WCSNCMP",
  296. "HAVE_WCSSTR",
  297. "HAVE_WINDOWS_GAMING_INPUT_H",
  298. "HAVE_XINPUT_H",
  299. "HAVE__EXIT",
  300. "HAVE__I64TOA",
  301. "HAVE__LTOA",
  302. "HAVE__STRICMP",
  303. "HAVE__STRLWR",
  304. "HAVE__STRNICMP",
  305. "HAVE__STRREV",
  306. "HAVE__STRUPR",
  307. "HAVE__UI64TOA",
  308. "HAVE__UITOA",
  309. "HAVE__ULTOA",
  310. "HAVE__WCSDUP",
  311. "HAVE__WCSICMP",
  312. "HAVE__WCSNICMP",
  313. "SDL_ALTIVEC_BLITTERS",
  314. "SDL_ARM_NEON_BLITTERS",
  315. "SDL_ARM_SIMD_BLITTERS",
  316. "SDL_ATOMIC_DISABLED",
  317. "SDL_AUDIO_DISABLED",
  318. "SDL_AUDIO_DRIVER_AAUDIO",
  319. "SDL_AUDIO_DRIVER_ALSA",
  320. "SDL_AUDIO_DRIVER_ALSA_DYNAMIC",
  321. "SDL_AUDIO_DRIVER_ANDROID",
  322. "SDL_AUDIO_DRIVER_ARTS",
  323. "SDL_AUDIO_DRIVER_ARTS_DYNAMIC",
  324. "SDL_AUDIO_DRIVER_COREAUDIO",
  325. "SDL_AUDIO_DRIVER_DISK",
  326. "SDL_AUDIO_DRIVER_DSOUND",
  327. "SDL_AUDIO_DRIVER_DUMMY",
  328. "SDL_AUDIO_DRIVER_EMSCRIPTEN",
  329. "SDL_AUDIO_DRIVER_ESD",
  330. "SDL_AUDIO_DRIVER_ESD_DYNAMIC",
  331. "SDL_AUDIO_DRIVER_FUSIONSOUND",
  332. "SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC",
  333. "SDL_AUDIO_DRIVER_HAIKU",
  334. "SDL_AUDIO_DRIVER_JACK",
  335. "SDL_AUDIO_DRIVER_JACK_DYNAMIC",
  336. "SDL_AUDIO_DRIVER_N3DS",
  337. "SDL_AUDIO_DRIVER_NAS",
  338. "SDL_AUDIO_DRIVER_NAS_DYNAMIC",
  339. "SDL_AUDIO_DRIVER_NETBSD",
  340. "SDL_AUDIO_DRIVER_OPENSLES",
  341. "SDL_AUDIO_DRIVER_OS2",
  342. "SDL_AUDIO_DRIVER_OSS",
  343. "SDL_AUDIO_DRIVER_PAUDIO",
  344. "SDL_AUDIO_DRIVER_PIPEWIRE",
  345. "SDL_AUDIO_DRIVER_PIPEWIRE_DYNAMIC",
  346. "SDL_AUDIO_DRIVER_PS2",
  347. "SDL_AUDIO_DRIVER_PSP",
  348. "SDL_AUDIO_DRIVER_PULSEAUDIO",
  349. "SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC",
  350. "SDL_AUDIO_DRIVER_QSA",
  351. "SDL_AUDIO_DRIVER_SNDIO",
  352. "SDL_AUDIO_DRIVER_SNDIO_DYNAMIC",
  353. "SDL_AUDIO_DRIVER_SUNAUDIO",
  354. "SDL_AUDIO_DRIVER_VITA",
  355. "SDL_AUDIO_DRIVER_WASAPI",
  356. "SDL_AUDIO_DRIVER_WINMM",
  357. "SDL_CPUINFO_DISABLED",
  358. "SDL_DEFAULT_ASSERT_LEVEL",
  359. "SDL_EVENTS_DISABLED",
  360. "SDL_FILESYSTEM_ANDROID",
  361. "SDL_FILESYSTEM_COCOA",
  362. "SDL_FILESYSTEM_DISABLED",
  363. "SDL_FILESYSTEM_DUMMY",
  364. "SDL_FILESYSTEM_EMSCRIPTEN",
  365. "SDL_FILESYSTEM_HAIKU",
  366. "SDL_FILESYSTEM_N3DS",
  367. "SDL_FILESYSTEM_OS2",
  368. "SDL_FILESYSTEM_PS2",
  369. "SDL_FILESYSTEM_PSP",
  370. "SDL_FILESYSTEM_RISCOS",
  371. "SDL_FILESYSTEM_UNIX",
  372. "SDL_FILESYSTEM_VITA",
  373. "SDL_FILESYSTEM_WINDOWS",
  374. "SDL_FILE_DISABLED",
  375. "SDL_HAPTIC_ANDROID",
  376. "SDL_HAPTIC_DINPUT",
  377. "SDL_HAPTIC_DISABLED",
  378. "SDL_HAPTIC_DUMMY",
  379. "SDL_HAPTIC_IOKIT",
  380. "SDL_HAPTIC_LINUX",
  381. "SDL_HAPTIC_XINPUT",
  382. "SDL_HAVE_LIBDECOR_GET_MIN_MAX",
  383. "SDL_HAVE_MACHINE_JOYSTICK_H",
  384. "SDL_HIDAPI_DISABLED",
  385. "SDL_INPUT_FBSDKBIO",
  386. "SDL_INPUT_LINUXEV",
  387. "SDL_INPUT_LINUXKD",
  388. "SDL_INPUT_WSCONS",
  389. "SDL_IPHONE_KEYBOARD",
  390. "SDL_IPHONE_LAUNCHSCREEN",
  391. "SDL_JOYSTICK_ANDROID",
  392. "SDL_JOYSTICK_DINPUT",
  393. "SDL_JOYSTICK_DISABLED",
  394. "SDL_JOYSTICK_DUMMY",
  395. "SDL_JOYSTICK_EMSCRIPTEN",
  396. "SDL_JOYSTICK_HAIKU",
  397. "SDL_JOYSTICK_HIDAPI",
  398. "SDL_JOYSTICK_IOKIT",
  399. "SDL_JOYSTICK_LINUX",
  400. "SDL_JOYSTICK_MFI",
  401. "SDL_JOYSTICK_N3DS",
  402. "SDL_JOYSTICK_OS2",
  403. "SDL_JOYSTICK_PS2",
  404. "SDL_JOYSTICK_PSP",
  405. "SDL_JOYSTICK_RAWINPUT",
  406. "SDL_JOYSTICK_USBHID",
  407. "SDL_JOYSTICK_VIRTUAL",
  408. "SDL_JOYSTICK_VITA",
  409. "SDL_JOYSTICK_WGI",
  410. "SDL_JOYSTICK_XINPUT",
  411. "SDL_LIBSAMPLERATE_DYNAMIC",
  412. "SDL_LIBUSB_DYNAMIC",
  413. "SDL_LOADSO_DISABLED",
  414. "SDL_LOADSO_DLOPEN",
  415. "SDL_LOADSO_DUMMY",
  416. "SDL_LOADSO_LDG",
  417. "SDL_LOADSO_OS2",
  418. "SDL_LOADSO_WINDOWS",
  419. "SDL_LOCALE_DISABLED",
  420. "SDL_LOCALE_DUMMY",
  421. "SDL_MISC_DISABLED",
  422. "SDL_MISC_DUMMY",
  423. "SDL_POWER_ANDROID",
  424. "SDL_POWER_DISABLED",
  425. "SDL_POWER_EMSCRIPTEN",
  426. "SDL_POWER_HAIKU",
  427. "SDL_POWER_HARDWIRED",
  428. "SDL_POWER_LINUX",
  429. "SDL_POWER_MACOSX",
  430. "SDL_POWER_N3DS",
  431. "SDL_POWER_PSP",
  432. "SDL_POWER_UIKIT",
  433. "SDL_POWER_VITA",
  434. "SDL_POWER_WINDOWS",
  435. "SDL_POWER_WINRT",
  436. "SDL_RENDER_DISABLED",
  437. "SDL_SENSOR_ANDROID",
  438. "SDL_SENSOR_COREMOTION",
  439. "SDL_SENSOR_DISABLED",
  440. "SDL_SENSOR_DUMMY",
  441. "SDL_SENSOR_N3DS",
  442. "SDL_SENSOR_VITA",
  443. "SDL_SENSOR_WINDOWS",
  444. "SDL_THREADS_DISABLED",
  445. "SDL_THREAD_GENERIC_COND_SUFFIX",
  446. "SDL_THREAD_N3DS",
  447. "SDL_THREAD_OS2",
  448. "SDL_THREAD_PS2",
  449. "SDL_THREAD_PSP",
  450. "SDL_THREAD_PTHREAD",
  451. "SDL_THREAD_PTHREAD_RECURSIVE_MUTEX",
  452. "SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP",
  453. "SDL_THREAD_VITA",
  454. "SDL_THREAD_WINDOWS",
  455. "SDL_TIMERS_DISABLED",
  456. "SDL_TIMER_DUMMY",
  457. "SDL_TIMER_HAIKU",
  458. "SDL_TIMER_N3DS",
  459. "SDL_TIMER_OS2",
  460. "SDL_TIMER_PS2",
  461. "SDL_TIMER_PSP",
  462. "SDL_TIMER_UNIX",
  463. "SDL_TIMER_VITA",
  464. "SDL_TIMER_WINDOWS",
  465. "SDL_UDEV_DYNAMIC",
  466. "SDL_USE_IME",
  467. "SDL_USE_LIBICONV",
  468. "SDL_VIDEO_DISABLED",
  469. "SDL_VIDEO_DRIVER_ANDROID",
  470. "SDL_VIDEO_DRIVER_COCOA",
  471. "SDL_VIDEO_DRIVER_DIRECTFB",
  472. "SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC",
  473. "SDL_VIDEO_DRIVER_DUMMY",
  474. "SDL_VIDEO_DRIVER_EMSCRIPTEN",
  475. "SDL_VIDEO_DRIVER_HAIKU",
  476. "SDL_VIDEO_DRIVER_KMSDRM",
  477. "SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC",
  478. "SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM",
  479. "SDL_VIDEO_DRIVER_N3DS",
  480. "SDL_VIDEO_DRIVER_OFFSCREEN",
  481. "SDL_VIDEO_DRIVER_OS2",
  482. "SDL_VIDEO_DRIVER_PS2",
  483. "SDL_VIDEO_DRIVER_PSP",
  484. "SDL_VIDEO_DRIVER_QNX",
  485. "SDL_VIDEO_DRIVER_RISCOS",
  486. "SDL_VIDEO_DRIVER_RPI",
  487. "SDL_VIDEO_DRIVER_UIKIT",
  488. "SDL_VIDEO_DRIVER_VITA",
  489. "SDL_VIDEO_DRIVER_VIVANTE",
  490. "SDL_VIDEO_DRIVER_VIVANTE_VDK",
  491. "SDL_VIDEO_DRIVER_WAYLAND",
  492. "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC",
  493. "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR",
  494. "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL",
  495. "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_LIBDECOR",
  496. "SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON",
  497. "SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH",
  498. "SDL_VIDEO_DRIVER_WINDOWS",
  499. "SDL_VIDEO_DRIVER_WINRT",
  500. "SDL_VIDEO_DRIVER_X11",
  501. "SDL_VIDEO_DRIVER_X11_DYNAMIC",
  502. "SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR",
  503. "SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT",
  504. "SDL_VIDEO_DRIVER_X11_DYNAMIC_XFIXES",
  505. "SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2",
  506. "SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR",
  507. "SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS",
  508. "SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM",
  509. "SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS",
  510. "SDL_VIDEO_DRIVER_X11_XCURSOR",
  511. "SDL_VIDEO_DRIVER_X11_XDBE",
  512. "SDL_VIDEO_DRIVER_X11_XFIXES",
  513. "SDL_VIDEO_DRIVER_X11_XINPUT2",
  514. "SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH",
  515. "SDL_VIDEO_DRIVER_X11_XRANDR",
  516. "SDL_VIDEO_DRIVER_X11_XSCRNSAVER",
  517. "SDL_VIDEO_DRIVER_X11_XSHAPE",
  518. "SDL_VIDEO_METAL",
  519. "SDL_VIDEO_OPENGL",
  520. "SDL_VIDEO_OPENGL_BGL",
  521. "SDL_VIDEO_OPENGL_CGL",
  522. "SDL_VIDEO_OPENGL_EGL",
  523. "SDL_VIDEO_OPENGL_ES",
  524. "SDL_VIDEO_OPENGL_ES2",
  525. "SDL_VIDEO_OPENGL_GLX",
  526. "SDL_VIDEO_OPENGL_OSMESA",
  527. "SDL_VIDEO_OPENGL_OSMESA_DYNAMIC",
  528. "SDL_VIDEO_OPENGL_WGL",
  529. "SDL_VIDEO_RENDER_D3D",
  530. "SDL_VIDEO_RENDER_D3D11",
  531. "SDL_VIDEO_RENDER_D3D12",
  532. "SDL_VIDEO_RENDER_DIRECTFB",
  533. "SDL_VIDEO_RENDER_METAL",
  534. "SDL_VIDEO_RENDER_OGL",
  535. "SDL_VIDEO_RENDER_OGL_ES",
  536. "SDL_VIDEO_RENDER_OGL_ES2",
  537. "SDL_VIDEO_RENDER_PS2",
  538. "SDL_VIDEO_RENDER_PSP",
  539. "SDL_VIDEO_RENDER_VITA_GXM",
  540. "SDL_VIDEO_VITA_PIB",
  541. "SDL_VIDEO_VITA_PVR",
  542. "SDL_VIDEO_VITA_PVR_OGL",
  543. "SDL_VIDEO_VULKAN",
  544. "SDL_config_h_",
  545. "SIZEOF_VOIDP",
  546. "STDC_HEADERS",
  547. "USE_POSIX_SPAWN",
  548. "_UINTPTR_T_DEFINED",
  549. }
  550. if __name__ == "__main__":
  551. raise SystemExit(main())