From fc6522647412d11c178a29fbaf51f6d9b8b45e36 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Tue, 5 May 2026 23:25:24 +0200
Subject: [PATCH] cmake: support libxmp-lite::xmp_lite_(shared|static) targets
---
CMakeLists.txt | 12 ++++++-
SDL2_mixerConfig.cmake.in | 72 +++++++++++++++++++++------------------
2 files changed, 50 insertions(+), 34 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1a962e874..55919d336 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -667,6 +667,8 @@ if(SDL2MIXER_MOD_MODPLUG)
endif()
endif()
+set(tgt_libxmp libxmp::xmp_shared)
+set(tgt_libxmplite libxmp-lite::xmp_lite_shared)
if(SDL2MIXER_MOD_XMP)
target_compile_definitions(SDL2_mixer PRIVATE MUSIC_MOD_XMP)
if(SDL2MIXER_VENDORED)
@@ -695,7 +697,14 @@ if(SDL2MIXER_MOD_XMP)
if(SDL2MIXER_MOD_XMP_LITE)
message(STATUS "Using system libxmp-lite")
find_package(libxmp-lite REQUIRED)
- set(tgt_xmp libxmp-lite::libxmp-lite)
+ if(TARGET libxmp-lite::xmp_lite_shared)
+ set(tgt_xmp libxmp-lite::xmp_lite_shared)
+ elseif(TARGET libxmp-lite::xmp_lite_static)
+ set(tgt_xmp libxmp-lite::xmp_lite_static)
+ else()
+ set(tgt_xmp libxmp-lite::libxmp-lite)
+ endif()
+ set(tgt_libxmplite ${tgt_xmp})
set(xmp_name libxmp-lite)
if(NOT SDL2MIXER_MOD_XMP_SHARED)
list(APPEND PC_REQUIRES libxmp-lite)
@@ -710,6 +719,7 @@ if(SDL2MIXER_MOD_XMP)
else()
set(tgt_xmp libxmp::libxmp)
endif()
+ set(tgt_libxmp ${tgt_xmp})
set(xmp_name libxmp)
if(NOT SDL2MIXER_MOD_XMP_SHARED)
list(APPEND PC_REQUIRES libxmp)
diff --git a/SDL2_mixerConfig.cmake.in b/SDL2_mixerConfig.cmake.in
index f4d5e3517..ad47ea1e9 100644
--- a/SDL2_mixerConfig.cmake.in
+++ b/SDL2_mixerConfig.cmake.in
@@ -58,48 +58,54 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2_mixer-static-targets.cmake")
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
endif()
- if(SDL2MIXER_FLAC_LIBFLAC AND NOT SDL2MIXER_VENDORED AND NOT TARGET FLAC::FLAC)
- find_dependency(FLAC)
- endif()
-
- if(SDL2MIXER_GME AND NOT SDL2MIXER_VENDORED AND NOT TARGET gme::gme)
- find_dependency(gme)
- endif()
+ if(NOT SDL2MIXER_VENDORED)
+ if(SDL2MIXER_FLAC_LIBFLAC AND NOT TARGET FLAC::FLAC)
+ find_dependency(FLAC)
+ endif()
- if(SDL2MIXER_MOD_MODPLUG AND NOT SDL2MIXER_VENDORED AND NOT TARGET modplug::modplug)
- find_dependency(modplug)
- endif()
+ if(SDL2MIXER_GME AND NOT TARGET gme::gme)
+ find_dependency(gme)
+ endif()
- if(SDL2MIXER_MOD_XMP AND NOT SDL2MIXER_VENDORED AND NOT TARGET libxmp::libxmp)
- find_dependency(libxmp)
- endif()
+ if(SDL2MIXER_MOD_MODPLUG AND NOT TARGET modplug::modplug)
+ find_dependency(modplug)
+ endif()
- if(SDL2MIXER_MOD_XMP_LITE AND NOT SDL2MIXER_VENDORED AND NOT TARGET libxmp-lite::libxmp-lite)
- find_dependency(libxmp-lite)
- endif()
+ if(SDL2MIXER_MOD_XMP)
+ if(SDL2MIXER_MOD_XMP_LITE)
+ if(NOT TARGET @tgt_libxmplite@)
+ find_dependency(libxmp-lite)
+ endif()
+ else()
+ if(NOT TARGET @tgt_libxmp@)
+ find_dependency(libxmp)
+ endif()
+ endif()
+ endif()
- if(SDL2MIXER_MP3_MPG123 AND NOT SDL2MIXER_VENDORED AND NOT TARGET MPG123::mpg123)
- find_dependency(mpg123)
- endif()
+ if(SDL2MIXER_MP3_MPG123 AND NOT TARGET MPG123::mpg123)
+ find_dependency(mpg123)
+ endif()
- if(SDL2MIXER_MIDI_FLUIDSYNTH AND NOT SDL2MIXER_VENDORED AND NOT TARGET FluidSynth::libfluidsynth)
- find_dependency(FluidSynth)
- endif()
+ if(SDL2MIXER_MIDI_FLUIDSYNTH AND NOT TARGET FluidSynth::libfluidsynth)
+ find_dependency(FluidSynth)
+ endif()
- if(SDL2MIXER_VORBIS_TREMOR AND NOT SDL2MIXER_VENDORED AND NOT TARGET tremor::tremor)
- find_dependency(tremor)
- endif()
+ if(SDL2MIXER_VORBIS_TREMOR AND NOT TARGET tremor::tremor)
+ find_dependency(tremor)
+ endif()
- if(SDL2MIXER_VORBIS_VORBISFILE AND NOT SDL2MIXER_VENDORED AND NOT TARGET Vorbis::vorbisfile)
- find_dependency(Vorbis)
- endif()
+ if(SDL2MIXER_VORBIS_VORBISFILE AND NOT TARGET Vorbis::vorbisfile)
+ find_dependency(Vorbis)
+ endif()
- if(SDL2MIXER_OPUS AND NOT SDL2MIXER_VENDORED AND NOT TARGET OpusFile::opusfile)
- find_dependency(OpusFile)
- endif()
+ if(SDL2MIXER_OPUS AND NOT TARGET OpusFile::opusfile)
+ find_dependency(OpusFile)
+ endif()
- if(SDL2MIXER_WAVPACK AND NOT SDL2MIXER_VENDORED AND NOT TARGET WavPack::WavPack)
- find_dependency(wavpack)
+ if(SDL2MIXER_WAVPACK AND NOT TARGET WavPack::WavPack)
+ find_dependency(wavpack)
+ endif()
endif()
if((NOT SDL2MIXER_VENDORED AND SDL2MIXER_MOD_MODPLUG) OR (HAIKU AND SDL2MIXER_MIDI_NATIVE))