Skip to content

Commit 3ba4087

Browse files
authored
Add a build script for harfbuzz (#6)
1 parent f7d641b commit 3ba4087

File tree

3 files changed

+59
-2
lines changed

3 files changed

+59
-2
lines changed

Start.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ if [[ "$OSTYPE" == linux* ]]; then
4949
fi
5050
./libjpeg.sh
5151
./libpng.sh
52+
./freetype.sh bootstrap
53+
./harfbuzz.sh
5254
./freetype.sh
5355
./libSDL.sh
5456
./openssl.sh

freetype.sh

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,21 @@ if [ ! -d freetype-src ]; then
1111
wget -nc https://sourceforge.net/projects/freetype/files/freetype2/$FREETYPE_VERSION/freetype-$FREETYPE_VERSION.tar.xz
1212
tar -xaf freetype-$FREETYPE_VERSION.tar.xz
1313
mv freetype-$FREETYPE_VERSION freetype-src
14+
mkdir freetype-src/build-bootstrap
1415
mkdir freetype-src/build
1516
fi
1617

17-
cd freetype-src/build
18+
if [ ! -z "$1" ] && [ "$1" = "bootstrap" ]; then
19+
cd freetype-src/build-bootstrap
20+
HARFBUZZ_FLAGS="-DFT_DISABLE_HARFBUZZ=TRUE"
21+
else
22+
cd freetype-src/build
23+
HARFBUZZ_FLAGS=" \
24+
-DFT_REQUIRE_HARFBUZZ=TRUE \
25+
-DFT_DYNAMIC_HARFBUZZ=FALSE \
26+
-DHarfBuzz_LIBRARY=$ANDR_ROOT/output/harfbuzz/lib/$TARGET_ABI/libharfbuzz.a \
27+
-DHarfBuzz_INCLUDE_DIR=$ANDR_ROOT/output/harfbuzz/include/harfbuzz"
28+
fi
1829

1930
cmake .. -DANDROID_STL="c++_static" \
2031
-DANDROID_NATIVE_API_LEVEL="$NATIVE_API_LEVEL" \
@@ -25,10 +36,10 @@ cmake .. -DANDROID_STL="c++_static" \
2536
-DCMAKE_C_FLAGS_RELEASE="$CFLAGS" \
2637
-DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK/build/cmake/android.toolchain.cmake" \
2738
-DFT_DISABLE_BZIP2=TRUE \
28-
-DFT_DISABLE_HARFBUZZ=TRUE \
2939
-DFT_DISABLE_BROTLI=TRUE \
3040
-DFT_REQUIRE_PNG=TRUE \
3141
-DFT_REQUIRE_ZLIB=TRUE \
42+
$HARFBUZZ_FLAGS \
3243
-DPNG_LIBRARY="$ANDR_ROOT/output/libpng/lib/$TARGET_ABI/libpng.a" \
3344
-DPNG_PNG_INCLUDE_DIR="$ANDR_ROOT/output/libpng/include"
3445

harfbuzz.sh

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#!/bin/bash -e
2+
3+
HARFBUZZ_VERSION=12.3.2
4+
5+
. ./sdk.sh
6+
7+
mkdir -p output/harfbuzz/lib/$TARGET_ABI
8+
mkdir -p deps; cd deps
9+
10+
if [ ! -d harfbuzz-src ]; then
11+
git clone -b $HARFBUZZ_VERSION --depth 1 https://github.com/harfbuzz/harfbuzz.git harfbuzz-src
12+
mkdir harfbuzz-src/build
13+
fi
14+
15+
cd harfbuzz-src/build
16+
17+
cmake .. -DANDROID_STL="c++_static" \
18+
-DANDROID_NATIVE_API_LEVEL="$NATIVE_API_LEVEL" \
19+
-DANDROID_ABI="$ANDROID_ABI" \
20+
-DANDROID_PLATFORM="$API" \
21+
-DBUILD_SHARED_LIBS=FALSE \
22+
-DCMAKE_BUILD_TYPE=Release \
23+
-DCMAKE_C_FLAGS_RELEASE="$CFLAGS" \
24+
-DCMAKE_TOOLCHAIN_FILE="$ANDROID_NDK/build/cmake/android.toolchain.cmake" \
25+
-DFREETYPE_LIBRARY="$ANDR_ROOT/output/freetype/lib/$TARGET_ABI/libfreetype.a $ANDR_ROOT/output/libpng/lib/$TARGET_ABI/libpng.a" \
26+
-DFREETYPE_INCLUDE_DIRS="$ANDR_ROOT/output/freetype/include" \
27+
-DHB_HAVE_GLIB=OFF \
28+
-DHB_HAVE_GOBJECT=OFF \
29+
-DHB_HAVE_ICU=OFF \
30+
-DHB_HAVE_FREETYPE=ON \
31+
-DHB_BUILD_SUBSET=OFF \
32+
-DCMAKE_INSTALL_PREFIX="$(pwd)/install"
33+
34+
cmake --build . -j
35+
36+
# update headers
37+
rm -rf ../../../output/harfbuzz/include/
38+
mkdir -p ../../../output/harfbuzz/include/harfbuzz
39+
cp ../src/*.h ../../../output/harfbuzz/include/harfbuzz
40+
# update lib
41+
rm -rf ../../../output/harfbuzz/lib/$TARGET_ABI/libharfbuzz.a
42+
cp libharfbuzz.a ../../../output/harfbuzz/lib/$TARGET_ABI/libharfbuzz.a
43+
44+
echo "Freetype build successful"

0 commit comments

Comments
 (0)