From c97d9feb13a4bc7f79991b802a75ac134973ee94 Mon Sep 17 00:00:00 2001
From: Tim Stahlhut <[EMAIL REDACTED]>
Date: Sat, 11 Jul 2026 21:17:06 -0400
Subject: [PATCH] Rewrite five SDL_DIRECTX header checks
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
[sdl-ci-filter msvc-*]
[sdl-ci-filter msys2-*]
[sdl-ci-filter cygwin]
[sdl-ci-filter ngage]
---
CMakeLists.txt | 31 ++++++++++++++++++++++++++-----
1 file changed, 26 insertions(+), 5 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2be89ed2fb6bb..412afd96edb9e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2291,11 +2291,32 @@ elseif(WINDOWS OR CYGWIN)
string(APPEND CMAKE_REQUIRED_FLAGS " /I\"$ENV{DXSDK_DIR}\\Include\"")
endif()
- check_include_file(d3d9.h HAVE_D3D9_H)
- check_include_file(d3d11_1.h HAVE_D3D11_H)
- check_include_file(ddraw.h HAVE_DDRAW_H)
- check_include_file(dsound.h HAVE_DSOUND_H)
- check_include_file(dinput.h HAVE_DINPUT_H)
+ # d3d9.h may need windows.h, but does not include it itself.
+ check_c_source_compiles("
+ #include <windows.h>
+ #include <d3d9.h>
+ int main(int argc, char **argv) { (void)argc; (void)argv; return 0; }" HAVE_D3D9_H
+ )
+ check_c_source_compiles("
+ #include <d3d11_1.h>
+ int main(int argc, char **argv) { (void)argc; (void)argv; return 0; }" HAVE_D3D11_H
+ )
+ # ddraw.h, dsound.h, and dinput.h may need windows.h, but does not include it itself.
+ check_c_source_compiles("
+ #include <windows.h>
+ #include <ddraw.h>
+ int main(int argc, char **argv) { (void)argc; (void)argv; return 0; }" HAVE_DDRAW_H
+ )
+ check_c_source_compiles("
+ #include <windows.h>
+ #include <dsound.h>
+ int main(int argc, char **argv) { (void)argc; (void)argv; return 0; }" HAVE_DSOUND_H
+ )
+ check_c_source_compiles("
+ #include <windows.h>
+ #include <dinput.h>
+ int main(int argc, char **argv) { (void)argc; (void)argv; return 0; }" HAVE_DINPUT_H
+ )
if(SDL_CPU_ARM32) # !!! FIXME: this should probably check if we're !(x86 or x86-64) instead of arm.
set(HAVE_DINPUT_H 0)
endif()