Build on macOS and Linux wheels, except for manylinux2014

This commit is contained in:
Andrew Murray 2025-11-26 23:50:33 +11:00
parent 6ab48abe6f
commit 9096240a63
2 changed files with 23 additions and 0 deletions

View File

@ -102,6 +102,7 @@ HARFBUZZ_VERSION=12.2.0
LIBPNG_VERSION=1.6.50
JPEGTURBO_VERSION=3.1.2
OPENJPEG_VERSION=2.5.4
JPEGXL_VERSION=0.11.1
XZ_VERSION=5.8.1
ZSTD_VERSION=1.5.7
TIFF_VERSION=4.7.1
@ -173,6 +174,21 @@ function build_brotli {
touch brotli-stamp
}
function build_jpegxl {
if [ -e jpegxl-stamp ]; then return; fi
local out_dir=$(fetch_unpack https://github.com/google/highway/archive/1.3.0.tar.gz)
(cd $out_dir \
&& cmake -DCMAKE_INSTALL_PREFIX=$BUILD_PREFIX -DCMAKE_INSTALL_LIBDIR=$BUILD_PREFIX/lib -DCMAKE_INSTALL_NAME_DIR=$BUILD_PREFIX/lib $HOST_CMAKE_FLAGS . \
&& make install)
local out_dir=$(fetch_unpack https://github.com/libjxl/libjxl/archive/v$JPEGXL_VERSION.tar.gz)
(cd $out_dir \
&& cmake -DCMAKE_INSTALL_PREFIX=$BUILD_PREFIX -DCMAKE_INSTALL_LIBDIR=$BUILD_PREFIX/lib -DCMAKE_INSTALL_NAME_DIR=$BUILD_PREFIX/lib -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_SKCMS=OFF -DBUILD_TESTING=OFF $HOST_CMAKE_FLAGS . \
&& make install)
touch jpegxl-stamp
}
function build_harfbuzz {
if [ -e harfbuzz-stamp ]; then return; fi
python3 -m pip install meson ninja
@ -335,6 +351,10 @@ function build {
# On iOS, there's no vendor-provided raqm, and we can't ship it due to
# licensing, so there's no point building harfbuzz.
build_harfbuzz
if [[ "$MB_ML_VER" != 2014 ]]; then
build_jpegxl
fi
fi
}

View File

@ -1,5 +1,6 @@
from __future__ import annotations
import os
import platform
import sys
@ -25,6 +26,8 @@ def test_wheel_modules() -> None:
elif sys.platform == "ios":
# tkinter is not available on iOS
expected_modules.remove("tkinter")
elif os.environ.get("AUDITWHEEL_POLICY") != "manylinux2014":
expected_modules.add("jpegxl")
assert set(features.get_supported_modules()) == expected_modules