f2425c5cbd
They're not handled by the current 7z version under MSW if the user doesn't have administrative rights and, instead of dealing with this, it's simpler to just never include any symlinks in the archives as we don't really need them anyhow. So add a check ensuring that no symlinks are included in the distribution archives to avoid more problems such as the one fixed in the parent commit in the future.
86 lines
2.0 KiB
Bash
Executable File
86 lines
2.0 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# This is the official script used to make wxWidgets releases.
|
|
#
|
|
# We use the git export features to track 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.
|
|
#
|
|
# See docs/contributing/how-to-release.md for usage instructions.
|
|
|
|
version=$1
|
|
if [ -z "$version" ]; then
|
|
echo "Must specify the distribution version." >&2
|
|
exit 1
|
|
fi
|
|
|
|
root="$(readlink -f $(dirname $(readlink -f $0))/../..)"
|
|
cd "$root"
|
|
|
|
if ! git diff --quiet; then
|
|
echo "Working copy has modifications, commit or stash them." >&2
|
|
exit 2
|
|
fi
|
|
|
|
set -e
|
|
set -x
|
|
|
|
prefix=wxWidgets-$version
|
|
destdir="$root/distrib/release/$version"
|
|
|
|
cleanup() {
|
|
rm -rf $destdir/$prefix
|
|
}
|
|
|
|
trap cleanup INT TERM EXIT
|
|
|
|
cleanup
|
|
|
|
mkdir -p $destdir
|
|
|
|
# We use GNU tar -i option to allow successfully extracting files from several
|
|
# tar archives concatenated together, without it we'd have to pipe output of
|
|
# each git-archive separately.
|
|
(git archive --prefix=$prefix/ HEAD;
|
|
git submodule foreach --quiet "cd $root/\$path && git archive --prefix=$prefix/\$path/ HEAD") |
|
|
tar x -C $destdir -i
|
|
|
|
cd $destdir
|
|
|
|
# Check that there are no symlinks because we don't handle them correctly
|
|
# under MSW systems currently.
|
|
if ! find . -type l -exec false {} + -quit; then
|
|
set +x
|
|
echo 'There are unexpected symlinks in the source tree:' >&2
|
|
echo '' >& 2
|
|
find . -type l -fprint /dev/stderr
|
|
echo '' >& 2
|
|
echo 'Please remove them or fix #22271.' >&2
|
|
exit 2
|
|
fi
|
|
|
|
# Compile gettext catalogs.
|
|
make -C $prefix/locale -s MSGFMT=msgfmt allmo
|
|
|
|
tar cjf $prefix.tar.bz2 $prefix
|
|
|
|
cd $prefix
|
|
|
|
zip -q -r ../$prefix.zip .
|
|
|
|
7z a ../$prefix.7z . >/dev/null
|
|
7z a ../${prefix}-headers.7z include >/dev/null
|
|
|
|
# Build HTML documentation packages.
|
|
prefix_docs=$prefix-docs-html
|
|
cd "$root/docs/doxygen"
|
|
rm -rf out
|
|
./regen.sh html
|
|
cd out
|
|
mv html "$prefix_docs"
|
|
tar cjf "$destdir/$prefix_docs.tar.bz2" "$prefix_docs"
|
|
cd "$prefix_docs"
|
|
zip -q -r "$destdir/$prefix_docs.zip" .
|
|
cd "$root"
|
|
rm -rf "$root/docs/doxygen/out"
|