sdl2-compat: Generate include/SDL2/SDL_config_unix.h at build-time for SDL2COMPAT_DISABLE_X11

From f1ff620204263dbff6a6557662dc0e0901841d56 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Mon, 29 Dec 2025 01:19:41 +0100
Subject: [PATCH] Generate include/SDL2/SDL_config_unix.h at build-time for
 SDL2COMPAT_DISABLE_X11

---
 CMakeLists.txt                                              | 6 ++++--
 include/SDL2/{SDL_config_unix.h => SDL_config_unix.h.cmake} | 1 +
 2 files changed, 5 insertions(+), 2 deletions(-)
 rename include/SDL2/{SDL_config_unix.h => SDL_config_unix.h.cmake} (99%)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3f30006d..c756bf10 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -323,6 +323,7 @@ endif()
 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
 string(STRIP "${CMAKE_C_FLAGS}" CMAKE_C_FLAGS)
 
+set(SDL2COMPAT_DISABLE_X11 OFF)
 if(UNIX AND NOT APPLE)
   target_compile_definitions(SDL2 PRIVATE "_REENTRANT")
   target_link_libraries(SDL2 PRIVATE ${CMAKE_DL_LIBS})
@@ -331,10 +332,11 @@ if(UNIX AND NOT APPLE)
     target_compile_definitions(SDL2 PRIVATE SDL2COMPAT_HAVE_X11)
     include_directories(${X11_INCLUDE_DIR})
   else()
-    target_compile_definitions(SDL2 PUBLIC SDL2COMPAT_DISABLE_X11)
+    set(SDL2COMPAT_DISABLE_X11 ON)
     message(STATUS "X11 support disabled")
   endif()
 endif()
+configure_file(include/SDL2/SDL_config_unix.h.cmake include/SDL2/SDL_config_unix.h)
 
 if(ANDROID)
   target_link_libraries(SDL2 PRIVATE log)
@@ -554,7 +556,7 @@ if(SDL2COMPAT_INSTALL)
     DESTINATION "${SDL2COMPAT_INSTALL_CMAKEDIR}"
   )
 
-  file(GLOB SDL2_INCLUDE_FILES ${PROJECT_SOURCE_DIR}/include/SDL2/*.h)
+  file(GLOB SDL2_INCLUDE_FILES ${PROJECT_SOURCE_DIR}/include/SDL2/*.h "${PROJECT_BINARY_DIR}/include/SDL2/SDL_config_unix.h")
   set(SDL2_COPIED_INCLUDE_FILES)
   foreach(_hdr IN LISTS SDL2_INCLUDE_FILES)
     if(_hdr MATCHES ".*(SDL_config).*")
diff --git a/include/SDL2/SDL_config_unix.h b/include/SDL2/SDL_config_unix.h.cmake
similarity index 99%
rename from include/SDL2/SDL_config_unix.h
rename to include/SDL2/SDL_config_unix.h.cmake
index d5a48e95..3aeea71c 100644
--- a/include/SDL2/SDL_config_unix.h
+++ b/include/SDL2/SDL_config_unix.h.cmake
@@ -221,6 +221,7 @@
 #define SDL_THREAD_PTHREAD 1
 #define SDL_TIMER_UNIX 1
 /* Allow building without X11 support */
+#cmakedefine SDL2COMPAT_DISABLE_X11
 #ifndef SDL2COMPAT_DISABLE_X11
 #define SDL_VIDEO_DRIVER_X11 1
 #endif