forked from lovell/sharp-libvips
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbuild.sh
executable file
·82 lines (70 loc) · 2.19 KB
/
build.sh
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/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 "- 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 docker available?
if ! [ -x "$(command -v docker)" ]; then
echo "Please install docker"
exit 1
fi
# Update base images
for baseimage in centos:7 debian:buster debian:bullseye alpine:3.11; do
docker pull $baseimage
done
# Windows
for flavour in win32-ia32 win32-x64; do
if [ $PLATFORM = "all" ] || [ $PLATFORM = $flavour ]; then
echo "Building $flavour..."
docker build -t vips-dev-$flavour $flavour
docker run --rm -e "VERSION_VIPS=${VERSION_VIPS}" -v $PWD:/packaging vips-dev-$flavour sh -c "/packaging/build/win.sh"
fi
done
# 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..."
docker build -t vips-dev-$flavour $flavour
docker run --rm -e "VERSION_VIPS=${VERSION_VIPS}" -v $PWD:/packaging vips-dev-$flavour sh -c "/packaging/build/lin.sh"
fi
done
# Display checksums
sha256sum *.tar.{br,gz}