From e68bfcf886fe056598bb7be483537ee38cdd5377 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Tue, 5 May 2026 15:32:10 +0200
Subject: [PATCH] cmake: correctly set SDLMIXER_MOD_XMP_LITE in
SDL3_mixerConfig.cmake
(cherry picked from commit 3075d3eda55ce295c6919d330edb2554ff4edb5b)
---
CMakeLists.txt | 13 ++++++++++++-
cmake/SDL3_mixerConfig.cmake.in | 18 +++++++++++-------
2 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 66dbdc0e..cd83e270 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -724,6 +724,8 @@ if(SDLMIXER_GME)
endif()
endif()
+set(tgt_libxmp libxmp::xmp_shared)
+set(tgt_libxmplite libxmp-lite::xmp_lite_shared)
list(APPEND SDLMIXER_BACKENDS MOD_XMP)
set(SDLMIXER_MOD_XMP_ENABLED FALSE)
if(SDLMIXER_MOD_XMP)
@@ -756,8 +758,16 @@ if(SDLMIXER_MOD_XMP)
find_package(libxmp-lite ${required})
if(libxmp-lite_FOUND)
set(SDLMIXER_MOD_XMP_ENABLED TRUE)
+ set(SDLMIXER_MOD_XMP_LITE_ENABLED TRUE)
message(STATUS "Using system libxmp-lite")
- 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 SDLMIXER_MOD_XMP_SHARED)
list(APPEND PC_REQUIRES libxmp-lite)
@@ -780,6 +790,7 @@ if(SDLMIXER_MOD_XMP)
else()
set(tgt_xmp libxmp::libxmp)
endif()
+ set(tgt_libxmp ${tgt_xmp})
set(xmp_name libxmp)
if(NOT SDLMIXER_MOD_XMP_SHARED)
list(APPEND PC_REQUIRES libxmp)
diff --git a/cmake/SDL3_mixerConfig.cmake.in b/cmake/SDL3_mixerConfig.cmake.in
index acea4bdc..f1f44bac 100644
--- a/cmake/SDL3_mixerConfig.cmake.in
+++ b/cmake/SDL3_mixerConfig.cmake.in
@@ -20,7 +20,7 @@ set(SDLMIXER_GME @SDLMIXER_GME_ENABLED@)
set(SDLMIXER_MOD @SDLMIXER_MOD_ENABLED@)
set(SDLMIXER_MOD_XMP @SDLMIXER_MOD_XMP_ENABLED@)
-set(SDLMIXER_MOD_XMP_LITE @SDLMIXER_MOD_XMP_ENABLED@)
+set(SDLMIXER_MOD_XMP_LITE @SDLMIXER_MOD_XMP_LITE_ENABLED@)
set(SDLMIXER_MP3 @SDLMIXER_MP3_ENABLED@)
set(SDLMIXER_MP3_DRMP3 @SDLMIXER_MP3_DRMP3_ENABLED@)
@@ -81,12 +81,16 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_mixer-static-targets.cmake")
endif()
endif()
- if(SDLMIXER_MOD_XMP AND NOT TARGET libxmp::libxmp)
- find_dependency(libxmp)
- endif()
-
- if(SDLMIXER_MOD_XMP_LITE AND NOT TARGET libxmp-lite::libxmp-lite)
- find_dependency(libxmp-lite)
+ if(SDLMIXER_MOD_XMP)
+ if(SDLMIXER_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(SDLMIXER_MP3_MPG123 AND NOT TARGET MPG123::mpg123)