Use SDL2 Backend with OpenAL

This change implements openal to use the sdl2 backend.

The main change in this is in openal-soft cmakeLists.txt it was not using our custom finders to find sdl2 for us before and so it had to be changed to a list append instead of a set. This needs to be remembered for future updates to openal
This commit is contained in:
marauder2k7 2025-05-20 12:13:10 +01:00
parent 8756e35853
commit 87514151c4
3 changed files with 27 additions and 14 deletions

View file

@ -199,18 +199,18 @@ if(TORQUE_SFX_OPENAL)
advanced_option(TORQUE_OGGVORBIS "Enable OGG Vorbis" ON)
advanced_option(ALSOFT_EAX "Enable legacy EAX extensions" ${WIN32})
advanced_option(ALSOFT_UPDATE_BUILD_VERSION "Update git build version info" ON)
mark_as_advanced(ALSOFT_BACKEND_COREAUDIO)
mark_as_advanced(ALSOFT_BACKEND_DSOUND)
mark_as_advanced(ALSOFT_BACKEND_JACK)
mark_as_advanced(ALSOFT_BACKEND_OBOE)
mark_as_advanced(ALSOFT_BACKEND_OPENSL)
mark_as_advanced(ALSOFT_BACKEND_PIPEWIRE)
mark_as_advanced(ALSOFT_BACKEND_PORTAUDIO)
mark_as_advanced(ALSOFT_BACKEND_PULSEAUDIO)
mark_as_advanced(ALSOFT_BACKEND_SDL2)
mark_as_advanced(ALSOFT_BACKEND_WASAPI)
mark_as_advanced(ALSOFT_BACKEND_WAVE)
mark_as_advanced(ALSOFT_BACKEND_WINMM)
advanced_option(ALSOFT_BACKEND_COREAUDIO "Enable CoreAudio backend" OFF)
advanced_option(ALSOFT_BACKEND_DSOUND "Enable DirectSound backend" OFF)
advanced_option(ALSOFT_BACKEND_JACK "Enable Jack backend" OFF)
advanced_option(ALSOFT_BACKEND_OBOE "Enable OBOE backend" OFF)
advanced_option(ALSOFT_BACKEND_OPENSL "Enable OpenSL backend" OFF)
advanced_option(ALSOFT_BACKEND_PIPEWIRE "Enable PipeWire backend" OFF)
advanced_option(ALSOFT_BACKEND_PORTAUDIO "Enable PortAudio backend" OFF)
advanced_option(ALSOFT_BACKEND_PULSEAUDIO "Enable PulseAudio backend" OFF)
advanced_option(ALSOFT_BACKEND_SDL2 "Use SDL2 Backend" ON)
advanced_option(ALSOFT_BACKEND_WASAPI "Enable WASAPI backend" OFF)
advanced_option(ALSOFT_BACKEND_WAVE "Enable Wave backend" OFF)
advanced_option(ALSOFT_BACKEND_WINMM "Enable WinMM backend" OFF)
mark_as_advanced(ALSOFT_BUILD_ROUTER)
mark_as_advanced(ALSOFT_CPUEXT_NEON)
mark_as_advanced(ALSOFT_CPUEXT_SSE)
@ -221,7 +221,7 @@ if(TORQUE_SFX_OPENAL)
mark_as_advanced(ALSOFT_EAX)
advanced_option(ALSOFT_EMBED_HRTF_DATA "Embed the HRTF data files (increases library footprint)" OFF)
advanced_option(ALSOFT_EXAMPLES "Build example programs" OFF)
mark_as_advanced(ALSOFT_INSTALL)
advanced_option(ALSOFT_INSTALL "Install OpenAL" OFF) # we move it ourselves
advanced_option(ALSOFT_INSTALL_CONFIG "Install alsoft.conf sample configuration file" OFF)
advanced_option(ALSOFT_INSTALL_HRTF_DATA "Install HRTF data files" OFF)
advanced_option(ALSOFT_INSTALL_AMBDEC_PRESETS "Install AmbDec preset files" OFF)

View file

@ -82,7 +82,7 @@ set(DEFAULT_TARGET_PROPS
# Prefer C11, but support C99 and earlier when possible.
C_STANDARD 11)
set(CMAKE_MODULE_PATH "${OpenAL_SOURCE_DIR}/cmake")
list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(CheckFunctionExists)
include(CheckLibraryExists)

View file

@ -0,0 +1,13 @@
if(TARGET SDL2)
set(SDL2_FOUND TRUE)
set(SDL2_INCLUDE_DIRS $<TARGET_PROPERTY:SDL2,INTERFACE_INCLUDE_DIRECTORIES>)
set(SDL2_LIBRARIES SDL2)
# Provide a modern CMake alias
if(NOT TARGET SDL2::SDL2)
add_library(SDL2::SDL2 ALIAS SDL2)
endif()
else()
set(SDL2_FOUND FALSE)
message(FATAL_ERROR "SDL2 was not added with add_subdirectory before calling find_package(SDL2).")
endif()