#!/usr/bin/env bash set -e VERSION_VIPS_SHORT=${VERSION_VIPS%.[[:digit:]]*} # Common options for curl CURL="curl --silent --location --retry 3 --retry-max-time 30" # Fetch and unzip mkdir /vips cd /vips case ${PLATFORM} in *arm64v8) ARCH=arm64 ;; *x64) ARCH=w64 ;; *ia32) ARCH=w32 ;; esac FILENAME="vips-dev-${ARCH}-web-${VERSION_VIPS}-static.zip" URL="https://github.com/libvips/build-win64-mxe/releases/download/v${VERSION_VIPS}-build2/${FILENAME}" echo "Downloading $URL" $CURL -O $URL unzip $FILENAME # Clean and zip cd /vips/vips-dev-${VERSION_VIPS_SHORT} rm bin/libvips-cpp-42.dll cp bin/*.dll lib/ # Create platform.json printf "\"${PLATFORM}\"" >platform.json # Add third-party notices $CURL -O https://raw.githubusercontent.com/lovell/sharp-libvips/master/THIRD-PARTY-NOTICES.md echo "Creating tarball" tar czf /packaging/libvips-${VERSION_VIPS}-${PLATFORM}.tar.gz \ include \ lib/glib-2.0 \ lib/libvips.lib \ lib/libglib-2.0.lib \ lib/libgobject-2.0.lib \ lib/*.dll \ *.json \ THIRD-PARTY-NOTICES.md # Recompress using AdvanceCOMP, ~5% smaller advdef --recompress --shrink-insane /packaging/libvips-${VERSION_VIPS}-${PLATFORM}.tar.gz # Recompress using Brotli, ~15% smaller gunzip -c /packaging/libvips-${VERSION_VIPS}-${PLATFORM}.tar.gz | brotli -o /packaging/libvips-${VERSION_VIPS}-${PLATFORM}.tar.br # Allow tarballs to be read outside container chmod 644 /packaging/libvips-${VERSION_VIPS}-${PLATFORM}.tar.* # Remove working directories rm -rf lib include *.json THIRD-PARTY-NOTICES.md