| #!/bin/sh |
| # Copyright 2022 Collabora Ltd. |
| # SPDX-License-Identifier: Zlib |
| |
| set -eu |
| |
| ref_major=$(sed -ne 's/^#define SDL_MAJOR_VERSION *//p' include/SDL_version.h) |
| ref_minor=$(sed -ne 's/^#define SDL_MINOR_VERSION *//p' include/SDL_version.h) |
| ref_micro=$(sed -ne 's/^#define SDL_PATCHLEVEL *//p' include/SDL_version.h) |
| ref_version="${ref_major}.${ref_minor}.${ref_micro}" |
| |
| tests=0 |
| failed=0 |
| |
| ok () { |
| tests=$(( tests + 1 )) |
| echo "ok - $*" |
| } |
| |
| not_ok () { |
| tests=$(( tests + 1 )) |
| echo "not ok - $*" |
| failed=1 |
| } |
| |
| major=$(sed -ne 's/^SDL_MAJOR_VERSION=//p' configure.ac) |
| minor=$(sed -ne 's/^SDL_MINOR_VERSION=//p' configure.ac) |
| micro=$(sed -ne 's/^SDL_MICRO_VERSION=//p' configure.ac) |
| version="${major}.${minor}.${micro}" |
| |
| if [ "$ref_version" = "$version" ]; then |
| ok "configure.ac $version" |
| else |
| not_ok "configure.ac $version disagrees with SDL_version.h $ref_version" |
| fi |
| |
| major=$(sed -ne 's/^SDL_MAJOR_VERSION=//p' configure) |
| minor=$(sed -ne 's/^SDL_MINOR_VERSION=//p' configure) |
| micro=$(sed -ne 's/^SDL_MICRO_VERSION=//p' configure) |
| version="${major}.${minor}.${micro}" |
| |
| if [ "$ref_version" = "$version" ]; then |
| ok "configure $version" |
| else |
| not_ok "configure $version disagrees with SDL_version.h $ref_version" |
| fi |
| |
| major=$(sed -ne 's/^set(SDL_MAJOR_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt) |
| minor=$(sed -ne 's/^set(SDL_MINOR_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt) |
| micro=$(sed -ne 's/^set(SDL_MICRO_VERSION \([0-9]*\))$/\1/p' CMakeLists.txt) |
| version="${major}.${minor}.${micro}" |
| |
| if [ "$ref_version" = "$version" ]; then |
| ok "CMakeLists.txt $version" |
| else |
| not_ok "CMakeLists.txt $version disagrees with SDL_version.h $ref_version" |
| fi |
| |
| major=$(sed -ne 's/.*SDL_MAJOR_VERSION = \([0-9]*\);/\1/p' android-project/app/src/main/java/org/libsdl/app/SDLActivity.java) |
| minor=$(sed -ne 's/.*SDL_MINOR_VERSION = \([0-9]*\);/\1/p' android-project/app/src/main/java/org/libsdl/app/SDLActivity.java) |
| micro=$(sed -ne 's/.*SDL_MICRO_VERSION = \([0-9]*\);/\1/p' android-project/app/src/main/java/org/libsdl/app/SDLActivity.java) |
| version="${major}.${minor}.${micro}" |
| |
| if [ "$ref_version" = "$version" ]; then |
| ok "SDLActivity.java $version" |
| else |
| not_ok "android-project/app/src/main/java/org/libsdl/app/SDLActivity.java $version disagrees with SDL_version.h $ref_version" |
| fi |
| |
| major=$(sed -ne 's/^MAJOR_VERSION *= *//p' Makefile.os2) |
| minor=$(sed -ne 's/^MINOR_VERSION *= *//p' Makefile.os2) |
| micro=$(sed -ne 's/^MICRO_VERSION *= *//p' Makefile.os2) |
| version="${major}.${minor}.${micro}" |
| |
| if [ "$ref_version" = "$version" ]; then |
| ok "Makefile.os2 $version" |
| else |
| not_ok "Makefile.os2 $version disagrees with SDL_version.h $ref_version" |
| fi |
| |
| major=$(sed -ne 's/^MAJOR_VERSION *= *//p' Makefile.w32) |
| minor=$(sed -ne 's/^MINOR_VERSION *= *//p' Makefile.w32) |
| micro=$(sed -ne 's/^MICRO_VERSION *= *//p' Makefile.w32) |
| version="${major}.${minor}.${micro}" |
| |
| if [ "$ref_version" = "$version" ]; then |
| ok "Makefile.w32 $version" |
| else |
| not_ok "Makefile.w32 $version disagrees with SDL_version.h $ref_version" |
| fi |
| |
| tuple=$(sed -ne 's/^ *FILEVERSION *//p' src/main/windows/version.rc | tr -d '\r') |
| ref_tuple="${ref_major},${ref_minor},${ref_micro},0" |
| |
| if [ "$ref_tuple" = "$tuple" ]; then |
| ok "version.rc FILEVERSION $tuple" |
| else |
| not_ok "version.rc FILEVERSION $tuple disagrees with SDL_version.h $ref_tuple" |
| fi |
| |
| tuple=$(sed -ne 's/^ *PRODUCTVERSION *//p' src/main/windows/version.rc | tr -d '\r') |
| |
| if [ "$ref_tuple" = "$tuple" ]; then |
| ok "version.rc PRODUCTVERSION $tuple" |
| else |
| not_ok "version.rc PRODUCTVERSION $tuple disagrees with SDL_version.h $ref_tuple" |
| fi |
| |
| tuple=$(sed -Ene 's/^ *VALUE "FileVersion", "([0-9, ]*)\\0"\r?$/\1/p' src/main/windows/version.rc | tr -d '\r') |
| ref_tuple="${ref_major}, ${ref_minor}, ${ref_micro}, 0" |
| |
| if [ "$ref_tuple" = "$tuple" ]; then |
| ok "version.rc FileVersion $tuple" |
| else |
| not_ok "version.rc FileVersion $tuple disagrees with SDL_version.h $ref_tuple" |
| fi |
| |
| tuple=$(sed -Ene 's/^ *VALUE "ProductVersion", "([0-9, ]*)\\0"\r?$/\1/p' src/main/windows/version.rc | tr -d '\r') |
| |
| if [ "$ref_tuple" = "$tuple" ]; then |
| ok "version.rc ProductVersion $tuple" |
| else |
| not_ok "version.rc ProductVersion $tuple disagrees with SDL_version.h $ref_tuple" |
| fi |
| |
| version=$(sed -Ene '/CFBundleShortVersionString/,+1 s/.*<string>(.*)<\/string>.*/\1/p' Xcode/SDL/Info-Framework.plist) |
| |
| if [ "$ref_version" = "$version" ]; then |
| ok "Info-Framework.plist CFBundleShortVersionString $version" |
| else |
| not_ok "Info-Framework.plist CFBundleShortVersionString $version disagrees with SDL_version.h $ref_version" |
| fi |
| |
| version=$(sed -Ene '/CFBundleVersion/,+1 s/.*<string>(.*)<\/string>.*/\1/p' Xcode/SDL/Info-Framework.plist) |
| |
| if [ "$ref_version" = "$version" ]; then |
| ok "Info-Framework.plist CFBundleVersion $version" |
| else |
| not_ok "Info-Framework.plist CFBundleVersion $version disagrees with SDL_version.h $ref_version" |
| 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) |
| |
| case "$ref_minor" in |
| (*[02468]) |
| major="$(( ref_minor * 100 + 1 ))" |
| minor="0" |
| ;; |
| (*) |
| major="$(( ref_minor * 100 + ref_micro + 1 ))" |
| minor="0" |
| ;; |
| esac |
| |
| ref="${major}.${minor}.0 |
| ${major}.${minor}.0 |
| ${major}.${minor}.0 |
| ${major}.${minor}.0" |
| |
| if [ "$ref" = "$dylib_compat" ]; then |
| ok "project.pbxproj DYLIB_COMPATIBILITY_VERSION is consistent" |
| 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 |
| ${major}.${minor}.0 |
| ${major}.${minor}.0" |
| |
| if [ "$ref" = "$dylib_cur" ]; then |
| ok "project.pbxproj DYLIB_CURRENT_VERSION is consistent" |
| else |
| not_ok "project.pbxproj DYLIB_CURRENT_VERSION is inconsistent, expected $ref, got $dylib_cur" |
| fi |
| |
| echo "1..$tests" |
| exit "$failed" |