sdl2-compat: cmake: export SDL2COMPAT_DISABLE_X11 macro for external projects

From 58d64831e792c0a53285981fbc644bb96915fca5 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sun, 26 Oct 2025 19:55:15 +0100
Subject: [PATCH] cmake: export SDL2COMPAT_DISABLE_X11 macro for external
 projects

---
 CMakeLists.txt | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 983736c..62fb438 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -331,7 +331,7 @@ if(UNIX AND NOT APPLE)
     target_compile_definitions(SDL2 PRIVATE SDL2COMPAT_HAVE_X11)
     include_directories(${X11_INCLUDE_DIR})
   else()
-    target_compile_definitions(SDL2 PRIVATE SDL2COMPAT_DISABLE_X11)
+    target_compile_definitions(SDL2 PUBLIC SDL2COMPAT_DISABLE_X11)
     message(STATUS "X11 support disabled")
   endif()
 endif()
@@ -567,23 +567,27 @@ if(SDL2COMPAT_INSTALL)
   endforeach()
   install(FILES "${PROJECT_BINARY_DIR}/include/SDL2/SDL_revision.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/SDL2")
 
+  get_property(sdl2_public_macros TARGET SDL2 PROPERTY INTERFACE_COMPILE_DEFINITIONS)
+  if(sdl2_public_macros)
+    string(REPLACE ";" " -D" sdl2_public_macros ";${sdl2_public_macros}")
+  endif()
   if(MSVC)
-    set(SDL_CFLAGS "")
+    set(SDL_CFLAGS "${sdl2_public_macros}")
     set(SDL_RLD_FLAGS "")
     set(SDL_LIBS "-lSDL2main -lSDL2")
     set(SDL_STATIC_LIBS "-lshell32")
   elseif(MINGW)
-    set(SDL_CFLAGS "")
+    set(SDL_CFLAGS "${sdl2_public_macros}")
     set(SDL_RLD_FLAGS "")
     set(SDL_LIBS "-lmingw32 -lSDL2main -lSDL2 -mwindows")
     set(SDL_STATIC_LIBS "-lshell32")
   elseif(APPLE)
-    set(SDL_CFLAGS "-D_THREAD_SAFE")
+    set(SDL_CFLAGS "-D_THREAD_SAFE${sdl2_public_macros}")
     set(SDL_RLD_FLAGS "")  # !!! FIXME: this forces rpath, which we might want?
     set(SDL_LIBS "-lSDL2main -lSDL2 -Wl,-framework,Cocoa")
     set(SDL_STATIC_LIBS "")
   else() # unix
-    set(SDL_CFLAGS "-D_GNU_SOURCE=1 -D_REENTRANT")
+    set(SDL_CFLAGS "-D_GNU_SOURCE=1 -D_REENTRANT${sdl2_public_macros}")
     set(SDL_RLD_FLAGS "")  # !!! FIXME: this forces rpath, which we might want?
     set(SDL_LIBS "-lSDL2")
     set(SDL_STATIC_LIBS "")