2 nnas_find_package(TensorFlowSource EXACT 2.6.0 QUIET)
3 nnas_find_package(TensorFlowGEMMLowpSource EXACT 2.6.0 QUIET)
4 nnas_find_package(TensorFlowEigenSource EXACT 2.6.0 QUIET)
5 nnas_find_package(TensorFlowRuySource EXACT 2.6.0 QUIET)
7 if (NOT TensorFlowSource_FOUND)
8 message(STATUS "Skipping luci-interpreter: TensorFlow not found")
12 if (NOT TensorFlowGEMMLowpSource_FOUND)
13 message(STATUS "Skipping luci-interpreter: gemmlowp not found")
17 if (NOT TensorFlowEigenSource_FOUND)
18 message(STATUS "Skipping luci-interpreter: Eigen not found")
22 if (NOT TensorFlowRuySource_FOUND)
23 message(STATUS "Skipping luci-interpreter: Ruy not found")
27 find_package(Threads REQUIRED)
29 set(PAL_INITIALIZED TRUE)
32 macro(add_pal_to_target TGT)
33 target_include_directories(${TGT} PRIVATE "${PAL}")
34 target_include_directories(${TGT} SYSTEM PRIVATE
35 "${TensorFlowRuySource_DIR}"
36 "${TensorFlowGEMMLowpSource_DIR}"
37 "${TensorFlowEigenSource_DIR}"
38 "${TensorFlowSource_DIR}")
39 target_include_directories(${TGT} PRIVATE ${LUCI_INTERPRETER_PAL_DIR})
41 # TODO put it back, I changed my mind.
42 # instead add sources with visitors in this library
43 set(PAL_SOURCES ${TensorFlowSource_DIR}/tensorflow/lite/kernels/internal/tensor_utils.cc
44 ${TensorFlowSource_DIR}/tensorflow/lite/kernels/internal/reference/portable_tensor_utils.cc
45 ${TensorFlowSource_DIR}/tensorflow/lite/kernels/internal/quantization_util.cc)
48 # NOTE may need to revise this list for version upgrade
49 set(PAL_SOURCES ${PAL_SOURCES}
50 ${TensorFlowSource_DIR}/tensorflow/lite/kernels/internal/optimized/neon_tensor_utils.cc
51 ${TensorFlowSource_DIR}/tensorflow/lite/kernels/internal/optimized/cpu_check.cc
52 ${TensorFlowRuySource_DIR}/ruy/allocator.cc
53 ${TensorFlowRuySource_DIR}/ruy/block_map.cc
54 ${TensorFlowRuySource_DIR}/ruy/blocking_counter.cc
55 ${TensorFlowRuySource_DIR}/ruy/context_get_ctx.cc
56 ${TensorFlowRuySource_DIR}/ruy/cpuinfo.cc
57 ${TensorFlowRuySource_DIR}/ruy/ctx.cc
58 ${TensorFlowRuySource_DIR}/ruy/denormal.cc
59 ${TensorFlowRuySource_DIR}/ruy/frontend.cc
60 ${TensorFlowRuySource_DIR}/ruy/pack_arm.cc
61 ${TensorFlowRuySource_DIR}/ruy/prepacked_cache.cc
62 ${TensorFlowRuySource_DIR}/ruy/prepare_packed_matrices.cc
63 ${TensorFlowRuySource_DIR}/ruy/system_aligned_alloc.cc
64 ${TensorFlowRuySource_DIR}/ruy/thread_pool.cc
65 ${TensorFlowRuySource_DIR}/ruy/trmul.cc
66 ${TensorFlowRuySource_DIR}/ruy/tune.cc
67 ${TensorFlowRuySource_DIR}/ruy/wait.cc
68 ${TensorFlowRuySource_DIR}/ruy/kernel_arm32.cc
70 endif(BUILD_ARM32_NEON)
72 add_library(luci_interpreter_linux_pal_micro STATIC ${PAL_SOURCES})
73 set_target_properties(luci_interpreter_linux_pal_micro PROPERTIES POSITION_INDEPENDENT_CODE ON)
74 target_include_directories(luci_interpreter_linux_pal_micro SYSTEM PRIVATE
75 "${TensorFlowRuySource_DIR}"
76 "${TensorFlowGEMMLowpSource_DIR}"
77 "${TensorFlowEigenSource_DIR}"
78 "${TensorFlowSource_DIR}"
81 target_link_libraries(${TGT} PRIVATE Threads::Threads luci_interpreter_linux_pal_micro)