SDL_mixer: cmake: add fail-safe check for non-found packages

From d9bc67aaf0906a721cb6c02f955b913a60e01e42 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Tue, 19 Sep 2023 22:11:33 +0200
Subject: [PATCH] cmake: add fail-safe check for non-found packages

This fixes an issue where `find_package(XX REQUIRED)` succeeds,
but `XX_FOUND` does not.
---
 CMakeLists.txt   | 36 +++++++++++++-----------------------
 external/wavpack |  2 +-
 2 files changed, 14 insertions(+), 24 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 649f522f..e8546222 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -88,7 +88,7 @@ option(SDL3MIXER_WERROR "Treat warnings as errors" OFF)
 
 cmake_dependent_option(SDL3MIXER_STRICT "Fail when a dependency could not be found" OFF "NOT SDL3MIXER_VENDORED" OFF)
 set(required "")
-set(fatal_error "")
+set(fatal_error "STATUS")
 if(SDL3MIXER_STRICT)
   set(required "REQUIRED")
   set(fatal_error "FATAL_ERROR")
@@ -381,8 +381,7 @@ if(SDL3MIXER_SNDFILE)
                 list(APPEND PC_REQUIRES sndfile)
             endif()
         else()
-            set(SDL3MIXER_SNDFILE_ENABLED FALSE)
-            message(STATUS "libsndfile NOT found")
+            message(${fatal_error} "libsndfile NOT found")
         endif()
     endif()
     if(SDL3MIXER_SNDFILE_ENABLED)
@@ -471,7 +470,7 @@ if(SDL3MIXER_OPUS)
                 list(APPEND PC_REQUIRES opusfile)
             endif()
         else()
-            message(STATUS "opusfile NOT found")
+            message(${fatal_error} "opusfile NOT found")
         endif()
     endif()
     if(SDL3MIXER_OPUS_ENABLED)
@@ -541,8 +540,7 @@ if(SDL3MIXER_VORBIS_TREMOR)
             endif()
             set(SDL3MIXER_VORBIS_TREMOR_ENABLED TRUE)
         else()
-            set(SDL3MIXER_VORBIS_TREMOR_ENABLED FALSE)
-            message(STATUS "tremor NOT found")
+            message(${fatal_error} "tremor NOT found")
         endif()
     endif()
     if(SDL3MIXER_VORBIS_TREMOR_ENABLED)
@@ -596,7 +594,7 @@ if(SDL3MIXER_VORBIS_VORBISFILE)
                 list(APPEND PC_REQUIRES vorbisfile)
             endif()
         else()
-            message(STATUS "vorbisfile NOT found")
+            message(${fatal_error} "vorbisfile NOT found")
         endif()
     endif()
     if(SDL3MIXER_VORBIS_VORBISFILE_ENABLED)
@@ -659,8 +657,7 @@ if(SDL3MIXER_FLAC_LIBFLAC)
                 list(APPEND PC_REQUIRES flac)
             endif()
         else()
-            set(SDL3MIXER_FLAC_LIBFLAC_ENABLED FALSE)
-            message(STATUS "libflac NOT found")
+            message(${fatal_error} "libflac NOT found")
         endif()
     endif()
     if(SDL3MIXER_FLAC_LIBFLAC_ENABLED)
@@ -723,8 +720,7 @@ if(SDL3MIXER_GME)
                 list(APPEND PC_REQUIRES libgme)
             endif()
         else()
-            set(SDL3MIXER_GME_ENABLED FALSE)
-            message(STATUS "libgme NOT found")
+            message(${fatal_error} "libgme NOT found")
         endif()
     endif()
     if(SDL3MIXER_GME_ENABLED)
@@ -762,8 +758,7 @@ if(SDL3MIXER_MOD_MODPLUG)
                 list(APPEND PC_REQUIRES libmodplug)
             endif()
         else()
-            set(SDL3MIXER_MOD_MODPLUG_ENABLED FALSE)
-            message(STATUS "libmodplug NOT found")
+            message(${fatal_error} "libmodplug NOT found")
         endif()
     endif()
     if(SDL3MIXER_MOD_MODPLUG_ENABLED)
@@ -824,8 +819,7 @@ if(SDL3MIXER_MOD_XMP)
                     list(APPEND PC_REQUIRES libxmplite)
                 endif()
             else()
-                set(SDL3MIXER_MOD_XMP_ENABLED FALSE)
-                message(STATUS "libxmp-lite NOT found")
+                message(${fatal_error} "libxmp-lite NOT found")
             endif()
         else()
             find_package(libxmp ${required})
@@ -844,8 +838,7 @@ if(SDL3MIXER_MOD_XMP)
                     list(APPEND PC_REQUIRES libxmp)
                 endif()
             else()
-                set(SDL3MIXER_MOD_XMP_ENABLED FALSE)
-                message(STATUS "libxmp NOT found")
+                message(${fatal_error} "libxmp NOT found")
             endif()
         endif()
     endif()
@@ -910,8 +903,7 @@ if(SDL3MIXER_MP3_MPG123)
                 list(APPEND PC_REQUIRES libmpg123)
             endif()
         else()
-            set(SDL3MIXER_MP3_MPG123_ENABLED FALSE)
-            message(STATUS "mpg123 NOT found")
+            message(${fatal_error} "mpg123 NOT found")
         endif()
     endif()
     if(SDL3MIXER_MP3_MPG123_ENABLED)
@@ -955,8 +947,7 @@ if(SDL3MIXER_MIDI_FLUIDSYNTH)
                 list(APPEND PC_REQUIRES fluidsynth)
             endif()
         else()
-            set(SDL3MIXER_MIDI_FLUIDSYNTH_ENABLED FALSE)
-            message(STATUS "FluidSynth NOT found")
+            message(${fatal_error} "FluidSynth NOT found")
         endif()
     endif()
     if(SDL3MIXER_MIDI_FLUIDSYNTH_ENABLED)
@@ -1066,8 +1057,7 @@ if(SDL3MIXER_WAVPACK)
                 list(APPEND PC_REQUIRES wavpack)
             endif()
         else()
-            set(SDL3MIXER_WAVPACK_ENABLED FALSE)
-            message(STATUS "wavpack NOT found")
+            message(${fatal_error} "wavpack NOT found")
         endif()
     endif()
     if(SDL3MIXER_WAVPACK_ENABLED)
diff --git a/external/wavpack b/external/wavpack
index 7578f99b..4ca31b02 160000
--- a/external/wavpack
+++ b/external/wavpack
@@ -1 +1 @@
-Subproject commit 7578f99b405a74bfc3f4cdd904e22139520b7f12
+Subproject commit 4ca31b02865e94858c489c9a86a5f5c84843fc79