@@ -16,7 +16,11 @@ ARCHIVE_SDIR=pillow-depends-main
16
16
17
17
# Package versions for fresh source builds
18
18
FREETYPE_VERSION=2.13.2
19
- HARFBUZZ_VERSION=8.5.0
19
+ if [[ " $MB_ML_VER " != 2014 ]]; then
20
+ HARFBUZZ_VERSION=9.0.0
21
+ else
22
+ HARFBUZZ_VERSION=8.5.0
23
+ fi
20
24
LIBPNG_VERSION=1.6.43
21
25
JPEGTURBO_VERSION=3.0.3
22
26
OPENJPEG_VERSION=2.5.2
@@ -40,7 +44,7 @@ BROTLI_VERSION=1.1.0
40
44
41
45
if [[ -n " $IS_MACOS " ]] && [[ " $CIBW_ARCHS " == " x86_64" ]]; then
42
46
function build_openjpeg {
43
- local out_dir=$( fetch_unpack https://github.com/uclouvain/openjpeg/archive/v${ OPENJPEG_VERSION} .tar.gz openjpeg-${ OPENJPEG_VERSION} .tar.gz)
47
+ local out_dir=$( fetch_unpack https://github.com/uclouvain/openjpeg/archive/v$OPENJPEG_VERSION .tar.gz openjpeg-$OPENJPEG_VERSION .tar.gz)
44
48
(cd $out_dir \
45
49
&& cmake -DCMAKE_INSTALL_PREFIX=$BUILD_PREFIX -DCMAKE_INSTALL_NAME_DIR=$BUILD_PREFIX /lib . \
46
50
&& make install)
50
54
51
55
function build_brotli {
52
56
local cmake=$( get_modern_cmake)
53
- local out_dir=$( fetch_unpack https://github.com/google/brotli/archive/v$BROTLI_VERSION .tar.gz brotli-1.1.0 .tar.gz)
57
+ local out_dir=$( fetch_unpack https://github.com/google/brotli/archive/v$BROTLI_VERSION .tar.gz brotli-$BROTLI_VERSION .tar.gz)
54
58
(cd $out_dir \
55
59
&& $cmake -DCMAKE_INSTALL_PREFIX=$BUILD_PREFIX -DCMAKE_INSTALL_NAME_DIR=$BUILD_PREFIX /lib . \
56
60
&& make install)
@@ -60,6 +64,25 @@ function build_brotli {
60
64
fi
61
65
}
62
66
67
+ function build_harfbuzz {
68
+ if [[ " $HARFBUZZ_VERSION " == 8.5.0 ]]; then
69
+ export FREETYPE_LIBS=-lfreetype
70
+ export FREETYPE_CFLAGS=-I/usr/local/include/freetype2/
71
+ build_simple harfbuzz $HARFBUZZ_VERSION https://github.com/harfbuzz/harfbuzz/releases/download/$HARFBUZZ_VERSION tar.xz --with-freetype=yes --with-glib=no
72
+ export FREETYPE_LIBS=" "
73
+ export FREETYPE_CFLAGS=" "
74
+ else
75
+ local out_dir=$( fetch_unpack https://github.com/harfbuzz/harfbuzz/releases/download/$HARFBUZZ_VERSION /$HARFBUZZ_VERSION .tar.xz harfbuzz-$HARFBUZZ_VERSION .tar.xz)
76
+ (cd $out_dir \
77
+ && meson setup build --buildtype=release -Dfreetype=enabled -Dglib=disabled)
78
+ (cd $out_dir /build \
79
+ && meson install)
80
+ if [[ " $MB_ML_LIBC " == " manylinux" ]]; then
81
+ cp /usr/local/lib64/libharfbuzz* /usr/local/lib
82
+ fi
83
+ fi
84
+ }
85
+
63
86
function build {
64
87
if [[ -n " $IS_MACOS " ]] && [[ " $CIBW_ARCHS " == " arm64" ]]; then
65
88
sudo chown -R runner /usr/local
@@ -109,15 +132,7 @@ function build {
109
132
build_freetype
110
133
fi
111
134
112
- if [ -z " $IS_MACOS " ]; then
113
- export FREETYPE_LIBS=-lfreetype
114
- export FREETYPE_CFLAGS=-I/usr/local/include/freetype2/
115
- fi
116
- build_simple harfbuzz $HARFBUZZ_VERSION https://github.com/harfbuzz/harfbuzz/releases/download/$HARFBUZZ_VERSION tar.xz --with-freetype=yes --with-glib=no
117
- if [ -z " $IS_MACOS " ]; then
118
- export FREETYPE_LIBS=" "
119
- export FREETYPE_CFLAGS=" "
120
- fi
135
+ build_harfbuzz
121
136
}
122
137
123
138
# Any stuff that you need to do before you start building the wheels
@@ -140,7 +155,13 @@ if [[ -n "$IS_MACOS" ]]; then
140
155
brew remove --ignore-dependencies webp
141
156
fi
142
157
143
- brew install pkg-config
158
+ brew install meson pkg-config
159
+ elif [[ " $MB_ML_LIBC " == " manylinux" ]]; then
160
+ if [[ " $HARFBUZZ_VERSION " != 8.5.0 ]]; then
161
+ yum install -y meson
162
+ fi
163
+ else
164
+ apk add meson
144
165
fi
145
166
146
167
wrap_wheel_builder build
0 commit comments