12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #!/usr/bin/env bash
- set -e
- if [ $# -lt 1 ]; then
- echo
- echo "Usage: $0 VERSION [PLATFORM]"
- echo "Build shared libraries for libvips and its dependencies via containers"
- echo
- echo "Please specify the libvips VERSION, e.g. 8.9.2"
- echo
- echo "Optionally build for only one PLATFORM, defaults to building for all"
- echo
- echo "Possible values for PLATFORM are:"
- echo "- win32-ia32"
- echo "- win32-x64"
- echo "- win32-arm64v8"
- echo "- linux-x64"
- echo "- linuxmusl-x64"
- echo "- linux-armv6"
- echo "- linux-armv7"
- echo "- linux-arm64v8"
- echo "- darwin-x64"
- echo
- exit 1
- fi
- VERSION_VIPS="$1"
- PLATFORM="${2:-all}"
- # macOS
- # Note: we intentionally don't build these binaries inside a Docker container
- if [ $PLATFORM = "darwin-x64" ] && [ "$(uname)" == "Darwin" ]; then
- # Use Clang provided by XCode
- export CC="clang"
- export CXX="clang++"
- export VERSION_VIPS
- export PLATFORM
- # 10.9 should be a good minimal release target
- export MACOSX_DEPLOYMENT_TARGET="10.9"
- # Added -fno-stack-check to workaround a stack misalignment bug on macOS 10.15
- # See:
- # https://forums.developer.apple.com/thread/121887
- # https://trac.ffmpeg.org/ticket/8073#comment:12
- export FLAGS="-O3 -fPIC -fno-stack-check"
- . $PWD/build/mac.sh
- exit 0
- fi
- # Is podman available?
- if ! [ -x "$(command -v podman)" ]; then
- echo "Please install podman"
- exit 1
- fi
- # Update base images
- for baseimage in centos:7 debian:buster debian:bullseye alpine:3.11; do
- podman pull $baseimage
- done
- # Windows
- # Linux (x64, ARMv6, ARMv7, ARM64v8)
- for flavour in linux-x64 linuxmusl-x64 linux-armv6 linux-armv7 linux-arm64v8; do
- if [ $PLATFORM = "all" ] || [ $PLATFORM = $flavour ]; then
- echo "Building $flavour..."
- podman build -t vips-dev-$flavour $flavour
- podman run --rm -e "VERSION_VIPS=${VERSION_VIPS}" -v $PWD:/packaging vips-dev-$flavour /bin/bash "/packaging/build/lin.sh"
- fi
- done
- # Display checksums
- sha256sum *.tar.{br,gz}
|