Skip to content

Commit 48bca80

Browse files
committed
Added harfbuzz and icu-le-hb libraries
1 parent e90c044 commit 48bca80

File tree

3 files changed

+132
-7
lines changed

3 files changed

+132
-7
lines changed

build.sh

Lines changed: 132 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,48 @@ cd $BUILDDIR/$ARCH
102102

103103
} || exit 1
104104

105+
# =========== libharfbuzz ===========
106+
105107
cd $BUILDDIR/$ARCH
106108

107-
# =========== libicuXX.so ===========
109+
[ -e libharfbuzz.a ] || {
110+
rm -rf harfbuzz-1.4.6
111+
tar xvf ../harfbuzz-1.4.6.tar.bz2
112+
cd harfbuzz-1.4.6
113+
114+
cp -f $BUILDDIR/config.sub .
115+
cp -f $BUILDDIR/config.guess .
108116

109-
[ -e libicuuc.so ] || {
117+
env CFLAGS="-I$NDK/sources/android/support/include -frtti -fexceptions -I$BUILDDIR/$ARCH/include" \
118+
LDFLAGS="-frtti -fexceptions -L$BUILDDIR/$ARCH/lib" \
119+
LIBS="-L$BUILDDIR/$ARCH -landroid_support -lgnustl_static -lstdc++" \
120+
$BUILDDIR/setCrossEnvironment-$ARCH.sh \
121+
./configure \
122+
--host=$GCCPREFIX \
123+
--prefix=`pwd`/../ \
124+
--enable-static --disable-shared \
125+
--with-glib=no --with-gobject=no \
126+
--with-cairo=no --with-fontconfig=no \
127+
--with-icu=no --with-freetype=no \
128+
|| exit 1
129+
130+
env PATH=`pwd`:$PATH \
131+
$BUILDDIR/setCrossEnvironment-$ARCH.sh \
132+
make -j$NCPU V=1 || exit 1
133+
134+
env PATH=`pwd`:$PATH \
135+
$BUILDDIR/setCrossEnvironment-$ARCH.sh \
136+
make V=1 install || exit 1
137+
138+
cd ..
139+
cp -f lib/libharfbuzz.a ./
140+
}
141+
142+
# =========== libicuuc ===========
143+
144+
cd $BUILDDIR/$ARCH
145+
146+
[ -e libicuuc.a ] || {
110147

111148
rm -rf icu
112149

@@ -129,17 +166,21 @@ cd $BUILDDIR/$ARCH
129166
sed -i "s%ln -s *%cp -f \$(dir \$@)/%g" config/mh-linux
130167

131168
env CFLAGS="-I$NDK/sources/android/support/include -frtti -fexceptions -include $BUILDDIR/ndk-r15-64-bit-fix.h" \
132-
LDFLAGS="-frtti -fexceptions" \
169+
LDFLAGS="-frtti -fexceptions -L$BUILDDIR/$ARCH/lib" \
133170
LIBS="-L$BUILDDIR/$ARCH -landroid_support -lgnustl_static -lstdc++" \
134171
$BUILDDIR/setCrossEnvironment-$ARCH.sh \
135172
./configure \
136173
--host=$GCCPREFIX \
137174
--prefix=`pwd`/../../ \
138175
--with-cross-build=`pwd`/cross \
139-
--enable-static --enable-shared \
176+
--enable-static --disable-shared \
140177
--with-data-packaging=archive \
141178
|| exit 1
142179

180+
# ICULEHB_CFLAGS="-I$BUILDDIR/$ARCH/include" \
181+
# ICULEHB_LIBS="-licu-le-hb" \
182+
# --enable-layoutex \
183+
143184
sed -i "s@^prefix *= *.*@prefix = .@" icudefs.mk || exit 1
144185

145186
env PATH=`pwd`:$PATH \
@@ -152,15 +193,99 @@ cd $BUILDDIR/$ARCH
152193
$BUILDDIR/setCrossEnvironment-$ARCH.sh \
153194
make V=1 install || exit 1
154195

155-
for f in libicudata libicutest libicui18n libicuio libicule libiculx libicutu libicuuc; do
156-
cp -f -H ../../lib/$f.so ../../
196+
for f in libicudata libicutest libicui18n libicuio libicutu libicuuc; do
197+
#cp -f -H ../../lib/$f.so ../../
157198
cp -f ../../lib/$f.a ../../
199+
#$BUILDDIR/setCrossEnvironment-$ARCH.sh \
200+
# sh -c '$STRIP'" ../../$f.so"
201+
done
202+
203+
} || exit 1
204+
205+
# =========== libicu-le-hb ===========
206+
207+
cd $BUILDDIR/$ARCH
208+
209+
[ -e libicu-le-hb.a ] || {
210+
rm -rf icu-le-hb-1.0.3
211+
tar xvf ../icu-le-hb-1.0.3.tar.gz
212+
cd icu-le-hb-1.0.3
213+
214+
cp -f $BUILDDIR/config.sub .
215+
cp -f $BUILDDIR/config.guess .
216+
217+
env CFLAGS="-I$NDK/sources/android/support/include -frtti -fexceptions" \
218+
CXXFLAGS="-std=c++11" \
219+
LDFLAGS="-frtti -fexceptions" \
220+
LIBS="-L$BUILDDIR/$ARCH -landroid_support -lgnustl_static -lstdc++" \
221+
HARFBUZZ_CFLAGS="-I$BUILDDIR/$ARCH/include/harfbuzz" \
222+
HARFBUZZ_LIBS="-L$BUILDDIR/$ARCH/lib -lharfbuzz" \
223+
ICU_CFLAGS="-I$BUILDDIR/$ARCH/include" \
224+
ICU_LIBS="-L$BUILDDIR/$ARCH/lib" \
158225
$BUILDDIR/setCrossEnvironment-$ARCH.sh \
159-
sh -c '$STRIP'" ../../$f.so"
226+
./configure \
227+
--host=$GCCPREFIX \
228+
--prefix=`pwd`/../ \
229+
--enable-static --disable-shared \
230+
|| exit 1
231+
232+
env PATH=`pwd`:$PATH \
233+
$BUILDDIR/setCrossEnvironment-$ARCH.sh \
234+
make V=1 || exit 1
235+
236+
env PATH=`pwd`:$PATH \
237+
$BUILDDIR/setCrossEnvironment-$ARCH.sh \
238+
make V=1 install || exit 1
239+
240+
cd ..
241+
cp -f lib/libicu-le-hb.a ./
242+
}
243+
244+
# =========== We are building libicu twice, because libiculx depends on libicu-le-hb wcich depends on libicudata ===========
245+
246+
cd $BUILDDIR/$ARCH
247+
248+
[ -e libiculx.a ] || {
249+
250+
cd icu/source
251+
252+
env CFLAGS="-I$NDK/sources/android/support/include -frtti -fexceptions -include $BUILDDIR/ndk-r15-64-bit-fix.h" \
253+
LDFLAGS="-frtti -fexceptions -L$BUILDDIR/$ARCH/lib" \
254+
LIBS="-L$BUILDDIR/$ARCH -landroid_support -lgnustl_static -lstdc++" \
255+
ICULEHB_CFLAGS="-I$BUILDDIR/$ARCH/include/icu-le-hb" \
256+
ICULEHB_LIBS="-licu-le-hb" \
257+
$BUILDDIR/setCrossEnvironment-$ARCH.sh \
258+
./configure \
259+
--host=$GCCPREFIX \
260+
--prefix=`pwd`/../../ \
261+
--with-cross-build=`pwd`/cross \
262+
--enable-static --disable-shared \
263+
--with-data-packaging=archive \
264+
--enable-layoutex \
265+
|| exit 1
266+
267+
sed -i "s@^prefix *= *.*@prefix = .@" icudefs.mk || exit 1
268+
269+
env PATH=`pwd`:$PATH \
270+
$BUILDDIR/setCrossEnvironment-$ARCH.sh \
271+
make -j$NCPU VERBOSE=1 || exit 1
272+
273+
sed -i "s@^prefix *= *.*@prefix = `pwd`/../../@" icudefs.mk || exit 1
274+
275+
env PATH=`pwd`:$PATH \
276+
$BUILDDIR/setCrossEnvironment-$ARCH.sh \
277+
make V=1 install || exit 1
278+
279+
for f in libicudata libicutest libicui18n libicuio libicutu libicuuc libiculx; do
280+
#cp -f -H ../../lib/$f.so ../../
281+
cp -f ../../lib/$f.a ../../ || exit 1
282+
#$BUILDDIR/setCrossEnvironment-$ARCH.sh \
283+
# sh -c '$STRIP'" ../../$f.so"
160284
done
161285

162286
} || exit 1
163287

288+
164289
done # for ARCH in ...
165290

166291
exit 0

harfbuzz-1.4.6.tar.bz2

1.41 MB
Binary file not shown.

icu-le-hb-1.0.3.tar.gz

365 KB
Binary file not shown.

0 commit comments

Comments
 (0)