Actually, DYLIB_COMPATIBILITY_VERSION shouldn't be updated for a stable point release @smcv
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0779992..431b3c7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -123,7 +123,7 @@ math(EXPR DYLIB_CURRENT_VERSION_MAJOR "${LT_MAJOR} + ${LT_AGE} + 1")
math(EXPR DYLIB_CURRENT_VERSION_MINOR "${LT_REVISION}")
math(EXPR DYLIB_COMPAT_VERSION_MAJOR "${LT_MAJOR} + 1")
set(DYLIB_CURRENT_VERSION "${DYLIB_CURRENT_VERSION_MAJOR}.${DYLIB_CURRENT_VERSION_MINOR}.0")
-set(DYLIB_COMPATIBILITY_VERSION "${DYLIB_CURRENT_VERSION}")
+set(DYLIB_COMPATIBILITY_VERSION "${DYLIB_CURRENT_VERSION_MAJOR}.0.0")
# This list holds all generated headers.
# To avoid generating them twice, these are added to a dummy target on which all sdl targets depend.
diff --git a/docs/release_checklist.md b/docs/release_checklist.md
index 99afab2..8104c6b 100644
--- a/docs/release_checklist.md
+++ b/docs/release_checklist.md
@@ -45,7 +45,7 @@
* `Xcode/SDL/SDL.xcodeproj/project.pbxproj`:
`DYLIB_CURRENT_VERSION`, `DYLIB_COMPATIBILITY_VERSION`
* set second number in `DYLIB_CURRENT_VERSION` to *patchlevel*
- * set `DYLIB_COMPATIBILITY_VERSION` to the same value
+ * Leave `DYLIB_COMPATIBILITY_VERSION` unchanged
* Run test/versioning.sh to verify that everything is consistent
diff --git a/test/versioning.sh b/test/versioning.sh
index f0e8182..58bb09f 100755
--- a/test/versioning.sh
+++ b/test/versioning.sh
@@ -130,12 +130,11 @@ fi
# For simplicity this assumes we'll never break ABI before SDL 3.
dylib_compat=$(sed -Ene 's/.*DYLIB_COMPATIBILITY_VERSION = (.*);$/\1/p' Xcode/SDL/SDL.xcodeproj/project.pbxproj)
-dylib_cur=$(sed -Ene 's/.*DYLIB_CURRENT_VERSION = (.*);$/\1/p' Xcode/SDL/SDL.xcodeproj/project.pbxproj)
case "$ref_minor" in
(*[02468])
major="$(( ref_minor * 100 + 1 ))"
- minor="$ref_micro"
+ minor="0"
;;
(*)
major="$(( ref_minor * 100 + ref_micro + 1 ))"
@@ -152,6 +151,22 @@ else
not_ok "project.pbxproj DYLIB_COMPATIBILITY_VERSION is inconsistent, expected $ref, got $dylib_compat"
fi
+dylib_cur=$(sed -Ene 's/.*DYLIB_CURRENT_VERSION = (.*);$/\1/p' Xcode/SDL/SDL.xcodeproj/project.pbxproj)
+
+case "$ref_minor" in
+ (*[02468])
+ major="$(( ref_minor * 100 + 1 ))"
+ minor="$ref_micro"
+ ;;
+ (*)
+ major="$(( ref_minor * 100 + ref_micro + 1 ))"
+ minor="0"
+ ;;
+esac
+
+ref="${major}.${minor}.0
+${major}.${minor}.0"
+
if [ "$ref" = "$dylib_cur" ]; then
ok "project.pbxproj DYLIB_CURRENT_VERSION is consistent"
else