mirror of
https://github.com/termux/termux-packages.git
synced 2024-12-12 14:13:36 +00:00
a28b81821c
Closes #21998 [skip ci]
79 lines
3.0 KiB
Bash
79 lines
3.0 KiB
Bash
TERMUX_PKG_HOMEPAGE=https://www.tensorflow.org/lite
|
|
TERMUX_PKG_DESCRIPTION="TensorFlow Lite Python bindings"
|
|
TERMUX_PKG_LICENSE="Apache-2.0"
|
|
TERMUX_PKG_MAINTAINER="@termux"
|
|
TERMUX_PKG_VERSION="2.18.0"
|
|
TERMUX_PKG_SRCURL=git+https://github.com/tensorflow/tensorflow
|
|
TERMUX_PKG_AUTO_UPDATE=true
|
|
TERMUX_PKG_DEPENDS="python, python-numpy, python-pip"
|
|
TERMUX_PKG_UPDATE_TAG_TYPE="latest-release-tag"
|
|
TERMUX_PKG_PYTHON_COMMON_DEPS="setuptools, wheel, pybind11"
|
|
TERMUX_PKG_HOSTBUILD=true
|
|
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
|
-DTFLITE_HOST_TOOLS_DIR=$TERMUX_PKG_HOSTBUILD_DIR
|
|
"
|
|
|
|
termux_step_host_build() {
|
|
termux_setup_cmake
|
|
|
|
cmake "$TERMUX_PKG_SRCDIR"/tensorflow/lite
|
|
cmake --build . --verbose -j $TERMUX_PKG_MAKE_PROCESSES -t flatbuffers-flatc
|
|
}
|
|
|
|
termux_step_pre_configure() {
|
|
termux_setup_cmake
|
|
termux_setup_ninja
|
|
|
|
# Copied from tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh
|
|
export TENSORFLOW_DIR="$TERMUX_PKG_SRCDIR"
|
|
local TENSORFLOW_LITE_DIR="$TENSORFLOW_DIR/tensorflow/lite"
|
|
local TENSORFLOW_VERSION=$(grep "_VERSION = " "$TENSORFLOW_DIR/tensorflow/tools/pip_package/setup.py" | cut -d= -f2 | sed "s/[ '-]//g")
|
|
export PACKAGE_VERSION="$TENSORFLOW_VERSION"
|
|
export PROJECT_NAME="tflite_runtime"
|
|
TFLITE_BUILD_DIR="$TERMUX_PKG_BUILDDIR/build-wheel"
|
|
local BUILD_DIR="$TFLITE_BUILD_DIR"
|
|
local PYTHON="$(command -v python)"
|
|
local PYBIND11_INCLUDE=$($PYTHON -c "import pybind11; print (pybind11.get_include())")
|
|
CPPFLAGS+=" -I$PYTHON_SITE_PKG/numpy/_core/include"
|
|
CPPFLAGS+=" -I$PYBIND11_INCLUDE"
|
|
CPPFLAGS+=" -I$TERMUX_PREFIX/include/python$TERMUX_PYTHON_VERSION"
|
|
|
|
# Build source tree
|
|
rm -rf "$BUILD_DIR" && mkdir -p "$BUILD_DIR/tflite_runtime"
|
|
cp -r "$TENSORFLOW_LITE_DIR/tools/pip_package/debian" \
|
|
"$TENSORFLOW_LITE_DIR/tools/pip_package/MANIFEST.in" \
|
|
"$TENSORFLOW_LITE_DIR/python/interpreter_wrapper" \
|
|
"$BUILD_DIR"
|
|
cp "$TENSORFLOW_LITE_DIR/tools/pip_package/setup_with_binary.py" "$BUILD_DIR/setup.py"
|
|
cp "$TENSORFLOW_LITE_DIR/python/interpreter.py" \
|
|
"$TENSORFLOW_LITE_DIR/python/metrics/metrics_interface.py" \
|
|
"$TENSORFLOW_LITE_DIR/python/metrics/metrics_portable.py" \
|
|
"$BUILD_DIR/tflite_runtime"
|
|
echo "__version__ = '$PACKAGE_VERSION'" >> "$BUILD_DIR/tflite_runtime/__init__.py"
|
|
echo "__git_version__ = '$(git -C "$TENSORFLOW_DIR" describe)'" >> "$BUILD_DIR/tflite_runtime/__init__.py"
|
|
|
|
TERMUX_PKG_SRCDIR_OLD="$TERMUX_PKG_SRCDIR"
|
|
TERMUX_PKG_SRCDIR="$TERMUX_PKG_SRCDIR/tensorflow/lite"
|
|
}
|
|
|
|
termux_step_post_configure() {
|
|
TERMUX_PKG_SRCDIR="$TERMUX_PKG_SRCDIR_OLD"
|
|
}
|
|
|
|
termux_step_make() {
|
|
# Build python interpreter_wrapper
|
|
cmake --build . -j $TERMUX_PKG_MAKE_PROCESSES -t _pywrap_tensorflow_interpreter_wrapper
|
|
cp "$TERMUX_PKG_BUILDDIR/_pywrap_tensorflow_interpreter_wrapper.so" \
|
|
"$TFLITE_BUILD_DIR/tflite_runtime"
|
|
|
|
# Build python wheel
|
|
cd "$TFLITE_BUILD_DIR"
|
|
python setup.py bdist_wheel
|
|
}
|
|
|
|
termux_step_make_install() {
|
|
local _pyver="${TERMUX_PYTHON_VERSION//./}"
|
|
local _wheel="tflite_runtime-${TERMUX_PKG_VERSION}-cp${_pyver}-cp${_pyver}-linux_${TERMUX_ARCH}.whl"
|
|
pip install --no-deps --prefix="$TERMUX_PREFIX" "$TFLITE_BUILD_DIR/dist/${_wheel}"
|
|
}
|