From 6dc01670a2718e644b65b01099733b9be089bd86 Mon Sep 17 00:00:00 2001 From: Deve Date: Wed, 28 Jan 2026 23:05:17 +0100 Subject: [PATCH 1/2] Add a build script for harfbuzz --- Start.sh | 2 ++ freetype.sh | 15 +++++++++++++-- harfbuzz.sh | 44 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 2 deletions(-) create mode 100755 harfbuzz.sh diff --git a/Start.sh b/Start.sh index 5576b8e..f12782a 100755 --- a/Start.sh +++ b/Start.sh @@ -49,6 +49,8 @@ if [[ "$OSTYPE" == linux* ]]; then fi ./libjpeg.sh ./libpng.sh +./freetype.sh bootstrap +./harfbuzz.sh ./freetype.sh ./libSDL.sh ./openssl.sh diff --git a/freetype.sh b/freetype.sh index b8d5b8c..0f5cbf4 100755 --- a/freetype.sh +++ b/freetype.sh @@ -11,10 +11,21 @@ if [ ! -d freetype-src ]; then wget -nc https://sourceforge.net/projects/freetype/files/freetype2/$FREETYPE_VERSION/freetype-$FREETYPE_VERSION.tar.xz tar -xaf freetype-$FREETYPE_VERSION.tar.xz mv freetype-$FREETYPE_VERSION freetype-src + mkdir freetype-src/build-bootstrap mkdir freetype-src/build fi -cd freetype-src/build +if [ ! -z "$1" ] && [ "$1" = "bootstrap" ]; then + cd freetype-src/build-bootstrap + HARFBUZZ_FLAGS="-DFT_DISABLE_HARFBUZZ=TRUE" +else + cd freetype-src/build + HARFBUZZ_FLAGS=" \ + -DFT_REQUIRE_HARFBUZZ=TRUE \ + -DFT_DYNAMIC_HARFBUZZ=FALSE \ + -DHarfBuzz_LIBRARY=$ANDR_ROOT/output/harfbuzz/lib/$TARGET_ABI/libharfbuzz.a \ + -DHarfBuzz_INCLUDE_DIR=$ANDR_ROOT/output/harfbuzz/include" +fi cmake .. -DANDROID_STL="c++_static" \ -DANDROID_NATIVE_API_LEVEL="$NATIVE_API_LEVEL" \ @@ -25,10 +36,10 @@ cmake .. -DANDROID_STL="c++_static" \ -DCMAKE_C_FLAGS_RELEASE="$CFLAGS" \ -DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK/build/cmake/android.toolchain.cmake" \ -DFT_DISABLE_BZIP2=TRUE \ - -DFT_DISABLE_HARFBUZZ=TRUE \ -DFT_DISABLE_BROTLI=TRUE \ -DFT_REQUIRE_PNG=TRUE \ -DFT_REQUIRE_ZLIB=TRUE \ + $HARFBUZZ_FLAGS \ -DPNG_LIBRARY="$ANDR_ROOT/output/libpng/lib/$TARGET_ABI/libpng.a" \ -DPNG_PNG_INCLUDE_DIR="$ANDR_ROOT/output/libpng/include" diff --git a/harfbuzz.sh b/harfbuzz.sh new file mode 100755 index 0000000..721d543 --- /dev/null +++ b/harfbuzz.sh @@ -0,0 +1,44 @@ +#!/bin/bash -e + +HARFBUZZ_VERSION=12.3.2 + +. ./sdk.sh + +mkdir -p output/harfbuzz/lib/$TARGET_ABI +mkdir -p deps; cd deps + +if [ ! -d harfbuzz-src ]; then + git clone -b $HARFBUZZ_VERSION --depth 1 https://github.com/harfbuzz/harfbuzz.git harfbuzz-src + mkdir harfbuzz-src/build +fi + +cd harfbuzz-src/build + +cmake .. -DANDROID_STL="c++_static" \ + -DANDROID_NATIVE_API_LEVEL="$NATIVE_API_LEVEL" \ + -DANDROID_ABI="$ANDROID_ABI" \ + -DANDROID_PLATFORM="$API" \ + -DBUILD_SHARED_LIBS=FALSE \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_FLAGS_RELEASE="$CFLAGS" \ + -DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK/build/cmake/android.toolchain.cmake" \ + -DFREETYPE_LIBRARY="$ANDR_ROOT/output/freetype/lib/$TARGET_ABI/libfreetype.a $ANDR_ROOT/output/libpng/lib/$TARGET_ABI/libpng.a" \ + -DFREETYPE_INCLUDE_DIRS="$ANDR_ROOT/output/freetype/include" \ + -DHB_HAVE_GLIB=OFF \ + -DHB_HAVE_GOBJECT=OFF \ + -DHB_HAVE_ICU=OFF \ + -DHB_HAVE_FREETYPE=ON \ + -DHB_BUILD_SUBSET=OFF \ + -DCMAKE_INSTALL_PREFIX="$(pwd)/install" + +cmake --build . -j + +# update headers +rm -rf ../../../output/harfbuzz/include/ +mkdir -p ../../../output/harfbuzz/include/harfbuzz +cp ../src/*.h ../../../output/harfbuzz/include/harfbuzz +# update lib +rm -rf ../../../output/harfbuzz/lib/$TARGET_ABI/libharfbuzz.a +cp libharfbuzz.a ../../../output/harfbuzz/lib/$TARGET_ABI/libharfbuzz.a + +echo "Freetype build successful" From 7d04a707c0627d4c2b88c9e04acbe29b4a2bbfc1 Mon Sep 17 00:00:00 2001 From: "Maksym H." Date: Mon, 9 Feb 2026 23:37:04 +0100 Subject: [PATCH 2/2] Fix include path --- freetype.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/freetype.sh b/freetype.sh index 0f5cbf4..86b40e8 100755 --- a/freetype.sh +++ b/freetype.sh @@ -24,7 +24,7 @@ else -DFT_REQUIRE_HARFBUZZ=TRUE \ -DFT_DYNAMIC_HARFBUZZ=FALSE \ -DHarfBuzz_LIBRARY=$ANDR_ROOT/output/harfbuzz/lib/$TARGET_ABI/libharfbuzz.a \ - -DHarfBuzz_INCLUDE_DIR=$ANDR_ROOT/output/harfbuzz/include" + -DHarfBuzz_INCLUDE_DIR=$ANDR_ROOT/output/harfbuzz/include/harfbuzz" fi cmake .. -DANDROID_STL="c++_static" \