From c8f90f5f588edd93f7202217a37e83e3b4ac1fa1 Mon Sep 17 00:00:00 2001 From: github-actions Date: Sat, 30 Nov 2024 14:03:17 +0000 Subject: [PATCH] Fix(iOS): fix freetype build It looks like latest Xcode has removed typedef Byte, causing freetype to fail compilation. Freetype also internally define it only if it's not Apple platform. A hack define is added to make it compile again. --- buildlibs.sh | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/buildlibs.sh b/buildlibs.sh index ea3eeac8..3b9ee684 100755 --- a/buildlibs.sh +++ b/buildlibs.sh @@ -5,7 +5,24 @@ cd freetype-$BUILD_FREETYPE_VERSION echo "Building Freetype" -if [[ "$BUILD_IOS" != "1" ]]; then +if [[ "$BUILD_IOS" == "1" ]]; then + LDFLAGS=-"arch arm64 -isysroot $thesysroot -miphoneos-version-min=12.0" + export CC=$thecc + export CXX=$thecxx + ./configure \ + --host=$TARGET \ + --prefix=${PWD}/build_android-${TARGET_SHORT} \ + --enable-shared=no --enable-static=yes \ + --without-zlib \ + --with-brotli=no \ + --with-png=no \ + --with-harfbuzz=no \ + "CFLAGS=-arch arm64 -pipe -std=c99 -Wno-trigraphs -fpascal-strings -Os -Wreturn-type -Wunused-variable -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=12.0 -I$thesysroot/usr/include/libxml2/ -isysroot $thesysroot -DByte=uint8_t" \ + AR=/usr/bin/ar \ + "LDFLAGS=$LDFLAGS" \ + || error_code=$? +namefreetype=build_android-${TARGET_SHORT}/lib/libfreetype +else export PATH=$TOOLCHAIN/bin:$PATH ./configure \ --host=$TARGET \ @@ -20,6 +37,7 @@ if [[ "$error_code" -ne 0 ]]; then cat config.log exit $error_code fi +fi CFLAGS=-fno-rtti CXXFLAGS=-fno-rtti make -j4 make install @@ -27,4 +45,3 @@ make install if [[ -f "${namefreetype}.a" ]]; then clang -fPIC -shared $LDFLAGS -lbz2 -Wl,-all_load ${namefreetype}.a -o ${namefreetype}.dylib fi -fi