Imported Upstream version 1.4.0
[platform/core/ml/nnfw.git] / infra / nnfw / cmake / packages / TensorFlowLiteConfig.cmake
1 # NOTE This line prevents multiple definitions of tensorflow-lite target
2 if(TARGET tensorflow-lite)
3   set(TensorFlowLite_FOUND TRUE)
4   return()
5 endif(TARGET tensorflow-lite)
6
7 if(BUILD_TENSORFLOW_LITE)
8   macro(return_unless VAR)
9     if(NOT ${VAR})
10       set(TensorFlowLite_FOUND PARENT_SCOPE)
11       return()
12     endif(NOT ${VAR})
13   endmacro(return_unless)
14
15   # Required packages
16   nnfw_find_package(AbslSource QUIET)
17   return_unless(AbslSource_FOUND)
18   nnfw_find_package(Eigen QUIET)
19   return_unless(Eigen_FOUND)
20   nnfw_find_package(FarmhashSource QUIET)
21   return_unless(FarmhashSource_FOUND)
22   nnfw_find_package(FlatBuffersSource QUIET)
23   return_unless(FlatBuffersSource_FOUND)
24   nnfw_find_package(GEMMLowpSource QUIET)
25   return_unless(GEMMLowpSource_FOUND)
26   nnfw_find_package(TensorFlowSource QUIET)
27   return_unless(TensorFlowSource_FOUND)
28
29   # Optional packages
30   nnfw_find_package(NEON2SSESource QUIET)
31
32   nnas_include(ExternalProjectTools)
33   add_extdirectory("${CMAKE_CURRENT_LIST_DIR}/TensorFlowLite" tflite)
34
35   set(TensorFlowLite_FOUND TRUE)
36   return()
37 endif(BUILD_TENSORFLOW_LITE)
38
39 # Use pre-built TensorFlow Lite
40 find_path(TFLITE_INCLUDE_DIR NAMES  tensorflow/lite/interpreter.h)
41 find_library(TFLITE_LIB NAMES       tensorflow-lite)
42
43 if(NOT TFLITE_INCLUDE_DIR)
44   set(TensorFlowLite_FOUND FALSE)
45   return()
46 endif(NOT TFLITE_INCLUDE_DIR)
47
48 if(NOT TFLITE_LIB)
49   set(TensorFlowLite_FOUND FALSE)
50   return()
51 endif(NOT TFLITE_LIB)
52
53 message(STATUS "Found TensorFlow Lite: TRUE (include: ${TFLITE_INCLUDE_DIR}, lib: ${TFLITE_LIB}")
54
55 # TODO Use IMPORTED target
56 add_library(tensorflow-lite INTERFACE)
57 target_include_directories(tensorflow-lite SYSTEM INTERFACE ${TFLITE_INCLUDE_DIR})
58 target_link_libraries(tensorflow-lite INTERFACE ${TFLITE_LIB})
59
60 # Prefer -pthread to -lpthread
61 set(THREADS_PREFER_PTHREAD_FLAG TRUE)
62 set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
63 find_package(Threads QUIET)
64
65 if(Threads_FOUND)
66   target_link_libraries(tensorflow-lite INTERFACE ${CMAKE_THREAD_LIBS_INIT})
67 endif(Threads_FOUND)
68
69 set(TensorFlowLite_FOUND TRUE)