forked from VeriSilicon/tflite-vx-delegate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
71 lines (60 loc) · 2.68 KB
/
CMakeLists.txt
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Copyright (c) 2021 Vivante Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
cmake_minimum_required(VERSION 3.16)
if(NOT CMAKE_BUILD_TYPE)
message(STATUS "Setting build type to Release, for debug builds use"
"'-DCMAKE_BUILD_TYPE=Debug'.")
set(CMAKE_BUILD_TYPE "Release")
endif()
project(tflite_vx_delegate)
OPTION(ENABLE_NBG_SUPPORT "enable customized nbg op in tflite" ON)
set(CMAKE_CXX_STANDARD 14)
if(ANDROID_TOOLCHAIN)
# bypass warning as error since tensorflow lite can not pass with android ndk r22b
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -Wno-c++11-narrowing")
endif()
set(CMAKE_MODULE_PATH
"${CMAKE_CURRENT_LIST_DIR}/cmake/modules"
${CMAKE_MODULE_PATH}
)
find_package(tensorflow REQUIRED)
find_package(tim-vx REQUIRED)
list(APPEND VX_DELEGATES_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/delegate_main.cc
${CMAKE_CURRENT_SOURCE_DIR}/op_map.cc
${CMAKE_CURRENT_SOURCE_DIR}/utils.cc
${CMAKE_CURRENT_SOURCE_DIR}/vx_delegate_adaptor.cc
)
add_library(vx_delegate SHARED ${VX_DELEGATES_SRCS})
list(APPEND VX_CUSTOM_OP_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/vsi_npu_custom_op.cc
)
if(ANDROID_TOOLCHAIN)
list(APPEND VX_DELEGATE_DEPENDENCIES log)
endif()
target_link_libraries(vx_delegate ${VX_DELEGATE_DEPENDENCIES})
add_library(vx_custom_op STATIC ${VX_CUSTOM_OP_SRCS})
target_include_directories(vx_custom_op PUBLIC ${PROJECT_SOURCE_DIR})
target_link_libraries(vx_custom_op tensorflow-lite)
add_dependencies(vx_custom_op vx_delegate)
set_target_properties(benchmark_model PROPERTIES INTERFACE_LINK_LIBRARIES vx_custom_op)
set_target_properties(label_image PROPERTIES INTERFACE_LINK_LIBRARIES vx_custom_op)
add_subdirectory(examples/minimal)