summaryrefslogtreecommitdiff
path: root/externals/CMakeLists.txt
blob: 0d8579e483df6c5b5fafca48646f8d4db985690c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
set(TENSORFLOW_BASE ${CMAKE_CURRENT_SOURCE_DIR}/tensorflow)
set(TENSORFLOW_LITE_BASE ${TENSORFLOW_BASE}/tensorflow/contrib/lite)
set(EXTERNAL_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tensorflow/tensorflow/contrib/lite/downloads")

include(eigen3.cmake)

if(BUILD_IS_NATIVE AND NOT HOST_ARCH_BASE STREQUAL "arm")
  add_subdirectory(${EXTERNAL_SRC_DIR}/flatbuffers)
endif()

#
# Tensorflow Lite library
#
file(GLOB TFLITE_CORE_SRCS "${TENSORFLOW_LITE_BASE}/*.c" "${TENSORFLOW_LITE_BASE}/*.cc")
file(GLOB TFLITE_CORE_TESTS "${TENSORFLOW_LITE_BASE}/*test*.cc")
list(REMOVE_ITEM TFLITE_CORE_SRCS ${TFLITE_CORE_TESTS})

file(GLOB_RECURSE TFLITE_KERNEL_SRCS "${TENSORFLOW_LITE_BASE}/kernels/*.cc")
file(GLOB_RECURSE TFLITE_KERNEL_TESTS "${TENSORFLOW_LITE_BASE}/kernels/*test*.cc")
list(REMOVE_ITEM TFLITE_KERNEL_SRCS ${TFLITE_KERNEL_TESTS})

list(APPEND TFLITE_SRCS ${TFLITE_CORE_SRCS})
list(APPEND TFLITE_SRCS ${TFLITE_KERNEL_SRCS})
list(APPEND TFLITE_SRCS "${EXTERNAL_SRC_DIR}/farmhash/src/farmhash.cc")

list(APPEND TFLITE_INCLUDES "${EXTERNAL_SRC_DIR}/")
list(APPEND TFLITE_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/tensorflow")
list(APPEND TFLITE_INCLUDES "${EXTERNAL_SRC_DIR}/gemmlowp")
list(APPEND TFLITE_INCLUDES "${EXTERNAL_SRC_DIR}/neon_2_sse")
list(APPEND TFLITE_INCLUDES "${EXTERNAL_SRC_DIR}/farmhash/src")
list(APPEND TFLITE_INCLUDES "${EXTERNAL_SRC_DIR}/flatbuffers/include")

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")
target_link_libraries(tensorflow-lite eigen3 ${LIB_PTHREAD} dl)

install(TARGETS tensorflow-lite ARCHIVE DESTINATION lib)

if(BUILD_ACL)
  include(acl.cmake)
endif(BUILD_ACL)