@@ -52,6 +52,8 @@ set(CMAKE_C_VISIBILITY_PRESET hidden)
5252
5353set (PPUC_INCLUDE_DIRS "" )
5454set (PPUC_STAGED_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR } /third-party/include" )
55+ set (PPUC_STAGED_BUILD_LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR } /third-party/build-libs/${PLATFORM} -${ARCH} " )
56+ set (PPUC_STAGED_RUNTIME_LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR } /third-party/runtime-libs/${PLATFORM} -${ARCH} " )
5557
5658if (PPUC_USE_KMSDMD)
5759 find_path (PPUC_KMSDMD_INCLUDE_DIR
@@ -170,12 +172,62 @@ else()
170172 message (STATUS "espeak-ng speech backend: disabled" )
171173endif ()
172174
175+ set (PPUC_HAS_SDL3_MIXER_HEADERS FALSE )
176+ if (EXISTS "${PPUC_STAGED_INCLUDE_DIR} /SDL3_mixer/SDL_mixer.h" )
177+ set (PPUC_HAS_SDL3_MIXER_HEADERS TRUE )
178+ endif ()
179+
180+ set (PPUC_HAS_SDL3_MIXER_LIBS FALSE )
181+ set (PPUC_SDL3_MIXER_LINK_NAME "" )
182+ if (PLATFORM STREQUAL "win" )
183+ if (ARCH STREQUAL "x64" )
184+ if (EXISTS "${PPUC_STAGED_BUILD_LIB_DIR} /SDL3_mixer64.lib" )
185+ set (PPUC_HAS_SDL3_MIXER_LIBS TRUE )
186+ set (PPUC_SDL3_MIXER_LINK_NAME SDL3_mixer64)
187+ endif ()
188+ else ()
189+ if (EXISTS "${PPUC_STAGED_BUILD_LIB_DIR} /SDL3_mixer.lib" )
190+ set (PPUC_HAS_SDL3_MIXER_LIBS TRUE )
191+ set (PPUC_SDL3_MIXER_LINK_NAME SDL3_mixer)
192+ endif ()
193+ endif ()
194+ elseif (PLATFORM STREQUAL "win-mingw" )
195+ if (ARCH STREQUAL "x64" )
196+ if (EXISTS "${PPUC_STAGED_BUILD_LIB_DIR} /libSDL3_mixer64.dll.a" )
197+ set (PPUC_HAS_SDL3_MIXER_LIBS TRUE )
198+ set (PPUC_SDL3_MIXER_LINK_NAME SDL3_mixer64)
199+ endif ()
200+ endif ()
201+ else ()
202+ find_library (PPUC_SDL3_MIXER_LIBRARY
203+ NAMES SDL3_mixer
204+ PATHS "${PPUC_STAGED_RUNTIME_LIB_DIR} "
205+ )
206+ if (PPUC_SDL3_MIXER_LIBRARY)
207+ set (PPUC_HAS_SDL3_MIXER_LIBS TRUE )
208+ set (PPUC_SDL3_MIXER_LINK_NAME SDL3_mixer)
209+ endif ()
210+ endif ()
211+
212+ set (PPUC_ENABLE_SDL3_MIXER FALSE )
213+ if (PPUC_HAS_SDL3_MIXER_HEADERS AND PPUC_HAS_SDL3_MIXER_LIBS)
214+ set (PPUC_ENABLE_SDL3_MIXER TRUE )
215+ message (STATUS "SDL3_mixer background music: enabled" )
216+ elseif (PPUC_HAS_SDL3_MIXER_HEADERS OR PPUC_HAS_SDL3_MIXER_LIBS)
217+ message (WARNING "SDL3_mixer background music: disabled due to incomplete staged artifacts" )
218+ else ()
219+ message (STATUS "SDL3_mixer background music: disabled" )
220+ endif ()
221+
173222if (PPUC_ENABLE_ESPEAK_NG)
174223 target_compile_definitions (ppuc-pinmame PRIVATE PPUC_HAS_ESPEAK_NG )
175224 target_sources (ppuc-pinmame PRIVATE
176225 src/ESpeakNgSpeechService.cpp
177226 )
178227endif ()
228+ if (PPUC_ENABLE_SDL3_MIXER)
229+ target_compile_definitions (ppuc-pinmame PRIVATE PPUC_HAS_SDL3_MIXER )
230+ endif ()
179231
180232if (PLATFORM STREQUAL "win" OR PLATFORM STREQUAL "win-mingw" )
181233 target_link_directories (ppuc-pinmame PUBLIC
@@ -213,6 +265,11 @@ if(PLATFORM STREQUAL "win" OR PLATFORM STREQUAL "win-mingw")
213265 ${PPUC_ESPEAK_NG_LIBRARY}
214266 )
215267 endif ()
268+ if (PPUC_ENABLE_SDL3_MIXER)
269+ target_link_libraries (ppuc-pinmame LINK_PUBLIC
270+ ${PPUC_SDL3_MIXER_LINK_NAME}
271+ )
272+ endif ()
216273else ()
217274 target_link_directories (ppuc-pinmame PUBLIC
218275 third-party/build-libs/${PLATFORM}-${ARCH}
@@ -261,6 +318,11 @@ else()
261318 ${PPUC_ESPEAK_NG_LIBRARY}
262319 )
263320 endif ()
321+ if (PPUC_ENABLE_SDL3_MIXER)
322+ target_link_libraries (ppuc-pinmame LINK_PUBLIC
323+ ${PPUC_SDL3_MIXER_LINK_NAME}
324+ )
325+ endif ()
264326endif ()
265327
266328if (PPUC_BUILD_MENU)
@@ -278,6 +340,9 @@ target_include_directories(ppuc-menu PUBLIC
278340target_compile_definitions (ppuc-menu PRIVATE
279341 PPUC_RUNTIME_LIB_SUBDIR= "${PLATFORM} -${ARCH} "
280342)
343+ if (PPUC_ENABLE_SDL3_MIXER)
344+ target_compile_definitions (ppuc-menu PRIVATE PPUC_HAS_SDL3_MIXER )
345+ endif ()
281346
282347if (PPUC_ENABLE_FLITE)
283348 target_compile_definitions (ppuc-menu PRIVATE PPUC_HAS_FLITE )
@@ -321,6 +386,11 @@ if(PLATFORM STREQUAL "win" OR PLATFORM STREQUAL "win-mingw")
321386 ${PPUC_ESPEAK_NG_LIBRARY}
322387 )
323388 endif ()
389+ if (PPUC_ENABLE_SDL3_MIXER)
390+ target_link_libraries (ppuc-menu LINK_PUBLIC
391+ ${PPUC_SDL3_MIXER_LINK_NAME}
392+ )
393+ endif ()
324394else ()
325395 target_link_directories (ppuc-menu PUBLIC
326396 third-party/build-libs/${PLATFORM}-${ARCH}
@@ -354,6 +424,11 @@ else()
354424 ${PPUC_ESPEAK_NG_LIBRARY}
355425 )
356426 endif ()
427+ if (PPUC_ENABLE_SDL3_MIXER)
428+ target_link_libraries (ppuc-menu LINK_PUBLIC
429+ ${PPUC_SDL3_MIXER_LINK_NAME}
430+ )
431+ endif ()
357432endif ()
358433endif ()
359434
0 commit comments