wxWidgets/build/tools/git-make-release
Vadim Zeitlin d8f1676e97 Add scripts to make releases from a git-svn repository.
This can't replace the official release script yet as not everybody uses git
but they are much more convenient to use than the old ones for me and also
faster so I'm adding them to svn in case they can be useful to others.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64998 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-17 16:17:37 +00:00

69 lines
2.0 KiB
Bash
Executable File

#!/bin/sh
#
# This is the script used by VZ to make wxWidgets releases. It is unofficial
# because it must be ran from git-svn repository and not the official svn one
# and relies on having a recent Perl installation. But it has the advantage of
# being very simple because git knows which files should be included in the
# distribution and we don't need to maintain the list of them ourselves but we
# also don't run the risk of including anything unwanted.
#
# Another prerequisite for using it is to create the list of files to be
# converted to DOS EOLs for Windows distribution, it must exist in the parent
# directory and be called eol-native. This can be done using the companion
# svn-find-native-eols.pl script. And will only need to be redone when
# svn:eol-style property changes for any files (most likely because it will be
# set for a newly added file).
#
# To summarize, here are the steps to create the release:
#
# % cd $svn
# % $git/build/tools/svn-find-native-eols.pl > $git/../eol-native
# % cd $git
# % git svn tag WX_x_y_z
# % ./build/tools/git-make-release x.y.z
# % ... upload ../wxWidgets-x.y.z.{7z,tar.bz2,zip} ...
#
# If anything is wrong and some minor fixes are required, only the last two
# steps (tagging and git-make-release) must be repeated.
version=$1
if [ -z "$version" ]; then
echo "Must specify the distribution version." >2
exit 1
fi
set -e
set -x
prefix=wxWidgets-$version
destdir=$(dirname $(readlink -f $0))/../../../$prefix
cleanup() {
rm -rf $destdir
}
trap cleanup INT TERM EXIT
cleanup
git archive --prefix=$prefix/ HEAD | (cd ..; tar x)
cd ..
mv $prefix/include/wx/msw/setup0.h $prefix/include/wx/msw/setup.h
tar cjf $prefix.tar.bz2 $prefix
cd $prefix
set +x
for f in `cat ../eol-native`; do
if [ $f == "include/wx/msw/setup0.h" ]; then
# we renamed this file above so adjust
f="include/wx/msw/setup.h"
fi
unix2dos $f
done
set -x
zip -q -r ../$prefix.zip .
7z a ../$prefix.7z . >/dev/null