forked from python-pillow/Pillow
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into improved_dds
- Loading branch information
Showing
104 changed files
with
1,663 additions
and
895 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
cibuildwheel==2.16.2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,151 @@ | ||
#!/bin/bash | ||
# Define custom utilities | ||
# Test for macOS with [ -n "$IS_MACOS" ] | ||
if [ -z "$IS_MACOS" ]; then | ||
export MB_ML_LIBC=${AUDITWHEEL_POLICY::9} | ||
export MB_ML_VER=${AUDITWHEEL_POLICY:9} | ||
fi | ||
export PLAT=$CIBW_ARCHS | ||
source wheels/multibuild/common_utils.sh | ||
source wheels/multibuild/library_builders.sh | ||
if [ -z "$IS_MACOS" ]; then | ||
source wheels/multibuild/manylinux_utils.sh | ||
fi | ||
|
||
ARCHIVE_SDIR=pillow-depends-main | ||
|
||
# Package versions for fresh source builds | ||
FREETYPE_VERSION=2.13.2 | ||
HARFBUZZ_VERSION=8.3.0 | ||
LIBPNG_VERSION=1.6.40 | ||
JPEGTURBO_VERSION=3.0.1 | ||
OPENJPEG_VERSION=2.5.0 | ||
XZ_VERSION=5.4.5 | ||
TIFF_VERSION=4.6.0 | ||
LCMS2_VERSION=2.15 | ||
if [[ -n "$IS_MACOS" ]]; then | ||
GIFLIB_VERSION=5.1.4 | ||
else | ||
GIFLIB_VERSION=5.2.1 | ||
fi | ||
if [[ -n "$IS_MACOS" ]] || [[ "$MB_ML_VER" != 2014 ]]; then | ||
ZLIB_VERSION=1.3 | ||
else | ||
ZLIB_VERSION=1.2.8 | ||
fi | ||
LIBWEBP_VERSION=1.3.2 | ||
BZIP2_VERSION=1.0.8 | ||
LIBXCB_VERSION=1.16 | ||
BROTLI_VERSION=1.1.0 | ||
|
||
if [[ -n "$IS_MACOS" ]] && [[ "$CIBW_ARCHS" == "x86_64" ]]; then | ||
function build_openjpeg { | ||
local out_dir=$(fetch_unpack https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz openjpeg-2.5.0.tar.gz) | ||
(cd $out_dir \ | ||
&& cmake -DCMAKE_INSTALL_PREFIX=$BUILD_PREFIX -DCMAKE_INSTALL_NAME_DIR=$BUILD_PREFIX/lib . \ | ||
&& make install) | ||
touch openjpeg-stamp | ||
} | ||
fi | ||
|
||
function build_brotli { | ||
local cmake=$(get_modern_cmake) | ||
local out_dir=$(fetch_unpack https://github.com/google/brotli/archive/v$BROTLI_VERSION.tar.gz brotli-1.1.0.tar.gz) | ||
(cd $out_dir \ | ||
&& $cmake -DCMAKE_INSTALL_PREFIX=$BUILD_PREFIX -DCMAKE_INSTALL_NAME_DIR=$BUILD_PREFIX/lib . \ | ||
&& make install) | ||
if [[ "$MB_ML_LIBC" == "manylinux" ]]; then | ||
cp /usr/local/lib64/libbrotli* /usr/local/lib | ||
cp /usr/local/lib64/pkgconfig/libbrotli* /usr/local/lib/pkgconfig | ||
fi | ||
} | ||
|
||
function build { | ||
if [[ -n "$IS_MACOS" ]] && [[ "$CIBW_ARCHS" == "arm64" ]]; then | ||
export BUILD_PREFIX="/usr/local" | ||
fi | ||
build_xz | ||
if [ -z "$IS_ALPINE" ] && [ -z "$IS_MACOS" ]; then | ||
yum remove -y zlib-devel | ||
fi | ||
build_new_zlib | ||
|
||
build_simple xcb-proto 1.16.0 https://xorg.freedesktop.org/archive/individual/proto | ||
if [ -n "$IS_MACOS" ]; then | ||
if [[ "$CIBW_ARCHS" == "arm64" ]]; then | ||
build_simple xorgproto 2023.2 https://www.x.org/pub/individual/proto | ||
build_simple libXau 1.0.11 https://www.x.org/pub/individual/lib | ||
build_simple libpthread-stubs 0.5 https://xcb.freedesktop.org/dist | ||
if [ -f /Library/Frameworks/Python.framework/Versions/Current/share/pkgconfig/xcb-proto.pc ]; then | ||
cp /Library/Frameworks/Python.framework/Versions/Current/share/pkgconfig/xcb-proto.pc /Library/Frameworks/Python.framework/Versions/Current/lib/pkgconfig/xcb-proto.pc | ||
fi | ||
fi | ||
else | ||
sed s/\${pc_sysrootdir\}// /usr/local/share/pkgconfig/xcb-proto.pc > /usr/local/lib/pkgconfig/xcb-proto.pc | ||
fi | ||
build_simple libxcb $LIBXCB_VERSION https://www.x.org/releases/individual/lib | ||
|
||
build_libjpeg_turbo | ||
build_tiff | ||
build_libpng | ||
build_lcms2 | ||
if [[ -n "$IS_MACOS" ]] && [[ "$CIBW_ARCHS" == "arm64" ]]; then | ||
for dylib in libjpeg.dylib libtiff.dylib liblcms2.dylib; do | ||
cp $BUILD_PREFIX/lib/$dylib /opt/arm64-builds/lib | ||
done | ||
fi | ||
build_openjpeg | ||
|
||
ORIGINAL_CFLAGS=$CFLAGS | ||
CFLAGS="$CFLAGS -O3 -DNDEBUG" | ||
if [[ -n "$IS_MACOS" ]]; then | ||
CFLAGS="$CFLAGS -Wl,-headerpad_max_install_names" | ||
fi | ||
build_libwebp | ||
CFLAGS=$ORIGINAL_CFLAGS | ||
|
||
build_brotli | ||
|
||
if [ -n "$IS_MACOS" ]; then | ||
# Custom freetype build | ||
build_simple freetype $FREETYPE_VERSION https://download.savannah.gnu.org/releases/freetype tar.gz --with-harfbuzz=no | ||
else | ||
build_freetype | ||
fi | ||
|
||
if [ -z "$IS_MACOS" ]; then | ||
export FREETYPE_LIBS=-lfreetype | ||
export FREETYPE_CFLAGS=-I/usr/local/include/freetype2/ | ||
fi | ||
build_simple harfbuzz $HARFBUZZ_VERSION https://github.com/harfbuzz/harfbuzz/releases/download/$HARFBUZZ_VERSION tar.xz --with-freetype=yes --with-glib=no | ||
if [ -z "$IS_MACOS" ]; then | ||
export FREETYPE_LIBS="" | ||
export FREETYPE_CFLAGS="" | ||
fi | ||
} | ||
|
||
# Any stuff that you need to do before you start building the wheels | ||
# Runs in the root directory of this repository. | ||
curl -fsSL -o pillow-depends-main.zip https://github.com/python-pillow/pillow-depends/archive/main.zip | ||
untar pillow-depends-main.zip | ||
|
||
if [[ -n "$IS_MACOS" ]]; then | ||
# webp, libtiff, libxcb cause a conflict with building webp, libtiff, libxcb | ||
# libxdmcp causes an issue on macOS < 11 | ||
# if php is installed, brew tries to reinstall these after installing openblas | ||
# remove cairo to fix building harfbuzz on arm64 | ||
# remove lcms2 and libpng to fix building openjpeg on arm64 | ||
# remove zstd to avoid inclusion on x86_64 | ||
# curl from brew requires zstd, use system curl | ||
brew remove --ignore-dependencies webp libpng libtiff libxcb libxdmcp curl php cairo lcms2 ghostscript zstd | ||
|
||
brew install pkg-config | ||
fi | ||
|
||
wrap_wheel_builder build | ||
|
||
# Append licenses | ||
for filename in wheels/dependency_licenses/*; do | ||
echo -e "\n\n----\n\n$(basename $filename | cut -f 1 -d '.')\n" | cat >> LICENSE | ||
cat $filename >> LICENSE | ||
done |
Oops, something went wrong.