From c636b052d1e0d422ac3355233523693d12de0089 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sun, 23 Nov 2025 00:59:54 +0100
Subject: [PATCH] Require minimum SDL version in SDL_mixer sources + verify
this
---
build-scripts/test-versioning.sh | 14 +++++++++++++-
src/SDL_mixer.c | 2 ++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/build-scripts/test-versioning.sh b/build-scripts/test-versioning.sh
index 89e298916..ae89b98b0 100755
--- a/build-scripts/test-versioning.sh
+++ b/build-scripts/test-versioning.sh
@@ -15,6 +15,12 @@ ref_minor=$(sed -ne 's/^#define SDL_MIXER_MINOR_VERSION *//p' $header)
ref_micro=$(sed -ne 's/^#define SDL_MIXER_MICRO_VERSION *//p' $header)
ref_version="${ref_major}.${ref_minor}.${ref_micro}"
+ref_reqsdl="$(sed -nEe ':a;N;$!ba;s/[\r\n]/ /g;s/.*SDL_COMPILE_TIME_ASSERT\(SDL_version, SDL_VERSION_ATLEAST\(([0-9]+), ([0-9]+), ([0-9]+)\)\).*/\1.\2.\3/p' src/SDL_mixer.c)"
+if [[ -z "$ref_reqsdl" ]]; then
+ echo "ERROR: SDL_VERSION_ATLEAST(...) not found in $src" >&2
+ exit 1
+fi
+
tests=0
failed=0
@@ -32,7 +38,7 @@ not_ok () {
major=$(sed -ne 's/^set(MAJOR_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt)
minor=$(sed -ne 's/^set(MINOR_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt)
micro=$(sed -ne 's/^set(MICRO_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt)
-ref_sdl_req=$(sed -ne 's/^set(SDL_REQUIRED_VERSION \([0-9.]*\))$/\1/p' CMakeLists.txt)
+reqsdl=$(sed -ne 's/^set(SDL_REQUIRED_VERSION \([0-9.]*\))$/\1/p' CMakeLists.txt)
version="${major}.${minor}.${micro}"
if [ "$ref_version" = "$version" ]; then
@@ -41,6 +47,12 @@ else
not_ok "CMakeLists.txt $version disagrees with SDL_mixer.h $ref_version"
fi
+if [ "$ref_reqsdl" = "$reqsdl" ]; then
+ ok "CMakeLists.txt $reqsdl"
+else
+ not_ok "CMakeLists.txt $reqsdl disagrees with SDL_mixer.h $ref_reqsdl"
+fi
+
for rcfile in src/version.rc; do
tuple=$(sed -ne 's/^ *FILEVERSION *//p' "$rcfile" | tr -d '\r')
ref_tuple="${ref_major},${ref_minor},${ref_micro},0"
diff --git a/src/SDL_mixer.c b/src/SDL_mixer.c
index 3beca55b4..95493b223 100644
--- a/src/SDL_mixer.c
+++ b/src/SDL_mixer.c
@@ -23,6 +23,8 @@
#include "SDL_mixer_internal.h"
+SDL_COMPILE_TIME_ASSERT(SDL_version, SDL_VERSION_ATLEAST(3, 3, 3));
+
// !!! FIXME: remove this once SDL 3.4.0 ships.
#ifndef SDL_PROP_AUDIOSTREAM_AUTO_CLEANUP_BOOLEAN
#define SDL_PROP_AUDIOSTREAM_AUTO_CLEANUP_BOOLEAN "SDL.audiostream.auto_cleanup"