103 lines
2.1 KiB
Bash
Executable file
103 lines
2.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# The purpose of this script is the following:
|
|
#
|
|
# 1/ Build the libraries under prebuilts/jni/
|
|
#
|
|
# 2/ Build the project under jni/
|
|
#
|
|
# 3/ Check that the prebuilt shared library was copied to
|
|
# $NDK_OUT/<abi>/objs.
|
|
#
|
|
# 4/ Check that the prebuilt static library was not copied to
|
|
# the same directory.
|
|
#
|
|
|
|
PROGDIR=$(dirname "$0")
|
|
|
|
OUT=$PROGDIR/obj/local
|
|
PREBUILTS_DIR=$PROGDIR/prebuilts
|
|
PREBUILTS_DIR=$(cd "$PREBUILTS_DIR" && pwd)
|
|
|
|
if [ -n "$APP_ABI" ]; then
|
|
ABIS="$APP_ABI"
|
|
else
|
|
ABIS=
|
|
for OPT; do
|
|
case $OPT in
|
|
APP_ABI=*)
|
|
ABIS=${OPT##APP_ABI=}
|
|
APP_ABI=$ABIS
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ -z "$ABIS" ]; then
|
|
ABIS="armeabi armeabi-v7a x86 mips armeabi-v7a-hard"
|
|
fi
|
|
fi
|
|
|
|
# Step 0: Remove obj/ and libs/ to ensure everything is clean
|
|
rm -rf obj/ libs/
|
|
rm -rf $PREBUILTS_DIR/obj/ $PREBUILTS_DIR/libs/
|
|
|
|
# Step 1: Build prebuilt libraries.
|
|
if [ -z "$APP_ABI" ]; then
|
|
$NDK/ndk-build -C "$PREBUILTS_DIR"
|
|
RET=$?
|
|
else
|
|
$NDK/ndk-build -C "$PREBUILTS_DIR" APP_ABI="$APP_ABI"
|
|
RET=$?
|
|
fi
|
|
|
|
if [ $RET != 0 ]; then
|
|
echo "ERROR: Can't build prebuilt libraries!"
|
|
exit 1
|
|
fi
|
|
|
|
# Step 2: Build the project
|
|
if [ -z "$APP_ABI" ]; then
|
|
PREBUILTS_DIR=$PREBUILTS_DIR $NDK/ndk-build -C "$PROGDIR"
|
|
RET=$?
|
|
else
|
|
PREBUILTS_DIR=$PREBUILTS_DIR $NDK/ndk-build -C "$PROGDIR" APP_ABI="$APP_ABI"
|
|
RET=$?
|
|
fi
|
|
|
|
if [ $RET != 0 ]; then
|
|
echo "ERROR: Can't build project!"
|
|
exit 1
|
|
fi
|
|
|
|
# Step 3: Check that the prebuilt shared library was copied to the
|
|
# right location.
|
|
#
|
|
|
|
FAILURES=0
|
|
for ABI in $ABIS; do
|
|
printf "Checking for $ABI shared library: "
|
|
SHARED_LIB=$(ls $OUT/*$ABI/libfoo.so 2>/dev/null)
|
|
if [ $? != 0 ]; then
|
|
printf "KO! missing file: $SHARED_LIB\n"
|
|
FAILURES=$(( $FAILURES + 1 ))
|
|
else
|
|
printf "ok\n"
|
|
fi
|
|
|
|
printf "Checking for $ABI static library: "
|
|
STATIC_LIB=$(ls $OUT/*$ABI/libbar.a 2>/dev/null)
|
|
if [ $? = 0 ]; then
|
|
printf "KO! file should not exist: $STATIC_LIB\n"
|
|
FAILURES=$(( $FAILURES + 1 ))
|
|
else
|
|
printf "ok\n"
|
|
fi
|
|
done
|
|
|
|
if [ "$FAILURES" = 0 ]; then
|
|
echo "Everything's ok. Congratulations!"
|
|
exit 0
|
|
else
|
|
echo "Found $FAILURES failures! Please fix ndk-build!"
|
|
exit 1
|
|
fi
|