diff --git a/CMakeLists.txt b/CMakeLists.txt index 077999232..431b3c737 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 99afab228..8104c6b29 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 f0e8182ab..58bb09ffc 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