Skip to content

Commit

Permalink
Fix(iOS): fix freetype build
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
github-actions committed Nov 30, 2024
1 parent a3d27d7 commit c8f90f5
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions buildlibs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -20,11 +37,11 @@ if [[ "$error_code" -ne 0 ]]; then
cat config.log
exit $error_code
fi
fi

CFLAGS=-fno-rtti CXXFLAGS=-fno-rtti make -j4
make install

if [[ -f "${namefreetype}.a" ]]; then
clang -fPIC -shared $LDFLAGS -lbz2 -Wl,-all_load ${namefreetype}.a -o ${namefreetype}.dylib
fi
fi

0 comments on commit c8f90f5

Please sign in to comment.