Use pre-built TensorFlow Lite (#4779)
author박종현/On-Device Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Mon, 18 Mar 2019 12:30:54 +0000 (21:30 +0900)
committer오형석/On-Device Lab(SR)/Staff Engineer/삼성전자 <hseok82.oh@samsung.com>
Mon, 18 Mar 2019 12:30:54 +0000 (21:30 +0900)
This commit updates TensorFlow Lite CMake package to lookup pre-built
binaries from the system if BUILD_TENSORFLOW_LITE is set as OFF.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
cmake/packages/TensorFlowLiteConfig.cmake

index d5924cd..ea6e79d 100644 (file)
@@ -35,5 +35,34 @@ if(BUILD_TENSORFLOW_LITE)
   return()
 endif(BUILD_TENSORFLOW_LITE)
 
-# TODO Allow users to import pre-built TensorFlow Lite!
-set(TensorFlowLite_FOUND FALSE)
+# Use pre-built TensorFlow Lite
+find_path(TFLITE_INCLUDE_DIR NAMES  tensorflow/contrib/lite/interpreter.h)
+find_library(TFLITE_LIB NAMES       tensorflow-lite)
+
+if(NOT TFLITE_INCLUDE_DIR)
+  set(TensorFlowLite_FOUND FALSE)
+  return()
+endif(NOT TFLITE_INCLUDE_DIR)
+
+if(NOT TFLITE_LIB)
+  set(TensorFlowLite_FOUND FALSE)
+  return()
+endif(NOT TFLITE_LIB)
+
+message(STATUS "Found TensorFlow Lite: TRUE (include: ${TFLITE_INCLUDE_DIR}, lib: ${TFLITE_LIB}")
+
+# TODO Use IMPORTED target
+add_library(tensorflow-lite INTERFACE)
+target_include_directories(tensorflow-lite SYSTEM INTERFACE ${TFLITE_INCLUDE_DIR})
+target_link_libraries(tensorflow-lite INTERFACE ${TFLITE_LIB})
+
+# Prefer -pthread to -lpthread
+set(THREADS_PREFER_PTHREAD_FLAG TRUE)
+set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
+find_package(Threads QUIET)
+
+if(Threads_FOUND)
+  target_link_libraries(tensorflow-lite INTERFACE ${CMAKE_THREAD_LIBS_INIT})
+endif(Threads_FOUND)
+
+set(TensorFlowLite_FOUND TRUE)