Skip to content

Commit 7c40177

Browse files
committed
Deps: Build Brotli
For woff2 font loading.
1 parent c20f8d1 commit 7c40177

7 files changed

+123
-11
lines changed

scripts/deps/build-dependencies-linux-cross.sh

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ cd deps-build
7575

7676
if [[ "$SKIP_DOWNLOAD" != true && ! -f "libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz" ]]; then
7777
curl -C - -L \
78+
-o "brotli-$BROTLI.tar.gz" "https://github.com/google/brotli/archive/refs/tags/v$BROTLI.tar.gz" \
7879
-o "freetype-$FREETYPE.tar.gz" "https://sourceforge.net/projects/freetype/files/freetype2/$FREETYPE/freetype-$FREETYPE.tar.gz/download" \
7980
-o "harfbuzz-$HARFBUZZ.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/$HARFBUZZ.tar.gz" \
8081
-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
99100
fi
100101

101102
cat > SHASUMS <<EOF
103+
$BROTLI_GZ_HASH brotli-$BROTLI.tar.gz
102104
$FREETYPE_GZ_HASH freetype-$FREETYPE.tar.gz
103105
$HARFBUZZ_GZ_HASH harfbuzz-$HARFBUZZ.tar.gz
104106
$LIBJPEGTURBO_GZ_HASH libjpeg-turbo-$LIBJPEGTURBO.tar.gz
@@ -223,6 +225,15 @@ ninja -C build install
223225
cd ..
224226
rm -fr "zstd-$ZSTD"
225227

228+
echo "Building Brotli..."
229+
rm -fr "brotli-$BROTLI"
230+
tar xf "brotli-$BROTLI.tar.gz"
231+
cd "brotli-$BROTLI"
232+
cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=OFF -DBROTLI_BUILD_TOOLS=OFF -DBROTLI_DISABLE_TESTS=ON -B build -G Ninja
233+
ninja -C build install
234+
cd ..
235+
rm -fr "brotli-$BROTLI"
236+
226237
echo "Building WebP..."
227238
rm -fr "libwebp-$LIBWEBP"
228239
tar xf "libwebp-$LIBWEBP.tar.gz"
@@ -253,7 +264,8 @@ rm -fr "freetype-$FREETYPE"
253264
tar xf "freetype-$FREETYPE.tar.gz"
254265
cd "freetype-$FREETYPE"
255266
patch -p1 < "$SCRIPTDIR/freetype-harfbuzz-soname.patch"
256-
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
267+
patch -p1 < "$SCRIPTDIR/freetype-static-brotli.patch"
268+
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
257269
cmake --build build --parallel
258270
ninja -C build install
259271
cd ..
@@ -285,14 +297,15 @@ rm -fr "SDL3-$SDL3"
285297
# ICU avoids pulling in a bunch of large libraries, and hopefully we can get away without it.
286298
# OpenGL is needed to render window decorations in Wayland, apparently.
287299
# dbus-runtime and linked off to avoid a relocation error (different to host.. probably should change that).
300+
# Brotli is disabled as we static link it, and QtNetwork doesn't link with bbrotlicommon.
288301
echo "Building Qt Base..."
289302
rm -fr "qtbase-everywhere-src-$QT"
290303
tar xf "qtbase-everywhere-src-$QT.tar.xz"
291304
cd "qtbase-everywhere-src-$QT"
292305
patch -p1 < "$SCRIPTDIR/qtbase-fusion-style.patch"
293306
mkdir build
294307
cd build
295-
../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
308+
../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
296309
cmake --build . --parallel
297310
ninja install
298311
cd ../../

scripts/deps/build-dependencies-linux.sh

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ cd deps-build
4444

4545
if [[ "$SKIP_DOWNLOAD" != true && ! -f "libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz" ]]; then
4646
curl -C - -L \
47+
-o "brotli-$BROTLI.tar.gz" "https://github.com/google/brotli/archive/refs/tags/v$BROTLI.tar.gz" \
4748
-o "freetype-$FREETYPE.tar.gz" "https://sourceforge.net/projects/freetype/files/freetype2/$FREETYPE/freetype-$FREETYPE.tar.gz/download" \
4849
-o "harfbuzz-$HARFBUZZ.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/$HARFBUZZ.tar.gz" \
4950
-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
6869
fi
6970

7071
cat > SHASUMS <<EOF
72+
$BROTLI_GZ_HASH brotli-$BROTLI.tar.gz
7173
$FREETYPE_GZ_HASH freetype-$FREETYPE.tar.gz
7274
$HARFBUZZ_GZ_HASH harfbuzz-$HARFBUZZ.tar.gz
7375
$LIBJPEGTURBO_GZ_HASH libjpeg-turbo-$LIBJPEGTURBO.tar.gz
@@ -166,6 +168,15 @@ ninja -C build install
166168
cd ..
167169
rm -fr "zstd-$ZSTD"
168170

171+
echo "Building Brotli..."
172+
rm -fr "brotli-$BROTLI"
173+
tar xf "brotli-$BROTLI.tar.gz"
174+
cd "brotli-$BROTLI"
175+
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
176+
ninja -C build install
177+
cd ..
178+
rm -fr "brotli-$BROTLI"
179+
169180
echo "Building WebP..."
170181
rm -fr "libwebp-$LIBWEBP"
171182
tar xf "libwebp-$LIBWEBP.tar.gz"
@@ -196,7 +207,8 @@ rm -fr "freetype-$FREETYPE"
196207
tar xf "freetype-$FREETYPE.tar.gz"
197208
cd "freetype-$FREETYPE"
198209
patch -p1 < "$SCRIPTDIR/freetype-harfbuzz-soname.patch"
199-
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
210+
patch -p1 < "$SCRIPTDIR/freetype-static-brotli.patch"
211+
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
200212
cmake --build build --parallel
201213
ninja -C build install
202214
cd ..
@@ -227,6 +239,7 @@ rm -fr "SDL3-$SDL3"
227239
# -qt-doubleconversion avoids a dependency on libdouble-conversion.
228240
# ICU avoids pulling in a bunch of large libraries, and hopefully we can get away without it.
229241
# OpenGL is needed to render window decorations in Wayland, apparently.
242+
# Brotli is disabled as we static link it, and QtNetwork doesn't link with bbrotlicommon.
230243
echo "Building Qt Base..."
231244
rm -fr "qtbase-everywhere-src-$QT"
232245
tar xf "qtbase-everywhere-src-$QT.tar.xz"
@@ -235,7 +248,7 @@ patch -p1 < "$SCRIPTDIR/qtbase-disable-pcre2-jit.patch"
235248
patch -p1 < "$SCRIPTDIR/qtbase-fusion-style.patch"
236249
mkdir build
237250
cd build
238-
../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
251+
../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
239252
cmake --build . --parallel
240253
ninja install
241254
cd ../../

scripts/deps/build-dependencies-mac.sh

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ CMAKE_COMMON_QT=(
6464
)
6565

6666
cat > SHASUMS <<EOF
67+
$BROTLI_GZ_HASH brotli-$BROTLI.tar.gz
6768
$FREETYPE_GZ_HASH freetype-$FREETYPE.tar.gz
6869
$HARFBUZZ_GZ_HASH harfbuzz-$HARFBUZZ.tar.gz
6970
$LIBPNG_GZ_HASH libpng-$LIBPNG.tar.gz
@@ -87,6 +88,7 @@ $SOUNDTOUCH_GZ_HASH soundtouch-$SOUNDTOUCH_COMMIT.tar.gz
8788
EOF
8889

8990
curl -L \
91+
-o "brotli-$BROTLI.tar.gz" "https://github.com/google/brotli/archive/refs/tags/v$BROTLI.tar.gz" \
9092
-o "freetype-$FREETYPE.tar.gz" "https://sourceforge.net/projects/freetype/files/freetype2/$FREETYPE/freetype-$FREETYPE.tar.gz/download" \
9193
-o "harfbuzz-$HARFBUZZ.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/$HARFBUZZ.tar.gz" \
9294
-O "https://downloads.sourceforge.net/project/libpng/libpng16/$LIBPNG/libpng-$LIBPNG.tar.gz" \
@@ -146,7 +148,7 @@ make -C build install
146148
cd ..
147149
rm -fr "libjpeg-turbo-$LIBJPEGTURBO"
148150

149-
echo "Installing Zstd..."
151+
echo "Installing Zstandard..."
150152
rm -fr "zstd-$ZSTD"
151153
tar xf "zstd-$ZSTD.tar.gz"
152154
cd "zstd-$ZSTD"
@@ -159,6 +161,16 @@ make -C build-dir install
159161
cd ..
160162
rm -fr "zstd-$ZSTD"
161163

164+
echo "Installing Brotli..."
165+
rm -fr "brotli-$BROTLI"
166+
tar xf "brotli-$BROTLI.tar.gz"
167+
cd "brotli-$BROTLI"
168+
cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DBUILD_SHARED_LIBS=OFF -DBROTLI_BUILD_TOOLS=OFF -DBROTLI_DISABLE_TESTS=ON -B build
169+
cmake --build build --parallel
170+
cmake --install build
171+
cd ..
172+
rm -fr "brotli-$BROTLI"
173+
162174
echo "Installing WebP..."
163175
rm -fr "libwebp-$LIBWEBP"
164176
tar xf "libwebp-$LIBWEBP.tar.gz"
@@ -194,7 +206,8 @@ rm -fr "freetype-$FREETYPE"
194206
tar xf "freetype-$FREETYPE.tar.gz"
195207
cd "freetype-$FREETYPE"
196208
patch -p1 < "$SCRIPTDIR/freetype-harfbuzz-soname.patch"
197-
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
209+
patch -p1 < "$SCRIPTDIR/freetype-static-brotli.patch"
210+
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
198211
cmake --build build --parallel
199212
cmake --install build
200213
cd ..
@@ -283,7 +296,7 @@ patch -p1 < "$SCRIPTDIR/qtbase-window-modal-tahoe.patch"
283296
# We could run macdeployqt twice, but that's even more janky than patching it.
284297
patch -p1 < "$SCRIPTDIR/qtbase-macdeploy-imageformats.patch"
285298

286-
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
299+
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
287300
make -C build "-j$NPROCS"
288301
make -C build install
289302
cd ..

scripts/deps/build-dependencies-windows-arm64.bat

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ for /f "usebackq tokens=1,2 delims==" %%a in ("%SCRIPTDIR%\versions") do (
5353
)
5454
)
5555

56+
call :downloadfile "brotli-%BROTLI%.tar.gz" "https://github.com/google/brotli/archive/refs/tags/v%BROTLI%.tar.gz" "%BROTLI_GZ_HASH%" || goto error
5657
call :downloadfile "freetype-%FREETYPE%.tar.gz" "https://download.savannah.gnu.org/releases/freetype/freetype-%FREETYPE%.tar.gz" "%FREETYPE_GZ_HASH%" || goto error
5758
call :downloadfile "harfbuzz-%HARFBUZZ%.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/%HARFBUZZ%.tar.gz" "%HARFBUZZ_GZ_HASH%" || goto error
5859
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
133134
cd .. || goto error
134135
rmdir /S /Q "zstd-%ZSTD%"
135136

137+
echo Building Brotli...
138+
rmdir /S /Q "brotli-%BROTLI%"
139+
tar -xf "brotli-%BROTLI%.tar.gz" || goto error
140+
cd "brotli-%BROTLI%" || goto error
141+
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
142+
cmake --build build --parallel || goto error
143+
ninja -C build install || goto error
144+
cd .. || goto error
145+
rmdir /S /Q "brotli-%BROTLI%"
146+
136147
echo Building WebP...
137148
rmdir /S /Q "libwebp-%LIBWEBP%"
138149
tar -xf "libwebp-%LIBWEBP%.tar.gz" || goto error
@@ -158,7 +169,8 @@ rmdir /S /Q "freetype-%FREETYPE%"
158169
tar -xf "freetype-%FREETYPE%.tar.gz" || goto error
159170
cd "freetype-%FREETYPE%" || goto error
160171
%PATCH% -p1 < "%SCRIPTDIR%\freetype-harfbuzz-soname.patch" || goto error
161-
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
172+
%PATCH% -p1 < "%SCRIPTDIR%\freetype-static-brotli.patch" || goto error
173+
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
162174
cmake --build build --parallel || goto error
163175
ninja -C build install || goto error
164176
cd .. || goto error
@@ -199,7 +211,7 @@ cd "qtbase-everywhere-src-%QT%" || goto error
199211
rem Stop checkboxes in Fusion theme having such bright outlines.
200212
%PATCH% -p1 < "%SCRIPTDIR%\qtbase-fusion-style.patch" || goto error
201213

202-
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
214+
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
203215
cmake --build build --parallel || goto error
204216
ninja -C build install || goto error
205217
cd .. || goto error

scripts/deps/build-dependencies-windows-x64.bat

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ for /f "usebackq tokens=1,2 delims==" %%a in ("%SCRIPTDIR%\versions") do (
5151
)
5252
)
5353

54+
call :downloadfile "brotli-%BROTLI%.tar.gz" "https://github.com/google/brotli/archive/refs/tags/v%BROTLI%.tar.gz" "%BROTLI_GZ_HASH%" || goto error
5455
call :downloadfile "freetype-%FREETYPE%.tar.gz" "https://download.savannah.gnu.org/releases/freetype/freetype-%FREETYPE%.tar.gz" "%FREETYPE_GZ_HASH%" || goto error
5556
call :downloadfile "harfbuzz-%HARFBUZZ%.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/%HARFBUZZ%.tar.gz" "%HARFBUZZ_GZ_HASH%" || goto error
5657
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
130131
cd .. || goto error
131132
rmdir /S /Q "zstd-%ZSTD%"
132133

134+
echo Building Brotli...
135+
rmdir /S /Q "brotli-%BROTLI%"
136+
tar -xf "brotli-%BROTLI%.tar.gz" || goto error
137+
cd "brotli-%BROTLI%" || goto error
138+
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
139+
cmake --build build --parallel || goto error
140+
ninja -C build install || goto error
141+
cd .. || goto error
142+
rmdir /S /Q "brotli-%BROTLI%"
143+
133144
echo Building WebP...
134145
rmdir /S /Q "libwebp-%LIBWEBP%"
135146
tar -xf "libwebp-%LIBWEBP%.tar.gz" || goto error
@@ -155,7 +166,8 @@ rmdir /S /Q "freetype-%FREETYPE%"
155166
tar -xf "freetype-%FREETYPE%.tar.gz" || goto error
156167
cd "freetype-%FREETYPE%" || goto error
157168
%PATCH% -p1 < "%SCRIPTDIR%\freetype-harfbuzz-soname.patch" || goto error
158-
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
169+
%PATCH% -p1 < "%SCRIPTDIR%\freetype-static-brotli.patch" || goto error
170+
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
159171
cmake --build build --parallel || goto error
160172
ninja -C build install || goto error
161173
cd .. || goto error
@@ -199,7 +211,7 @@ rem Disable the PCRE2 JIT, it doesn't properly verify AVX2 support.
199211
rem Stop checkboxes in Fusion theme having such bright outlines.
200212
%PATCH% -p1 < "%SCRIPTDIR%\qtbase-fusion-style.patch" || goto error
201213

202-
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
214+
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
203215
cmake --build build --parallel || goto error
204216
ninja -C build install || goto error
205217
cd .. || goto error
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
--- freetype-2.14.1/CMakeLists.txt 2025-09-11 04:12:24.000000000 -0700
2+
+++ freetype-2.14.1/CMakeLists.txt 2025-12-25 21:49:45.733862900 -0800
3+
@@ -577,7 +577,7 @@
4+
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "harfbuzz >= ${HARFBUZZ_MIN_VERSION}")
5+
endif ()
6+
if (BROTLIDEC_FOUND)
7+
- target_link_libraries(freetype PRIVATE ${BROTLIDEC_LIBRARIES})
8+
+ target_link_libraries(freetype PRIVATE ${BROTLIDEC_LIBRARIES} ${BROTLICOMMON_LIBRARIES})
9+
target_compile_definitions(freetype PRIVATE ${BROTLIDEC_DEFINITIONS})
10+
target_include_directories(freetype PRIVATE ${BROTLIDEC_INCLUDE_DIRS})
11+
list(APPEND PKGCONFIG_REQUIRES_PRIVATE "libbrotlidec")
12+
--- freetype-2.14.1/builds/cmake/FindBrotliDec.cmake 2025-09-07 19:48:18.000000000 -0700
13+
+++ freetype-2.14.1/builds/cmake/FindBrotliDec.cmake 2025-12-25 21:48:38.433700400 -0800
14+
@@ -21,7 +21,7 @@
15+
16+
find_package(PkgConfig QUIET)
17+
18+
-pkg_check_modules(PC_BROTLIDEC QUIET libbrotlidec)
19+
+pkg_check_modules(PC_BROTLIDEC QUIET libbrotlidec libbrotlicommon)
20+
21+
if (PC_BROTLIDEC_VERSION)
22+
set(BROTLIDEC_VERSION "${PC_BROTLIDEC_VERSION}")
23+
@@ -40,10 +40,22 @@
24+
${PC_BROTLIDEC_LIBRARY_DIRS})
25+
26+
27+
+find_path(BROTLICOMMON_INCLUDE_DIRS
28+
+ NAMES brotli/decode.h
29+
+ HINTS ${PC_BROTLICOMMON_INCLUDEDIR}
30+
+ ${PC_BROTLICOMMON_INCLUDE_DIRS}
31+
+ PATH_SUFFIXES brotli)
32+
+
33+
+find_library(BROTLICOMMON_LIBRARIES
34+
+ NAMES brotlicommon
35+
+ HINTS ${PC_BROTLICOMMON_LIBDIR}
36+
+ ${PC_BROTLICOMMON_LIBRARY_DIRS})
37+
+
38+
+
39+
include(FindPackageHandleStandardArgs)
40+
find_package_handle_standard_args(
41+
BrotliDec
42+
- REQUIRED_VARS BROTLIDEC_INCLUDE_DIRS BROTLIDEC_LIBRARIES
43+
+ REQUIRED_VARS BROTLIDEC_INCLUDE_DIRS BROTLICOMMON_INCLUDE_DIRS BROTLIDEC_LIBRARIES BROTLICOMMON_LIBRARIES
44+
FOUND_VAR BROTLIDEC_FOUND
45+
VERSION_VAR BROTLIDEC_VERSION)
46+

scripts/deps/versions

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
# packages or build recipes without explicit permission from the copyright holder.
66
#
77

8+
BROTLI=1.2.0
9+
BROTLI_GZ_HASH=816c96e8e8f193b40151dad7e8ff37b1221d019dbcb9c35cd3fadbfe6477dfec
10+
811
FREETYPE=2.14.1
912
FREETYPE_GZ_HASH=174d9e53402e1bf9ec7277e22ec199ba3e55a6be2c0740cb18c0ee9850fc8c34
1013

0 commit comments

Comments
 (0)