Skip to content

Commit bbb8dc0

Browse files
SiegeLordExSiegeLord
authored andcommitted
Fix struct redefinition error on newer mingw-w64
1 parent 614d4db commit bbb8dc0

3 files changed

Lines changed: 13 additions & 0 deletions

File tree

CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,15 @@ if(WIN32)
868868

869869
# Xinput support for xbox compatible controllers.
870870
if(XINPUT_FOUND)
871+
run_c_compile_test("
872+
#include <xinput.h>
873+
XINPUT_CAPABILITIES_EX x;
874+
int main(void) { return 0; }"
875+
HAVE_XINPUT_CAPABILITIES_EX
876+
)
877+
if(HAVE_XINPUT_CAPABILITIES_EX)
878+
set(ALLEGRO_CFG_HAVE_XINPUT_CAPABILITIES_EX 1)
879+
endif()
871880
set(SUPPORT_XINPUT 1)
872881
set(ALLEGRO_CFG_XINPUT 1)
873882
endif(XINPUT_FOUND)

include/allegro5/platform/alplatf.h.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828

2929
#cmakedefine ALLEGRO_CFG_ANDROID_LEGACY
3030

31+
#cmakedefine ALLEGRO_CFG_HAVE_XINPUT_CAPABILITIES_EX
32+
3133
/*---------------------------------------------------------------------------*/
3234

3335
/* Define to 1 if you have the corresponding header file. */

src/win/wjoyxi.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ ALLEGRO_JOYSTICK_DRIVER _al_joydrv_xinput =
109109
#define XINPUT_MIN_VERSION 3
110110
#define XINPUT_MAX_VERSION 4
111111

112+
#ifndef ALLEGRO_CFG_HAVE_XINPUT_CAPABILITIES_EX
112113
typedef struct _XINPUT_CAPABILITIES_EX
113114
{
114115
XINPUT_CAPABILITIES Capabilities;
@@ -118,6 +119,7 @@ typedef struct _XINPUT_CAPABILITIES_EX
118119
WORD unk1;
119120
DWORD unk2;
120121
} XINPUT_CAPABILITIES_EX, * PXINPUT_CAPABILITIES_EX;
122+
#endif
121123

122124
typedef void (WINAPI *XInputEnablePROC)(BOOL);
123125
typedef DWORD (WINAPI *XInputSetStatePROC)(DWORD, XINPUT_VIBRATION*);

0 commit comments

Comments
 (0)