1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#!/bin/bash
set -eu -o pipefail
# This script generates source and binary archives that should be posted for
# each new release of libdeflate.
prefix="libdeflate-$(git describe HEAD | sed 's/^v//')"
# Generate source code archive libdeflate-*.tar.gz
tarball="${prefix}.tar.gz"
echo "Generating $tarball"
git archive --format=tar --prefix="${prefix}/" HEAD \
| libdeflate-gzip -12 > "$tarball"
# Generate Windows binary releases libdeflate-*-windows-*-bin.zip
for arch in 'i686' 'x86_64'; do
dir=${prefix}-windows-${arch}-bin
zipfile="${dir}.zip"
echo "Generating $zipfile"
rm -rf build "$dir" "$zipfile"
CFLAGS="-Werror" ${arch}-w64-mingw32-cmake -B build -G Ninja \
-DLIBDEFLATE_BUILD_TESTS=1 > /dev/null
cmake --build build > /dev/null
mkdir "$dir"
cp libdeflate.h build/libdeflate.{dll,dll.a,a} \
build/programs/{benchmark,checksum}.exe "$dir"
cp build/programs/libdeflate-gzip.exe "$dir"/gzip.exe
cp build/programs/libdeflate-gzip.exe "$dir"/gunzip.exe
${arch}-w64-mingw32-strip "$dir"/libdeflate.dll "$dir"/*.exe
for file in COPYING NEWS.md README.md; do
sed < $file > "$dir/${file}.txt" -e 's/$/\r/g'
done
(cd "$dir" && zip -q -r "../${zipfile}" .)
done
echo "Successfully generated release archives"
|