diff --git a/build/tools/git-make-release b/build/tools/git-make-release new file mode 100755 index 0000000000..78f5448996 --- /dev/null +++ b/build/tools/git-make-release @@ -0,0 +1,68 @@ +#!/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