Преглед на файлове

cmake: Fix building with -DSDL_HAPTIC=Off

stfx преди 5 години
родител
ревизия
b162629546
променени са 3 файла, в които са добавени 11 реда и са изтрити 2 реда
  1. 1 2
      CMakeLists.txt
  2. 2 0
      src/haptic/windows/SDL_windowshaptic_c.h
  3. 8 0
      src/joystick/windows/SDL_windowsjoystick.c

+ 1 - 2
CMakeLists.txt

@@ -404,6 +404,7 @@ file(GLOB SOURCE_FILES
   ${SDL2_SOURCE_DIR}/src/dynapi/*.c
   ${SDL2_SOURCE_DIR}/src/events/*.c
   ${SDL2_SOURCE_DIR}/src/file/*.c
+  ${SDL2_SOURCE_DIR}/src/haptic/*.c
   ${SDL2_SOURCE_DIR}/src/libm/*.c
   ${SDL2_SOURCE_DIR}/src/locale/*.c
   ${SDL2_SOURCE_DIR}/src/power/*.c
@@ -878,8 +879,6 @@ if(SDL_HAPTIC)
     # Haptic requires some private functions from the joystick subsystem.
     message_error("SDL_HAPTIC requires SDL_JOYSTICK, which is not enabled")
   endif()
-  file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/*.c)
-  set(SOURCE_FILES ${SOURCE_FILES} ${HAPTIC_SOURCES})
 endif()
 
 

+ 2 - 0
src/haptic/windows/SDL_windowshaptic_c.h

@@ -50,6 +50,7 @@ struct haptic_hwdata
 /*
  * Haptic system effect data.
  */
+#if SDL_HAPTIC_DINPUT || SDL_HAPTIC_XINPUT
 struct haptic_hweffect
 {
 #if SDL_HAPTIC_DINPUT
@@ -60,6 +61,7 @@ struct haptic_hweffect
     XINPUT_VIBRATION vibration;
 #endif
 };
+#endif
 
 /*
 * List of available haptic devices.

+ 8 - 0
src/joystick/windows/SDL_windowsjoystick.c

@@ -359,9 +359,13 @@ WINDOWS_JoystickDetect(void)
         JoyStick_DeviceData *pListNext = NULL;
 
         if (pCurList->bXInputDevice) {
+#if SDL_HAPTIC_XINPUT
             SDL_XINPUT_MaybeRemoveDevice(pCurList->XInputUserId);
+#endif
         } else {
+#if SDL_HAPTIC_DINPUT
             SDL_DINPUT_MaybeRemoveDevice(&pCurList->dxdevice);
+#endif
         }
 
         SDL_PrivateJoystickRemoved(pCurList->nInstanceID);
@@ -380,9 +384,13 @@ WINDOWS_JoystickDetect(void)
         while (pNewJoystick) {
             if (pNewJoystick->send_add_event) {
                 if (pNewJoystick->bXInputDevice) {
+#if SDL_HAPTIC_XINPUT
                     SDL_XINPUT_MaybeAddDevice(pNewJoystick->XInputUserId);
+#endif
                 } else {
+#if SDL_HAPTIC_DINPUT
                     SDL_DINPUT_MaybeAddDevice(&pNewJoystick->dxdevice);
+#endif
                 }
 
                 SDL_PrivateJoystickAdded(pNewJoystick->nInstanceID);