ソースを参照

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
marauder2k7 4 ヶ月 前
コミット
87514151c4

+ 13 - 13
Engine/lib/CMakeLists.txt

@@ -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)

+ 1 - 1
Engine/lib/openal-soft/CMakeLists.txt

@@ -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)

+ 13 - 0
Tools/CMake/finders/FindSDL2.cmake

@@ -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()