Skip to content

Commit ffbc0ee

Browse files
committed
fix cross-compiling FreeType for ARM64 on macOS (Intel)
1 parent fcf28fc commit ffbc0ee

File tree

2 files changed

+28
-31
lines changed

2 files changed

+28
-31
lines changed

apple/compile-cfgs/freetype

+1-4
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,9 @@
1616
#
1717
#
1818
#
19-
# brew install nasm
20-
# If you really want to compile without asm, configure with --disable-asm.
21-
2219
# LIB_DEPENDS_BIN using string because bash can't export array chttps://stackoverflow.com/questions/5564418/exporting-an-array-in-bash-script
2320
# configure: error: Package requirements (openssl) were not met
2421

2522
export LIB_NAME='freetype'
2623
export LIPO_LIBS="libfreetype"
27-
export LIB_DEPENDS_BIN="autoconf automake libtool"
24+
export LIB_DEPENDS_BIN="meson cmake"

apple/do-compile/freetype.sh

+27-27
Original file line numberDiff line numberDiff line change
@@ -28,46 +28,46 @@ env_assert "XC_BUILD_NAME"
2828
env_assert "XC_DEPLOYMENT_TARGET"
2929
env_assert "XCRUN_SDK_PATH"
3030
env_assert "XCRUN_CC"
31-
env_assert "THREAD_COUNT"
3231
echo "XC_OPTS:$XC_OPTS"
3332
echo "===check env end==="
3433

35-
# --silent
36-
CFG_FLAGS="--prefix=$XC_BUILD_PREFIX --enable-static --disable-shared"
37-
CFLAGS="-arch $XC_ARCH $XC_DEPLOYMENT_TARGET $XC_OTHER_CFLAGS"
34+
# prepare build config
35+
CFG_FLAGS="--prefix=$XC_BUILD_PREFIX --default-library static -Dpng=disabled"
3836

39-
# for cross compile
40-
if [[ $(uname -m) != "$XC_ARCH" || "$XC_FORCE_CROSS" ]];then
41-
echo "[*] cross compile, on $(uname -m) compile $XC_PLAT $XC_ARCH."
42-
# https://www.gnu.org/software/automake/manual/html_node/Cross_002dCompilation.html
43-
CFLAGS="$CFLAGS -isysroot $XCRUN_SDK_PATH"
44-
CFG_FLAGS="$CFG_FLAGS --host=$XC_ARCH-apple-darwin --with-sysroot=$XCRUN_SDK_PATH"
37+
if [[ "$BUILD_OPT" == "debug" ]]; then
38+
CFG_FLAGS="$CFG_FLAGS --buildtype=debug"
39+
else
40+
CFG_FLAGS="$CFG_FLAGS --buildtype=release"
4541
fi
4642

4743
cd $XC_BUILD_SOURCE
44+
export CC="$XCRUN_CC"
45+
export CXX="$XCRUN_CXX"
4846

49-
echo
50-
echo "CC: $XCRUN_CC"
51-
echo "CFG_FLAGS: $CFG_FLAGS"
52-
echo "CFLAGS: $CFLAGS"
53-
echo
47+
if [[ $(uname -m) != "$XC_ARCH" || "$XC_FORCE_CROSS" ]]; then
48+
echo "[*] cross compile, on $(uname -m) compile $XC_PLAT $XC_ARCH."
49+
CFG_FLAGS="$CFG_FLAGS --cross-file $THIS_DIR/../compile-cfgs/meson-crossfiles/$XC_ARCH-$XC_PLAT.meson"
50+
fi
5451

5552
echo "----------------------"
56-
echo "[*] configurate $LIB_NAME"
53+
echo "[*] compile $LIB_NAME"
54+
echo "CC: $XCRUN_CC"
55+
echo "CFG_FLAGS: $CFG_FLAGS"
5756
echo "----------------------"
57+
echo
5858

59-
echo "generate configure"
59+
build=./build-$XC_ARCH
60+
if [[ -d $build ]]; then
61+
rm -rf $build
62+
fi
6063

61-
./autogen.sh 1>/dev/null
64+
meson setup $build $CFG_FLAGS
6265

63-
./configure $CFG_FLAGS \
64-
CC="$XCRUN_CC" \
65-
CFLAGS="$CFLAGS" \
66-
LDFLAGS="$CFLAGS" 1>/dev/null
66+
cd $build
6767

68-
#----------------------
69-
echo "----------------------"
70-
echo "[*] compile $LIB_NAME"
71-
echo "----------------------"
68+
echo "compile"
69+
70+
meson compile && meson install
7271

73-
make -j$THREAD_COUNT install 1>/dev/null
72+
# ninja -C build
73+
# ninja -C build install

0 commit comments

Comments
 (0)