From 758e323b933106cc107dd91798e5bf96666f1b71 Mon Sep 17 00:00:00 2001 From: Tim Stahlhut Date: Sat, 11 Jul 2026 21:17:06 -0400 Subject: [PATCH] Rewrite five SDL_DIRECTX header checks Co-authored-by: Anonymous Maarten [sdl-ci-filter msvc-*] [sdl-ci-filter msys2-*] [sdl-ci-filter cygwin] [sdl-ci-filter ngage] (cherry picked from commit c97d9feb13a4bc7f79991b802a75ac134973ee94) --- CMakeLists.txt | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b6ca59220..b8d17216e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2203,11 +2203,32 @@ elseif(WINDOWS) 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 + #include + int main(int argc, char **argv) { (void)argc; (void)argv; return 0; }" HAVE_D3D9_H + ) + check_c_source_compiles(" + #include + 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 + #include + int main(int argc, char **argv) { (void)argc; (void)argv; return 0; }" HAVE_DDRAW_H + ) + check_c_source_compiles(" + #include + #include + int main(int argc, char **argv) { (void)argc; (void)argv; return 0; }" HAVE_DSOUND_H + ) + check_c_source_compiles(" + #include + #include + 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()