-
Notifications
You must be signed in to change notification settings - Fork 16
/
2_build_toolchain.sh
executable file
·106 lines (85 loc) · 2.72 KB
/
2_build_toolchain.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/bin/bash
if [ "$(uname)" != "Darwin" ]; then
echo "This buildscript requires macOS!"
exit 1
fi
# abort on error
set -e
export WORKSPACE=$PWD
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source $SCRIPT_DIR/../shared/import.sh
# Number of CPU
nproc=$(getconf _NPROCESSORS_ONLN)
test_ccache
if [ ! -f .patches-applied ]; then
echo "Patching libraries"
patches_common
# Fix inih
# Remove when r58 is out
(cd $INIH_DIR
patch -Np1 < $SCRIPT_DIR/inih-std11.patch
)
cp -rp icu icu-native
touch .patches-applied
fi
function set_build_flags() {
# $1: Arch (either x86_64 or arm64)
# $2: host for configure
# $3: additional cpp flags
CLANG="xcrun --sdk macosx clang"
CLANGXX="xcrun --sdk macosx clang++"
ARCH="-arch $1"
SDKPATH=`xcrun -sdk macosx --show-sdk-path`
PLATFORM_PREFIX="$WORKSPACE/$1"
echo "Preparing for $1 arch"
export PATH=$PLATFORM_PREFIX/bin:$PATH
export CC="$CLANG $ARCH"
export CXX="$CLANGXX $ARCH"
if [ "$ENABLE_CCACHE" ]; then
export CC="ccache $CC"
export CXX="ccache $CXX"
fi
export CFLAGS="-g -O2 -mmacosx-version-min=10.9 -isysroot $SDKPATH $3"
export CXXFLAGS=$CFLAGS
# ICU include is required for arm64
export CPPFLAGS="-I$PLATFORM_PREFIX/include -I$WORKSPACE/icu/source/common"
export LDFLAGS="-L$PLATFORM_PREFIX/lib $ARCH -mmacosx-version-min=10.9 -isysroot $SDKPATH"
export MACOSX_DEPLOYMENT_TARGET=10.9
export PKG_CONFIG_PATH=$PLATFORM_PREFIX/lib/pkgconfig
export PKG_CONFIG_LIBDIR=$PKG_CONFIG_PATH
export TARGET_HOST="$2"
}
function build() {
cd "$WORKSPACE"
install_lib_zlib
install_lib $LIBPNG_DIR $LIBPNG_ARGS
install_lib_cmake $FREETYPE_DIR $FREETYPE_ARGS -DFT_DISABLE_HARFBUZZ=ON
install_lib_cmake $HARFBUZZ_DIR $HARFBUZZ_ARGS
install_lib_cmake $FREETYPE_DIR $FREETYPE_ARGS -DFT_DISABLE_HARFBUZZ=OFF
install_lib $PIXMAN_DIR $PIXMAN_ARGS --disable-arm-a64-neon
install_lib_cmake $EXPAT_DIR $EXPAT_ARGS
install_lib $LIBOGG_DIR $LIBOGG_ARGS
install_lib $LIBVORBIS_DIR $LIBVORBIS_ARGS
install_lib_mpg123
install_lib $LIBSNDFILE_DIR $LIBSNDFILE_ARGS
install_lib_cmake $LIBXMP_LITE_DIR $LIBXMP_LITE_ARGS
install_lib $SPEEXDSP_DIR $SPEEXDSP_ARGS
install_lib_cmake $WILDMIDI_DIR $WILDMIDI_ARGS
install_lib $OPUS_DIR $OPUS_ARGS
install_lib $OPUSFILE_DIR $OPUSFILE_ARGS
install_lib_cmake $FLUIDSYNTH_DIR $FLUIDSYNTH_ARGS
install_lib_cmake $NLOHMANNJSON_DIR $NLOHMANNJSON_ARGS
install_lib_meson $INIH_DIR $INIH_ARGS
install_lib $LHASA_DIR $LHASA_ARGS
install_lib_cmake $FMT_DIR $FMT_ARGS
install_lib_icu_cross
icu_force_data_install
install_lib_liblcf
install_lib $SDL2_DIR $SDL2_ARGS --disable-assembly
}
export MAKEFLAGS="-j${nproc:-2}"
install_lib_icu_native
set_build_flags "x86_64" "x86_64-apple-darwin"
build
set_build_flags "arm64" "aarch64-apple-darwin"
build