Packages

Integrated DNN interpreter for Elixir

Current section

Files

Jump to
nn_interp TflInterp.cmake
Raw

TflInterp.cmake

set(TFLITE_ROOTDIR ${THIRD_PARTY}/tensorflow_src)
set(CMAKE_CXX_STANDARD 17)
# target-dependent preparation
set(NERVES_ARMV6 rpi rpi0)
set(NERVES_ARMV7NEON rpi2 rpi3 rpi3a bbb osd32mp1)
set(NERVES_AARCH64 rpi4)
if("$ENV{MIX_TARGET}" IN_LIST NERVES_ARMV6)
message("Target is ARMv6")
message("...donwload toolchain")
include(toolchain_armv6.cmake)
elseif("$ENV{MIX_TARGET}" IN_LIST NERVES_ARMV7NEON)
message("Target is ARMv7NEON")
message("...donwload toolchain")
include(toolchain_armv7neon.cmake)
elseif("$ENV{MIX_TARGET}" IN_LIST NERVES_AARCH64)
message("AArch64 has not been testes yet!!!\n...donwload toolchain")
include(toolchain_aarch64.cmake)
endif()
install(CODE "set(CMAKE_INSTALL_LOCAL_ONLY ON)")
# check requirements
#find_package(Patch)
#if(NOT Patch_FOUND)
# message(FATAL_ERROR "Patch not found patch command")
#endif()
#Set(FETCHCONTENT_QUIET FALSE)
# add Tensorflow sources
if(NOT EXISTS ${TFLITE_ROOTDIR})
message("** Download Tensorflow lite etc.")
FetchContent_Declare(tflite
GIT_REPOSITORY https://github.com/tensorflow/tensorflow.git
GIT_TAG v2.12.0
GIT_PROGRESS TRUE
SOURCE_DIR ${TFLITE_ROOTDIR}
SOURCE_SUBDIR tensorflow/lite
PATCH_COMMAND git apply ${CMAKE_SOURCE_DIR}/tensorflow_2_12_0_lite.patch
)
else()
FetchContent_Declare(tflite
SOURCE_DIR ${TFLITE_ROOTDIR}
SOURCE_SUBDIR tensorflow/lite
)
endif()
FetchContent_MakeAvailable(tflite)
# apply the patch to TensorFlow file set when target is Windows.
#IF((${CMAKE_HOST_SYSTEM_NAME} MATCHES "Windows") AND (NOT EXISTS ${TFLITE_ROOTDIR}/patched))
# execute_process(
# COMMAND patch --verbos -p1 -i ${CMAKE_SOURCE_DIR}/msc.patch
# WORKING_DIRECTORY ${TFLITE_ROOTDIR}
# )
# file(TOUCH ${TFLITE_ROOTDIR}/patched)
#endif()
set(X_INTERP
src/tflite/tfl_interp.cpp
)
link_libraries(
tensorflow-lite
)