SDL_mixer: cmake: install minimum set of Find CMake module for dependencies

From 092fafa4d820c45e3f05b59b7be75807ef3eefe8 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Fri, 20 Mar 2026 18:53:39 +0100
Subject: [PATCH] cmake: install minimum set of Find CMake module for
 dependencies

---
 CMakeLists.txt | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1926d71d..721cdae8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -336,6 +336,7 @@ if(SDLMIXER_BUILD_SHARED_LIBS)
 endif()
 
 set(INSTALL_EXTRA_TARGETS)
+set(INSTALL_EXTRA_CMAKE_MODULES)
 set(PC_LIBS)
 set(PC_REQUIRES)
 set(SDLMIXER_BACKENDS)
@@ -410,6 +411,7 @@ if(SDLMIXER_OPUS)
             message(STATUS "Using system opusfile")
             if(NOT SDLMIXER_OPUS_SHARED)
                 list(APPEND PC_REQUIRES opusfile)
+                list(APPEND INSTALL_EXTRA_CMAKE_MODULES cmake/FindOgg.cmake cmake/FindOpus.cmake cmake/FindOpusFile.cmake)
             endif()
         else()
             message(${fatal_error} "opusfile NOT found")
@@ -483,6 +485,7 @@ if(SDLMIXER_VORBIS_TREMOR)
         if(tremor_FOUND)
             if(NOT SDLMIXER_VORBIS_TREMOR_SHARED)
                 list(APPEND PC_REQUIRES vorbisidec)
+                list(APPEND INSTALL_EXTRA_CMAKE_MODULES cmake/Findtremor.cmake)
             endif()
             set(SDLMIXER_VORBIS_TREMOR_ENABLED TRUE)
         else()
@@ -533,6 +536,7 @@ if(SDLMIXER_VORBIS_VORBISFILE)
         endif()
         if(NOT SDLMIXER_VORBIS_VORBISFILE_SHARED)
             list(APPEND PC_LIBS -l$<TARGET_FILE_BASE_NAME:vorbisfile>)
+            list(APPEND INSTALL_EXTRA_CMAKE_MODULES cmake/FindVorbis.cmake)
         endif()
     elseif(SDLMIXER_VORBIS_VORBISFILE_SHARED AND DEFINED SDLMIXER_DYNAMIC_VORBIS_VORBISFILE AND EXISTS "${SDLMIXER_DYNAMIC_VORBIS_VORBISFILE}")
         message(STATUS "${PROJECT_NAME}: Using vorbisfile from CMake variable")
@@ -602,6 +606,7 @@ if(SDLMIXER_FLAC_LIBFLAC)
         endif()
         if(NOT SDLMIXER_FLAC_LIBFLAC_SHARED)
             list(APPEND PC_LIBS -l$<TARGET_FILE_BASE_NAME:FLAC::FLAC> -l$<TARGET_FILE_BASE_NAME:ogg>)
+            list(APPEND INSTALL_EXTRA_CMAKE_MODULES cmake/FindFLAC.cmake)
         endif()
     elseif(SDLMIXER_FLAC_LIBFLAC_SHARED AND DEFINED SDLMIXER_DYNAMIC_FLAC_LIBFLAC AND EXISTS "${SDLMIXER_DYNAMIC_FLAC_LIBFLAC}")
         message(STATUS "${PROJECT_NAME}: Using libflac from CMake variable")
@@ -686,6 +691,7 @@ if(SDLMIXER_GME)
         endif()
         if(NOT SDLMIXER_GME_SHARED)
             list(APPEND PC_LIBS -l$<TARGET_FILE_BASE_NAME:gme>)
+            list(APPEND INSTALL_EXTRA_CMAKE_MODULES cmake/Findwavpack.cmake)
         endif()
     elseif(SDLMIXER_GME_SHARED AND DEFINED SDLMIXER_DYNAMIC_GME AND EXISTS "${SDLMIXER_DYNAMIC_GME}")
         message(STATUS "${PROJECT_NAME}: Using libgme from CMake variable")
@@ -697,6 +703,7 @@ if(SDLMIXER_GME)
             message(STATUS "Using system libgme")
             if(NOT SDLMIXER_GME_SHARED)
                 list(APPEND PC_REQUIRES libgme)
+                list(APPEND INSTALL_EXTRA_CMAKE_MODULES cmake/Findgme.cmake)
             endif()
         else()
             message(${fatal_error} "libgme NOT found")
@@ -750,6 +757,7 @@ if(SDLMIXER_MOD_XMP)
         endif()
         if(NOT SDLMIXER_MOD_XMP_SHARED)
             list(APPEND PC_LIBS -l$<TARGET_FILE_BASE_NAME:${tgt_xmp}>)
+            list(APPEND INSTALL_EXTRA_CMAKE_MODULES cmake/Findlibxmp.cmake)
         endif()
     else()
         if(SDLMIXER_MOD_XMP_LITE)
@@ -761,6 +769,7 @@ if(SDLMIXER_MOD_XMP)
                 set(xmp_name libxmp-lite)
                 if(NOT SDLMIXER_MOD_XMP_SHARED)
                     list(APPEND PC_REQUIRES libxmp-lite)
+                    list(APPEND INSTALL_EXTRA_CMAKE_MODULES cmake/Findlibxmp-lite.cmake)
                 endif()
             else()
                 message(${fatal_error} "libxmp-lite NOT found")
@@ -845,6 +854,7 @@ if(SDLMIXER_MP3_MPG123)
         endif()
         if(NOT SDLMIXER_MP3_MPG123_SHARED)
             list(APPEND PC_LIBS -l$<TARGET_FILE_BASE_NAME:MPG123::mpg123>)
+            list(APPEND INSTALL_EXTRA_CMAKE_MODULES cmake/Findmpg123.cmake)
         endif()
     elseif(SDLMIXER_MP3_MPG123_SHARED AND DEFINED SDLMIXER_DYNAMIC_MP3_MPG123 AND EXISTS "${SDLMIXER_DYNAMIC_MP3_MPG123}")
         message(STATUS "${PROJECT_NAME}: Using mpg123 from CMake variable")
@@ -905,6 +915,7 @@ if(SDLMIXER_MIDI_FLUIDSYNTH)
             message(STATUS "Using system FluidSynth")
             if(NOT SDLMIXER_MIDI_FLUIDSYNTH_SHARED)
                 list(APPEND PC_REQUIRES fluidsynth)
+                list(APPEND INSTALL_EXTRA_CMAKE_MODULES cmake/FindFluidSynth.cmake)
             endif()
         else()
             message(${fatal_error} "FluidSynth NOT found")
@@ -1002,6 +1013,7 @@ if(SDLMIXER_WAVPACK)
         endif()
         if(NOT SDLMIXER_WAVPACK_SHARED)
             list(APPEND PC_LIBS -l$<TARGET_FILE_BASE_NAME:WavPack::WavPack>)
+            list(APPEND INSTALL_EXTRA_CMAKE_MODULES cmake/Findwavpack.cmake)
         endif()
         target_compile_definitions(${sdl3_mixer_target_name} PRIVATE HAVE_WAVPACK_H)
     elseif(SDLMIXER_WAVPACK_SHARED AND DEFINED SDLMIXER_DYNAMIC_WAVPACK AND EXISTS "${SDLMIXER_DYNAMIC_WAVPACK}")
@@ -1111,22 +1123,11 @@ if(SDLMIXER_INSTALL)
           DESTINATION "${SDLMIXER_INSTALL_CMAKEDIR}"
           COMPONENT devel
     )
-    if(NOT SDLMIXER_VENDORED)
+    if(INSTALL_EXTRA_CMAKE_MODULES)
         install(
             FILES
+                ${INSTALL_EXTRA_CMAKE_MODULES}
                 cmake/PkgConfigHelper.cmake
-                cmake/FindFLAC.cmake
-                cmake/FindFluidSynth.cmake
-                cmake/Findgme.cmake
-                cmake/Findlibxmp.cmake
-                cmake/Findlibxmp-lite.cmake
-                cmake/FindOgg.cmake
-                cmake/FindOpus.cmake
-                cmake/FindOpusFile.cmake
-                cmake/Findmpg123.cmake
-                cmake/FindVorbis.cmake
-                cmake/Findtremor.cmake
-                cmake/Findwavpack.cmake
             DESTINATION "${SDLMIXER_INSTALL_CMAKEDIR}"
             COMPONENT devel
         )