wxWidgets/misc/scripts/inc_release
2015-02-08 11:17:35 +00:00

114 lines
3.2 KiB
Bash
Executable File

#!/bin/sh
##############################################################################
# Name: misc/scripts/inc_release
# Purpose: increments the release version number in all files mentioned in
# docs/contributing/about-version-numbers.md
# Created: 2007-01-07
# Copyright: (c) 2007 Vadim Zeitlin <vadim@wxwindows.org>
# Licence: wxWindows licence
##############################################################################
error() {
echo "$progname: $*" >&2
}
msg() {
echo "$progname: $*"
}
msgn() {
echo -n "$progname: $*"
}
msgc() {
echo "$*"
}
run_sed() {
filename=$1
shift
cmd=
while [ $# -gt 0 ]; do
cmd="$cmd-e \"$1\" "
shift
done
msgn " processing $filename ... "
eval "sed $cmd $filename" > $filename.$$
if cmp -s $filename $filename.$$; then
rm $filename.$$
msgc "unchanged"
else
mv $filename.$$ $filename
msgc "done"
fi
}
progname=`basename $0`
# we must be run from wx directory
if [ ! -f wxwin.m4 ]; then
error "must be ran from root wx directory"
exit 1
fi
# exit on any error
set -e
# the primary source of information is wx/version.h
ver_string=`grep '#define wxVERSION_STRING ' include/wx/version.h | sed 's/^.*"wxWidgets \(.*\)")/\1/'`
ver_major=`echo $ver_string | sed 's/\([0-9]\{1,\}\)\..*/\1/'`
ver_minor=`echo $ver_string | sed 's/.*\.\([0-9]\{1,\}\)\..*/\1/'`
ver_release=`echo $ver_string | sed 's/.*\.\([0-9]\{1,\}\)$/\1/'`
msg "Original version is $ver_major.$ver_minor.$ver_release"
ver_release_new=$(($ver_release + 1))
ver_string_new=$ver_major.$ver_minor.$ver_release_new
msg "Updating version to $ver_string_new"
ver_for_sed="$ver_major\.$ver_minor\.$ver_release"
run_sed configure.in \
"/^AC_INIT/s/$ver_for_sed/$ver_string_new/" \
"s/^wx_release_number=$ver_release/wx_release_number=$ver_release_new/" \
"s/^wx_subrelease_number=.*$/wx_subrelease_number=0/"
run_sed build/osx/wxvers.xcconfig \
"/DYLIB_.* = /s/$ver_for_sed/$ver_string_new/"
run_sed build/tools/bld_chm_exe.bat \
"/^SET WXW_VER=/s/$ver_for_sed/$ver_string_new/"
run_sed docs/readme.txt \
"/wxWidgets /s/$ver_for_sed/$ver_string_new/" \
"/\//s/$ver_for_sed/$ver_string_new/" \
"/naming: while/s/$ver_for_sed/$ver_string_new/"
run_sed docs/doxygen/Doxyfile \
"/^PROJECT_NUMBER/s/$ver_for_sed/$ver_string_new/"
run_sed include/wx/version.h \
"s/^\(#define wxRELEASE_NUMBER *\) $ver_release$/\1 $ver_release_new/" \
"s/^\(#define wxSUBRELEASE_NUMBER *\) [0-9]\{1,\}$/\1 0/" \
"/^#define wxVERSION_STRING/s/$ver_for_sed/$ver_string_new/"
run_sed include/wx/osx/config_xcode.h \
"/^#define PACKAGE/s/$ver_for_sed/$ver_string_new/"
run_sed samples/Info.plist \
"/version/s/$ver_for_sed/$ver_string_new/" \
"/<string>/s/$ver_for_sed/$ver_string_new/"
run_sed samples/minimal/Info_carbon.plist \
"/<string>/s/$ver_for_sed/$ver_string_new/"
run_sed samples/minimal/Info_cocoa.plist \
"/<string>/s/$ver_for_sed/$ver_string_new/"
run_sed samples/docview/Info.plist \
"/versionon/s/$ver_for_sed/$ver_string_new/" \
"/<string>/s/$ver_for_sed/$ver_string_new/"
msg "Don't forget to change the C:R:A triplet in build/bakefiles/version.bkl now!"