Add DSU joystick support with proper network library linking for Haiku and Unix systems

This commit is contained in:
danprice142 2025-10-26 00:26:39 +01:00
parent 3ecb594b2c
commit b35d4bd9b7

View file

@ -1252,6 +1252,27 @@ if(SDL_JOYSTICK)
set(SDL_JOYSTICK_DSU 1)
file(GLOB JOYSTICK_DSU_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/dsu/*.c)
list(APPEND SOURCE_FILES ${JOYSTICK_DSU_SOURCES})
# DSU requires network libraries on Unix-like systems
if(UNIX AND NOT APPLE AND NOT ANDROID)
if(NOT WIN32)
# Check if we need to link against socket libraries
include(CheckFunctionExists)
check_function_exists(socket HAVE_SOCKET_IN_LIBC)
if(NOT HAVE_SOCKET_IN_LIBC)
# Try to find socket in libsocket (Solaris)
check_library_exists(socket socket "" HAVE_LIBSOCKET)
if(HAVE_LIBSOCKET)
list(APPEND EXTRA_LIBS socket)
endif()
# Try to find inet_addr in libnsl (Solaris)
check_library_exists(nsl inet_addr "" HAVE_LIBNSL)
if(HAVE_LIBNSL)
list(APPEND EXTRA_LIBS nsl)
endif()
endif()
endif()
endif()
endif()
endif()
@ -2480,6 +2501,11 @@ elseif(HAIKU)
CheckPTHREAD()
list(APPEND EXTRA_LIBS root be media game device textencoding)
# Add network library for DSU support on Haiku
if(SDL_DSU_JOYSTICK)
list(APPEND EXTRA_LIBS network)
endif()
elseif(RISCOS)
if(SDL_MISC)