Deps: Build Brotli

For woff2 font loading.
This commit is contained in:
Stenzek 2025-12-26 15:18:38 +10:00
parent c20f8d1ec4
commit 7c401777a8
No known key found for this signature in database
7 changed files with 123 additions and 11 deletions

View File

@ -75,6 +75,7 @@ cd deps-build
if [[ "$SKIP_DOWNLOAD" != true && ! -f "libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz" ]]; then
curl -C - -L \
-o "brotli-$BROTLI.tar.gz" "https://github.com/google/brotli/archive/refs/tags/v$BROTLI.tar.gz" \
-o "freetype-$FREETYPE.tar.gz" "https://sourceforge.net/projects/freetype/files/freetype2/$FREETYPE/freetype-$FREETYPE.tar.gz/download" \
-o "harfbuzz-$HARFBUZZ.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/$HARFBUZZ.tar.gz" \
-O "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LIBJPEGTURBO/libjpeg-turbo-$LIBJPEGTURBO.tar.gz" \
@ -99,6 +100,7 @@ if [[ "$SKIP_DOWNLOAD" != true && ! -f "libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz
fi
cat > SHASUMS <<EOF
$BROTLI_GZ_HASH brotli-$BROTLI.tar.gz
$FREETYPE_GZ_HASH freetype-$FREETYPE.tar.gz
$HARFBUZZ_GZ_HASH harfbuzz-$HARFBUZZ.tar.gz
$LIBJPEGTURBO_GZ_HASH libjpeg-turbo-$LIBJPEGTURBO.tar.gz
@ -223,6 +225,15 @@ ninja -C build install
cd ..
rm -fr "zstd-$ZSTD"
echo "Building Brotli..."
rm -fr "brotli-$BROTLI"
tar xf "brotli-$BROTLI.tar.gz"
cd "brotli-$BROTLI"
cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=OFF -DBROTLI_BUILD_TOOLS=OFF -DBROTLI_DISABLE_TESTS=ON -B build -G Ninja
ninja -C build install
cd ..
rm -fr "brotli-$BROTLI"
echo "Building WebP..."
rm -fr "libwebp-$LIBWEBP"
tar xf "libwebp-$LIBWEBP.tar.gz"
@ -253,7 +264,8 @@ rm -fr "freetype-$FREETYPE"
tar xf "freetype-$FREETYPE.tar.gz"
cd "freetype-$FREETYPE"
patch -p1 < "$SCRIPTDIR/freetype-harfbuzz-soname.patch"
cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=ON -DFT_REQUIRE_PNG=ON -DFT_DISABLE_BZIP2=TRUE -DFT_DISABLE_BROTLI=TRUE -DFT_DYNAMIC_HARFBUZZ=TRUE -B build -G Ninja
patch -p1 < "$SCRIPTDIR/freetype-static-brotli.patch"
cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=ON -DFT_REQUIRE_PNG=ON -DFT_DISABLE_BZIP2=TRUE -DFT_REQUIRE_BROTLI=TRUE -DFT_DYNAMIC_HARFBUZZ=TRUE -B build -G Ninja
cmake --build build --parallel
ninja -C build install
cd ..
@ -285,6 +297,7 @@ rm -fr "SDL3-$SDL3"
# ICU avoids pulling in a bunch of large libraries, and hopefully we can get away without it.
# OpenGL is needed to render window decorations in Wayland, apparently.
# dbus-runtime and linked off to avoid a relocation error (different to host.. probably should change that).
# Brotli is disabled as we static link it, and QtNetwork doesn't link with bbrotlicommon.
echo "Building Qt Base..."
rm -fr "qtbase-everywhere-src-$QT"
tar xf "qtbase-everywhere-src-$QT.tar.xz"
@ -292,7 +305,7 @@ cd "qtbase-everywhere-src-$QT"
patch -p1 < "$SCRIPTDIR/qtbase-fusion-style.patch"
mkdir build
cd build
../configure -prefix "$INSTALLDIR" -extprefix "$INSTALLDIR" -qt-host-path "$HOSTDIR" -release -dbus runtime -fontconfig -qt-doubleconversion -ssl -openssl-runtime -opengl desktop -qpa xcb,wayland -xkbcommon -xcb -- -DCMAKE_TOOLCHAIN_FILE="$TOOLCHAINFILE" -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF -DFEATURE_cups=OFF -DFEATURE_dbus=ON -DFEATURE_dbus_linked=OFF -DFEATURE_icu=OFF -DFEATURE_sql=OFF -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON -DFEATURE_gtk3=OFF
../configure -prefix "$INSTALLDIR" -extprefix "$INSTALLDIR" -qt-host-path "$HOSTDIR" -release -dbus runtime -fontconfig -qt-doubleconversion -ssl -openssl-runtime -opengl desktop -qpa xcb,wayland -xkbcommon -xcb -- -DCMAKE_TOOLCHAIN_FILE="$TOOLCHAINFILE" -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF -DFEATURE_cups=OFF -DFEATURE_dbus=ON -DFEATURE_dbus_linked=OFF -DFEATURE_icu=OFF -DFEATURE_sql=OFF -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON -DFEATURE_gtk3=OFF -DFEATURE_brotli=OFF
cmake --build . --parallel
ninja install
cd ../../

View File

@ -44,6 +44,7 @@ cd deps-build
if [[ "$SKIP_DOWNLOAD" != true && ! -f "libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz" ]]; then
curl -C - -L \
-o "brotli-$BROTLI.tar.gz" "https://github.com/google/brotli/archive/refs/tags/v$BROTLI.tar.gz" \
-o "freetype-$FREETYPE.tar.gz" "https://sourceforge.net/projects/freetype/files/freetype2/$FREETYPE/freetype-$FREETYPE.tar.gz/download" \
-o "harfbuzz-$HARFBUZZ.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/$HARFBUZZ.tar.gz" \
-O "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LIBJPEGTURBO/libjpeg-turbo-$LIBJPEGTURBO.tar.gz" \
@ -68,6 +69,7 @@ if [[ "$SKIP_DOWNLOAD" != true && ! -f "libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz
fi
cat > SHASUMS <<EOF
$BROTLI_GZ_HASH brotli-$BROTLI.tar.gz
$FREETYPE_GZ_HASH freetype-$FREETYPE.tar.gz
$HARFBUZZ_GZ_HASH harfbuzz-$HARFBUZZ.tar.gz
$LIBJPEGTURBO_GZ_HASH libjpeg-turbo-$LIBJPEGTURBO.tar.gz
@ -166,6 +168,15 @@ ninja -C build install
cd ..
rm -fr "zstd-$ZSTD"
echo "Building Brotli..."
rm -fr "brotli-$BROTLI"
tar xf "brotli-$BROTLI.tar.gz"
cd "brotli-$BROTLI"
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=OFF -DBROTLI_BUILD_TOOLS=OFF -DBROTLI_DISABLE_TESTS=ON -B build -G Ninja
ninja -C build install
cd ..
rm -fr "brotli-$BROTLI"
echo "Building WebP..."
rm -fr "libwebp-$LIBWEBP"
tar xf "libwebp-$LIBWEBP.tar.gz"
@ -196,7 +207,8 @@ rm -fr "freetype-$FREETYPE"
tar xf "freetype-$FREETYPE.tar.gz"
cd "freetype-$FREETYPE"
patch -p1 < "$SCRIPTDIR/freetype-harfbuzz-soname.patch"
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=ON -DFT_REQUIRE_PNG=ON -DFT_DISABLE_BZIP2=TRUE -DFT_DISABLE_BROTLI=TRUE -DFT_DYNAMIC_HARFBUZZ=TRUE -B build -G Ninja
patch -p1 < "$SCRIPTDIR/freetype-static-brotli.patch"
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=ON -DFT_REQUIRE_PNG=ON -DFT_DISABLE_BZIP2=TRUE -DFT_REQUIRE_BROTLI=TRUE -DFT_DYNAMIC_HARFBUZZ=TRUE -B build -G Ninja
cmake --build build --parallel
ninja -C build install
cd ..
@ -227,6 +239,7 @@ rm -fr "SDL3-$SDL3"
# -qt-doubleconversion avoids a dependency on libdouble-conversion.
# ICU avoids pulling in a bunch of large libraries, and hopefully we can get away without it.
# OpenGL is needed to render window decorations in Wayland, apparently.
# Brotli is disabled as we static link it, and QtNetwork doesn't link with bbrotlicommon.
echo "Building Qt Base..."
rm -fr "qtbase-everywhere-src-$QT"
tar xf "qtbase-everywhere-src-$QT.tar.xz"
@ -235,7 +248,7 @@ patch -p1 < "$SCRIPTDIR/qtbase-disable-pcre2-jit.patch"
patch -p1 < "$SCRIPTDIR/qtbase-fusion-style.patch"
mkdir build
cd build
../configure -prefix "$INSTALLDIR" -release -dbus-linked -fontconfig -qt-doubleconversion -ssl -openssl-runtime -opengl desktop -qpa xcb,wayland -xkbcommon -xcb -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF -DFEATURE_cups=OFF -DFEATURE_dbus=ON -DFEATURE_icu=OFF -DFEATURE_sql=OFF -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON -DFEATURE_gtk3=OFF
../configure -prefix "$INSTALLDIR" -release -dbus-linked -fontconfig -qt-doubleconversion -ssl -openssl-runtime -opengl desktop -qpa xcb,wayland -xkbcommon -xcb -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF -DFEATURE_cups=OFF -DFEATURE_dbus=ON -DFEATURE_icu=OFF -DFEATURE_sql=OFF -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON -DFEATURE_gtk3=OFF -DFEATURE_brotli=OFF
cmake --build . --parallel
ninja install
cd ../../

View File

@ -64,6 +64,7 @@ CMAKE_COMMON_QT=(
)
cat > SHASUMS <<EOF
$BROTLI_GZ_HASH brotli-$BROTLI.tar.gz
$FREETYPE_GZ_HASH freetype-$FREETYPE.tar.gz
$HARFBUZZ_GZ_HASH harfbuzz-$HARFBUZZ.tar.gz
$LIBPNG_GZ_HASH libpng-$LIBPNG.tar.gz
@ -87,6 +88,7 @@ $SOUNDTOUCH_GZ_HASH soundtouch-$SOUNDTOUCH_COMMIT.tar.gz
EOF
curl -L \
-o "brotli-$BROTLI.tar.gz" "https://github.com/google/brotli/archive/refs/tags/v$BROTLI.tar.gz" \
-o "freetype-$FREETYPE.tar.gz" "https://sourceforge.net/projects/freetype/files/freetype2/$FREETYPE/freetype-$FREETYPE.tar.gz/download" \
-o "harfbuzz-$HARFBUZZ.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/$HARFBUZZ.tar.gz" \
-O "https://downloads.sourceforge.net/project/libpng/libpng16/$LIBPNG/libpng-$LIBPNG.tar.gz" \
@ -146,7 +148,7 @@ make -C build install
cd ..
rm -fr "libjpeg-turbo-$LIBJPEGTURBO"
echo "Installing Zstd..."
echo "Installing Zstandard..."
rm -fr "zstd-$ZSTD"
tar xf "zstd-$ZSTD.tar.gz"
cd "zstd-$ZSTD"
@ -159,6 +161,16 @@ make -C build-dir install
cd ..
rm -fr "zstd-$ZSTD"
echo "Installing Brotli..."
rm -fr "brotli-$BROTLI"
tar xf "brotli-$BROTLI.tar.gz"
cd "brotli-$BROTLI"
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DBUILD_SHARED_LIBS=OFF -DBROTLI_BUILD_TOOLS=OFF -DBROTLI_DISABLE_TESTS=ON -B build
cmake --build build --parallel
cmake --install build
cd ..
rm -fr "brotli-$BROTLI"
echo "Installing WebP..."
rm -fr "libwebp-$LIBWEBP"
tar xf "libwebp-$LIBWEBP.tar.gz"
@ -194,7 +206,8 @@ rm -fr "freetype-$FREETYPE"
tar xf "freetype-$FREETYPE.tar.gz"
cd "freetype-$FREETYPE"
patch -p1 < "$SCRIPTDIR/freetype-harfbuzz-soname.patch"
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=ON -DFT_REQUIRE_PNG=ON -DFT_DISABLE_BZIP2=TRUE -DFT_DISABLE_BROTLI=TRUE -DFT_DYNAMIC_HARFBUZZ=TRUE -B build
patch -p1 < "$SCRIPTDIR/freetype-static-brotli.patch"
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=ON -DFT_REQUIRE_PNG=ON -DFT_DISABLE_BZIP2=TRUE -DFT_REQUIRE_BROTLI=TRUE -DFT_DYNAMIC_HARFBUZZ=TRUE -B build
cmake --build build --parallel
cmake --install build
cd ..
@ -283,7 +296,7 @@ patch -p1 < "$SCRIPTDIR/qtbase-window-modal-tahoe.patch"
# We could run macdeployqt twice, but that's even more janky than patching it.
patch -p1 < "$SCRIPTDIR/qtbase-macdeploy-imageformats.patch"
cmake -B build "${CMAKE_COMMON[@]}" "${CMAKE_COMMON_QT[@]}" -DFEATURE_dbus=OFF -DFEATURE_framework=OFF -DFEATURE_icu=OFF -DFEATURE_opengl=OFF -DFEATURE_sql=OFF -DFEATURE_gssapi=OFF -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON
cmake -B build "${CMAKE_COMMON[@]}" "${CMAKE_COMMON_QT[@]}" -DFEATURE_dbus=OFF -DFEATURE_framework=OFF -DFEATURE_icu=OFF -DFEATURE_opengl=OFF -DFEATURE_sql=OFF -DFEATURE_gssapi=OFF -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON -DFEATURE_brotli=OFF
make -C build "-j$NPROCS"
make -C build install
cd ..

View File

@ -53,6 +53,7 @@ for /f "usebackq tokens=1,2 delims==" %%a in ("%SCRIPTDIR%\versions") do (
)
)
call :downloadfile "brotli-%BROTLI%.tar.gz" "https://github.com/google/brotli/archive/refs/tags/v%BROTLI%.tar.gz" "%BROTLI_GZ_HASH%" || goto error
call :downloadfile "freetype-%FREETYPE%.tar.gz" "https://download.savannah.gnu.org/releases/freetype/freetype-%FREETYPE%.tar.gz" "%FREETYPE_GZ_HASH%" || goto error
call :downloadfile "harfbuzz-%HARFBUZZ%.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/%HARFBUZZ%.tar.gz" "%HARFBUZZ_GZ_HASH%" || goto error
call :downloadfile "libpng-%LIBPNG%.tar.gz" "https://download.sourceforge.net/libpng/libpng-%LIBPNG%.tar.gz" "%LIBPNG_GZ_HASH%" || goto error
@ -133,6 +134,16 @@ ninja -C build install || goto error
cd .. || goto error
rmdir /S /Q "zstd-%ZSTD%"
echo Building Brotli...
rmdir /S /Q "brotli-%BROTLI%"
tar -xf "brotli-%BROTLI%.tar.gz" || goto error
cd "brotli-%BROTLI%" || goto error
cmake -B build %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=OFF -DBROTLI_BUILD_TOOLS=OFF -DBROTLI_DISABLE_TESTS=ON -G Ninja || goto error
cmake --build build --parallel || goto error
ninja -C build install || goto error
cd .. || goto error
rmdir /S /Q "brotli-%BROTLI%"
echo Building WebP...
rmdir /S /Q "libwebp-%LIBWEBP%"
tar -xf "libwebp-%LIBWEBP%.tar.gz" || goto error
@ -158,7 +169,8 @@ rmdir /S /Q "freetype-%FREETYPE%"
tar -xf "freetype-%FREETYPE%.tar.gz" || goto error
cd "freetype-%FREETYPE%" || goto error
%PATCH% -p1 < "%SCRIPTDIR%\freetype-harfbuzz-soname.patch" || goto error
cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=TRUE -DFT_REQUIRE_PNG=TRUE -DFT_DISABLE_BZIP2=TRUE -DFT_DISABLE_BROTLI=TRUE -DFT_DYNAMIC_HARFBUZZ=TRUE -B build -G Ninja || goto error
%PATCH% -p1 < "%SCRIPTDIR%\freetype-static-brotli.patch" || goto error
cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=TRUE -DFT_REQUIRE_PNG=TRUE -DFT_DISABLE_BZIP2=TRUE -DFT_REQUIRE_BROTLI=TRUE -DFT_DYNAMIC_HARFBUZZ=TRUE -B build -G Ninja || goto error
cmake --build build --parallel || goto error
ninja -C build install || goto error
cd .. || goto error
@ -199,7 +211,7 @@ cd "qtbase-everywhere-src-%QT%" || goto error
rem Stop checkboxes in Fusion theme having such bright outlines.
%PATCH% -p1 < "%SCRIPTDIR%\qtbase-fusion-style.patch" || goto error
cmake -B build %ARM64TOOLCHAIN% -DFEATURE_sql=OFF -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DQT_HOST_PATH="%X64INSTALLDIR%" %FORCEPDB% -DQT_GENERATE_SBOM=OFF -DINPUT_ssl=yes -DINPUT_openssl=no -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON %QTBUILDSPEC% || goto error
cmake -B build %ARM64TOOLCHAIN% -DFEATURE_sql=OFF -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DQT_HOST_PATH="%X64INSTALLDIR%" %FORCEPDB% -DQT_GENERATE_SBOM=OFF -DINPUT_ssl=yes -DINPUT_openssl=no -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON -DFEATURE_brotli=OFF %QTBUILDSPEC% || goto error
cmake --build build --parallel || goto error
ninja -C build install || goto error
cd .. || goto error

View File

@ -51,6 +51,7 @@ for /f "usebackq tokens=1,2 delims==" %%a in ("%SCRIPTDIR%\versions") do (
)
)
call :downloadfile "brotli-%BROTLI%.tar.gz" "https://github.com/google/brotli/archive/refs/tags/v%BROTLI%.tar.gz" "%BROTLI_GZ_HASH%" || goto error
call :downloadfile "freetype-%FREETYPE%.tar.gz" "https://download.savannah.gnu.org/releases/freetype/freetype-%FREETYPE%.tar.gz" "%FREETYPE_GZ_HASH%" || goto error
call :downloadfile "harfbuzz-%HARFBUZZ%.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/%HARFBUZZ%.tar.gz" "%HARFBUZZ_GZ_HASH%" || goto error
call :downloadfile "libpng-%LIBPNG%.tar.gz" "https://download.sourceforge.net/libpng/libpng-%LIBPNG%.tar.gz" "%LIBPNG_GZ_HASH%" || goto error
@ -130,6 +131,16 @@ ninja -C build install || goto error
cd .. || goto error
rmdir /S /Q "zstd-%ZSTD%"
echo Building Brotli...
rmdir /S /Q "brotli-%BROTLI%"
tar -xf "brotli-%BROTLI%.tar.gz" || goto error
cd "brotli-%BROTLI%" || goto error
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=OFF -DBROTLI_BUILD_TOOLS=OFF -DBROTLI_DISABLE_TESTS=ON -G Ninja || goto error
cmake --build build --parallel || goto error
ninja -C build install || goto error
cd .. || goto error
rmdir /S /Q "brotli-%BROTLI%"
echo Building WebP...
rmdir /S /Q "libwebp-%LIBWEBP%"
tar -xf "libwebp-%LIBWEBP%.tar.gz" || goto error
@ -155,7 +166,8 @@ rmdir /S /Q "freetype-%FREETYPE%"
tar -xf "freetype-%FREETYPE%.tar.gz" || goto error
cd "freetype-%FREETYPE%" || goto error
%PATCH% -p1 < "%SCRIPTDIR%\freetype-harfbuzz-soname.patch" || goto error
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=TRUE -DFT_REQUIRE_PNG=TRUE -DFT_DISABLE_BZIP2=TRUE -DFT_DISABLE_BROTLI=TRUE -DFT_DYNAMIC_HARFBUZZ=TRUE -B build -G Ninja || goto error
%PATCH% -p1 < "%SCRIPTDIR%\freetype-static-brotli.patch" || goto error
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=TRUE -DFT_REQUIRE_PNG=TRUE -DFT_DISABLE_BZIP2=TRUE -DFT_REQUIRE_BROTLI=TRUE -DFT_DYNAMIC_HARFBUZZ=TRUE -B build -G Ninja || goto error
cmake --build build --parallel || goto error
ninja -C build install || goto error
cd .. || goto error
@ -199,7 +211,7 @@ rem Disable the PCRE2 JIT, it doesn't properly verify AVX2 support.
rem Stop checkboxes in Fusion theme having such bright outlines.
%PATCH% -p1 < "%SCRIPTDIR%\qtbase-fusion-style.patch" || goto error
cmake -B build -DFEATURE_sql=OFF -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" %FORCEPDB% -DQT_GENERATE_SBOM=OFF -DINPUT_ssl=yes -DINPUT_openssl=no -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON %QTBUILDSPEC% || goto error
cmake -B build -DFEATURE_sql=OFF -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" %FORCEPDB% -DQT_GENERATE_SBOM=OFF -DINPUT_ssl=yes -DINPUT_openssl=no -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON -DFEATURE_brotli=OFF %QTBUILDSPEC% || goto error
cmake --build build --parallel || goto error
ninja -C build install || goto error
cd .. || goto error

View File

@ -0,0 +1,46 @@
--- freetype-2.14.1/CMakeLists.txt 2025-09-11 04:12:24.000000000 -0700
+++ freetype-2.14.1/CMakeLists.txt 2025-12-25 21:49:45.733862900 -0800
@@ -577,7 +577,7 @@
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "harfbuzz >= ${HARFBUZZ_MIN_VERSION}")
endif ()
if (BROTLIDEC_FOUND)
- target_link_libraries(freetype PRIVATE ${BROTLIDEC_LIBRARIES})
+ target_link_libraries(freetype PRIVATE ${BROTLIDEC_LIBRARIES} ${BROTLICOMMON_LIBRARIES})
target_compile_definitions(freetype PRIVATE ${BROTLIDEC_DEFINITIONS})
target_include_directories(freetype PRIVATE ${BROTLIDEC_INCLUDE_DIRS})
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "libbrotlidec")
--- freetype-2.14.1/builds/cmake/FindBrotliDec.cmake 2025-09-07 19:48:18.000000000 -0700
+++ freetype-2.14.1/builds/cmake/FindBrotliDec.cmake 2025-12-25 21:48:38.433700400 -0800
@@ -21,7 +21,7 @@
find_package(PkgConfig QUIET)
-pkg_check_modules(PC_BROTLIDEC QUIET libbrotlidec)
+pkg_check_modules(PC_BROTLIDEC QUIET libbrotlidec libbrotlicommon)
if (PC_BROTLIDEC_VERSION)
set(BROTLIDEC_VERSION "${PC_BROTLIDEC_VERSION}")
@@ -40,10 +40,22 @@
${PC_BROTLIDEC_LIBRARY_DIRS})
+find_path(BROTLICOMMON_INCLUDE_DIRS
+ NAMES brotli/decode.h
+ HINTS ${PC_BROTLICOMMON_INCLUDEDIR}
+ ${PC_BROTLICOMMON_INCLUDE_DIRS}
+ PATH_SUFFIXES brotli)
+
+find_library(BROTLICOMMON_LIBRARIES
+ NAMES brotlicommon
+ HINTS ${PC_BROTLICOMMON_LIBDIR}
+ ${PC_BROTLICOMMON_LIBRARY_DIRS})
+
+
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
BrotliDec
- REQUIRED_VARS BROTLIDEC_INCLUDE_DIRS BROTLIDEC_LIBRARIES
+ REQUIRED_VARS BROTLIDEC_INCLUDE_DIRS BROTLICOMMON_INCLUDE_DIRS BROTLIDEC_LIBRARIES BROTLICOMMON_LIBRARIES
FOUND_VAR BROTLIDEC_FOUND
VERSION_VAR BROTLIDEC_VERSION)

View File

@ -5,6 +5,9 @@
# packages or build recipes without explicit permission from the copyright holder.
#
BROTLI=1.2.0
BROTLI_GZ_HASH=816c96e8e8f193b40151dad7e8ff37b1221d019dbcb9c35cd3fadbfe6477dfec
FREETYPE=2.14.1
FREETYPE_GZ_HASH=174d9e53402e1bf9ec7277e22ec199ba3e55a6be2c0740cb18c0ee9850fc8c34