list(APPEND TFLITE_INCLUDES "${TFLITE_DEPEND_DIR}/farmhash/src")
list(APPEND TFLITE_INCLUDES "${TFLITE_DEPEND_DIR}/flatbuffers/include")
+if("${TARGET_OS}" STREQUAL "android")
+ if(NOT DEFINED NDK_DIR)
+ file(GLOB NDK_DIRS "${CMAKE_SOURCE_DIR}/tools/cross/ndk/*/ndk")
+ list(LENGHT NDK_DIRS_COUNT)
+ if (NDK_DIRS_COUNT EQUAL 1)
+ set(NDK_DIR "${NDK_DIRS}")
+ endif(NDK_DIRS_COUNT EQUAL 1)
+ endif(NOT DEFINED NDK_DIR)
+
+ if(NOT DEFINED NDK_DIR)
+ message(FATAL_ERROR "NDK_DIR should be specified via environment variable")
+ endif()
+ message(STATUS "Found NDK: ${NDK_DIR}")
+ list(APPEND TFLITE_INCLUDES "${NDK_DIR}")
+endif()
+
add_library(tensorflow-lite ${TFLITE_SRCS})
target_include_directories(tensorflow-lite PUBLIC ${TFLITE_INCLUDES})
target_compile_definitions(tensorflow-lite PUBLIC "GEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK")
esac
done
+__ToolchainDir=${TOOLCHAIN_DIR:-"${__CrossDir}/ndk/${__NDKVersion}"}
__RootfsDir=${ROOTFS_DIR:-"${__CrossDir}/rootfs/${__BuildArch}.android"}
-__TempDir=${TEMP_DIR:-"/tmp"}
NDK_DIR=android-ndk-${__NDKVersion}
NDK_ZIP=${NDK_DIR}-linux-x86_64.zip
+if [[ -e $__RootfsDir ]]; then
+ echo "ERROR: $__RootfsDir already exists"
+ exit 255
+fi
+
echo "Downloading Android NDK"
-wget -nv -nc https://dl.google.com/android/repository/$NDK_ZIP -O $__TempDir/$NDK_ZIP
+rm -rf "$__ToolchainDir"
+mkdir -p "$__ToolchainDir"
+wget -nv -nc https://dl.google.com/android/repository/$NDK_ZIP -O $__ToolchainDir/$NDK_ZIP
echo "Unzipping Android NDK"
-unzip -qq -o $__TempDir/$NDK_ZIP -d $__TempDir
+unzip -qq -o $__ToolchainDir/$NDK_ZIP -d $__ToolchainDir
+rm $__ToolchainDir/$NDK_ZIP
+mv $__ToolchainDir/${NDK_DIR} "$__ToolchainDir/ndk"
echo "Generating standalone toolchain and rootfs to $__RootfsDir"
-$__TempDir/$NDK_DIR/build/tools/make-standalone-toolchain.sh --arch=$__BuildArch --platform=android-$__APILevel --install-dir=$__RootfsDir
+$__ToolchainDir/ndk/build/tools/make-standalone-toolchain.sh --arch=$__BuildArch --platform=android-$__APILevel --install-dir=$__RootfsDir
# Install boost
BOOST_VERSION=1_67_0
BOOST_BASENAME=boost_$BOOST_VERSION
-wget -nv -nc https://dl.bintray.com/boostorg/release/1.67.0/source/$BOOST_BASENAME.tar.gz -O $__TempDir/$BOOST_BASENAME.tar.gz
+wget -nv -nc https://dl.bintray.com/boostorg/release/1.67.0/source/$BOOST_BASENAME.tar.gz -O $__ToolchainDir/$BOOST_BASENAME.tar.gz
-tar xzf $__TempDir/$BOOST_BASENAME.tar.gz -C $__TmpDir
-cp -rv $__TempDir/$BOOST_BASENAME/boost $__RootfsDir/sysroot/usr/include
+tar xzf $__ToolchainDir/$BOOST_BASENAME.tar.gz -C $__ToolchainDir
+cp -rv $__ToolchainDir/$BOOST_BASENAME/boost $__RootfsDir/sysroot/usr/include
echo "Installing arm compute library"
ACL_VERSION=18.03
ACL_BASENAME=arm_compute-v$ACL_VERSION-bin-android
-wget -nv -nc https://github.com/ARM-software/ComputeLibrary/releases/download/v$ACL_VERSION/$ACL_BASENAME.tar.gz -O $__TempDir/$ACL_BASENAME.tar.gz
-
-tar xzf $__TempDir/$ACL_BASENAME.tar.gz -C $__TempDir
-cp -rv $__TempDir/$ACL_BASENAME/arm_compute $__RootfsDir/sysroot/usr/include
-cp -rv $__TempDir/$ACL_BASENAME/include/* $__RootfsDir/sysroot/usr/include
-cp -rv $__TempDir/$ACL_BASENAME/support $__RootfsDir/sysroot/usr/include
-cp -rv $__TempDir/$ACL_BASENAME/util $__RootfsDir/sysroot/usr/include
-cp -rv $__TempDir/$ACL_BASENAME/lib/android-arm64-v8a-cl/* $__RootfsDir/sysroot/usr/lib # TODO hardcoded path "arm64-v8a"
+wget -nv -nc https://github.com/ARM-software/ComputeLibrary/releases/download/v$ACL_VERSION/$ACL_BASENAME.tar.gz -O $__ToolchainDir/$ACL_BASENAME.tar.gz
+
+tar xzf $__ToolchainDir/$ACL_BASENAME.tar.gz -C $__ToolchainDir
+cp -rv $__ToolchainDir/$ACL_BASENAME/arm_compute $__RootfsDir/sysroot/usr/include
+cp -rv $__ToolchainDir/$ACL_BASENAME/include/* $__RootfsDir/sysroot/usr/include
+cp -rv $__ToolchainDir/$ACL_BASENAME/support $__RootfsDir/sysroot/usr/include
+cp -rv $__ToolchainDir/$ACL_BASENAME/util $__RootfsDir/sysroot/usr/include
+cp -rv $__ToolchainDir/$ACL_BASENAME/lib/android-arm64-v8a-cl/* $__RootfsDir/sysroot/usr/lib # TODO hardcoded path "arm64-v8a"