Simple Directmedia Layer
at main 3.4 kB view raw
1#!/bin/sh 2 3#set -x 4 5cd `dirname $0`/.. 6 7ARGSOKAY=1 8if [ -z $1 ]; then 9 ARGSOKAY=0 10fi 11if [ -z $2 ]; then 12 ARGSOKAY=0 13fi 14if [ -z $3 ]; then 15 ARGSOKAY=0 16fi 17 18if [ "x$ARGSOKAY" = "x0" ]; then 19 echo "USAGE: $0 <major> <minor> <patch>" 1>&2 20 exit 1 21fi 22 23MAJOR="$1" 24MINOR="$2" 25MICRO="$3" 26NEWVERSION="$MAJOR.$MINOR.$MICRO" 27 28echo "Updating version to '$NEWVERSION' ..." 29 30perl -w -pi -e 's/\A(.* version )[0-9.]+/${1}'$NEWVERSION'/;' include/SDL3/SDL.h 31 32# !!! FIXME: This first one is a kinda scary search/replace that might fail later if another X.Y.Z version is added to the file. 33perl -w -pi -e 's/(\<string\>)\d+\.\d+\.\d+/${1}'$NEWVERSION'/;' Xcode/SDL/Info-Framework.plist 34 35perl -w -pi -e 's/(Title SDL )\d+\.\d+\.\d+/${1}'$NEWVERSION'/;' Xcode/SDL/pkg-support/SDL.info 36 37perl -w -pi -e 's/(MARKETING_VERSION\s*=\s*)\d+\.\d+\.\d+/${1}'$NEWVERSION'/;' Xcode/SDL/SDL.xcodeproj/project.pbxproj 38 39DYVER=`expr $MINOR \* 100 + 1` 40perl -w -pi -e 's/(DYLIB_CURRENT_VERSION\s*=\s*)\d+\.\d+\.\d+/${1}'$DYVER'.0.0/;' Xcode/SDL/SDL.xcodeproj/project.pbxproj 41 42# Set compat to major.minor.0 by default. 43perl -w -pi -e 's/(DYLIB_COMPATIBILITY_VERSION\s*=\s*)\d+\.\d+\.\d+/${1}'$DYVER'.0.0/;' Xcode/SDL/SDL.xcodeproj/project.pbxproj 44 45# non-zero patch? 46if [ "x$MICRO" != "x0" ]; then 47 if [ `expr $MINOR % 2` = "0" ]; then 48 # If patch is not zero, but minor is even, it's a bugfix release. 49 perl -w -pi -e 's/(DYLIB_CURRENT_VERSION\s*=\s*)\d+\.\d+\.\d+/${1}'$DYVER'.'$MICRO'.0/;' Xcode/SDL/SDL.xcodeproj/project.pbxproj 50 51 else 52 # If patch is not zero, but minor is odd, it's a development prerelease. 53 DYVER=`expr $MINOR \* 100 + $MICRO + 1` 54 perl -w -pi -e 's/(DYLIB_CURRENT_VERSION\s*=\s*)\d+\.\d+\.\d+/${1}'$DYVER'.0.0/;' Xcode/SDL/SDL.xcodeproj/project.pbxproj 55 perl -w -pi -e 's/(DYLIB_COMPATIBILITY_VERSION\s*=\s*)\d+\.\d+\.\d+/${1}'$DYVER'.0.0/;' Xcode/SDL/SDL.xcodeproj/project.pbxproj 56 fi 57fi 58 59perl -w -pi -e 's/\A(project\(SDL[0-9]+ LANGUAGES C VERSION ")[0-9.]+/${1}'$NEWVERSION'/;' CMakeLists.txt 60 61perl -w -pi -e 's/\A(.* SDL_MAJOR_VERSION = )\d+/${1}'$MAJOR'/;' android-project/app/src/main/java/org/libsdl/app/SDLActivity.java 62perl -w -pi -e 's/\A(.* SDL_MINOR_VERSION = )\d+/${1}'$MINOR'/;' android-project/app/src/main/java/org/libsdl/app/SDLActivity.java 63perl -w -pi -e 's/\A(.* SDL_MICRO_VERSION = )\d+/${1}'$MICRO'/;' android-project/app/src/main/java/org/libsdl/app/SDLActivity.java 64 65perl -w -pi -e 's/(\#define SDL_MAJOR_VERSION\s+)\d+/${1}'$MAJOR'/;' include/SDL3/SDL_version.h 66perl -w -pi -e 's/(\#define SDL_MINOR_VERSION\s+)\d+/${1}'$MINOR'/;' include/SDL3/SDL_version.h 67perl -w -pi -e 's/(\#define SDL_MICRO_VERSION\s+)\d+/${1}'$MICRO'/;' include/SDL3/SDL_version.h 68 69perl -w -pi -e 's/(FILEVERSION\s+)\d+,\d+,\d+/${1}'$MAJOR','$MINOR','$MICRO'/;' src/core/windows/version.rc 70perl -w -pi -e 's/(PRODUCTVERSION\s+)\d+,\d+,\d+/${1}'$MAJOR','$MINOR','$MICRO'/;' src/core/windows/version.rc 71perl -w -pi -e 's/(VALUE "FileVersion", ")\d+, \d+, \d+/${1}'$MAJOR', '$MINOR', '$MICRO'/;' src/core/windows/version.rc 72perl -w -pi -e 's/(VALUE "ProductVersion", ")\d+, \d+, \d+/${1}'$MAJOR', '$MINOR', '$MICRO'/;' src/core/windows/version.rc 73 74echo "Running build-scripts/test-versioning.sh to verify changes..." 75./build-scripts/test-versioning.sh 76 77echo "All done." 78echo "Run 'git diff' and make sure this looks correct, before 'git commit'." 79 80exit 0 81