Skip to content
Browse files

Fixed bug 4450 - SDL_mouse.c fails to compile with CMake generated Vi…

…sual Studio files if SDL_VIDEO_VULKAN 0/undefined

Max Waine

SDL_mouse.c, if compiled for Windows, requires GetDoubleClickTime to compile (available from winuser.h). Without Vulkan present this fails to compile as the include chain for winuser.h is the following.

SDL_mouse.c -> SDL_sysvideo.h -> SDL_vulkan_internal.h -> SDL_windows.h -> windows.h -> winuser.h.
Problem is that SDL_vulkan_internal.h doesn't include SDL_windows.h if Vulkan isn't present, so under MinGW/GCC it will give a -Wimplicit-function-declaration warning for GetDoubleClickTime, and under MSVC fails to compile completely.

The solution to this would be to simplify the include chain: including SDL_windows.h under the same condition as GetDoubleClickTime (#ifdef __WIN32__) in SDL_mouse.c (or another file that isn't quite so indirectly included).
  • Loading branch information
slouken committed Mar 17, 2019
1 parent faf9797 commit b8bd0aa0bdccb6c7e906f898db5925e0d04442ca
Showing with 3 additions and 0 deletions.
  1. +3 −0 src/events/SDL_mouse.c
@@ -28,6 +28,9 @@
#include "SDL_events.h"
#include "SDL_events_c.h"
#include "../video/SDL_sysvideo.h"
#ifdef __WIN32__
#include "../core/windows/SDL_windows.h" // For GetDoubleClickTime()

/* #define DEBUG_MOUSE */

0 comments on commit b8bd0aa

Please sign in to comment.