Specify architectures in TFLite build_ios_universal_lib.sh

PiperOrigin-RevId: 224392376
This commit is contained in:
Yu-Cheng Ling 2018-12-06 13:04:58 -08:00 committed by TensorFlower Gardener
parent 844dbd8730
commit a6e4af0a5a

View File

@ -19,31 +19,36 @@ set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR/../../../.."
profiling_args=
usage() {
echo "Usage: $(basename "$0") [-a]"
echo "-a [build_arch] build for specified arch comma separate for multiple archs (eg: x86_64 arm64)"
echo " default is [x86_64 armv7 armv7s arm64]"
echo "-p enable profiling"
exit 1
}
while getopts "p" opt; do
case $opt in
profiling_args=""
BUILD_ARCHS="x86_64 armv7 armv7s arm64"
while getopts "a:p" opt_name; do
case "$opt_name" in
a) BUILD_ARCHS="${OPTARG}";;
p) profiling_args='-DGEMMLOWP_PROFILING,-DTFLITE_PROFILING_ENABLED';;
*) printf "if you want to enable profiling: pass in [-p]\n"
exit 2;;
*) usage;;
esac
done
shift $(($OPTIND - 1))
# Build library for supported architectures and packs them in a fat binary.
make_library() {
for arch in x86_64 armv7 armv7s arm64
LIBS=""
for arch in $BUILD_ARCHS
do
make -f tensorflow/lite/tools/make/Makefile TARGET=ios TARGET_ARCH=${arch} EXTRA_CXXFLAGS=$profiling_args \
-j 8
make -f tensorflow/lite/tools/make/Makefile TARGET=ios TARGET_ARCH=${arch} \
EXTRA_CXXFLAGS=$profiling_args -j 8
LIBS="${LIBS} tensorflow/lite/tools/make/gen/ios_${arch}/lib/${1}"
done
mkdir -p tensorflow/lite/tools/make/gen/lib
lipo \
tensorflow/lite/tools/make/gen/ios_x86_64/lib/${1} \
tensorflow/lite/tools/make/gen/ios_armv7/lib/${1} \
tensorflow/lite/tools/make/gen/ios_armv7s/lib/${1} \
tensorflow/lite/tools/make/gen/ios_arm64/lib/${1} \
-create \
lipo $LIBS -create \
-output tensorflow/lite/tools/make/gen/lib/${1}
}