summaryrefslogtreecommitdiff
path: root/libs/kernel/acl/CMakeLists.txt
blob: 8f0486e56e17d33b576bb7cf69412f7596100eea (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
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
set(LIB_KERNELACL kernelacl)
set(LIB_KERNELACL_TEST kernelacl_test)

# TODO remove this when default goes to c++14
if(CMAKE_VERSION VERSION_LESS 3.1.0)
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
else(CMAKE_VERSION VERSION_LESS 3.1.0)
  set(CMAKE_CXX_STANDARD 14)
endif(CMAKE_VERSION VERSION_LESS 3.1.0)

# runtime information
set(PATH_RUNTIME_NN ${CMAKE_SOURCE_DIR}/runtimes/nn)
SET(RUNTIME_INCLUDES ${PATH_RUNTIME_NN}/common/include
                     ${PATH_RUNTIME_NN}/runtime/include
                     ${PATH_RUNTIME_NN}/depend/hal/include
                     ${PATH_RUNTIME_NN}/depend/libhidl/base/include
                     ${PATH_RUNTIME_NN}/depend/libcutils/include
                     ${PATH_RUNTIME_NN}/depend/libutils/include
                     ${PATH_RUNTIME_NN}/depend/android-base/include
                     )

# common
link_directories(${CMAKE_INSTALL_PREFIX}/lib)

# kernel library
set(KERNELACL_SRCS "src/Init_acl.cpp"
                   "src/IO_accessor.cpp"
                   "src/shape.cpp"
                   "src/support.cpp"
                   "src/cl/Conv2D.cpp"
                   "src/cl/DepthwiseConv2D.cpp"
                   "src/cl/FullyConnected.cpp"
                   "src/cl/Pooling.cpp"
                   "src/cl/Reshape.cpp"
                   "src/cl/Softmax.cpp"
                   "src/cl/Concatenation.cpp"
                   "src/neon/Conv2D.cpp"
                   "src/neon/DepthwiseConv2D.cpp"
                   "src/neon/FullyConnected.cpp"
                   "src/neon/Pooling.cpp"
                   "src/neon/Softmax.cpp"
                   "src/neon/Reshape.cpp"
                   "src/neon/Concatenation.cpp"
                   )

add_library(${LIB_KERNELACL} SHARED ${KERNELACL_SRCS})
target_include_directories(${LIB_KERNELACL} PUBLIC
                           ${NNFW_INCLUDE_DIR}
                           ${RUNTIME_INCLUDES}
                           ${NNFW_ACL_INCLUDES}
                           ${CMAKE_SOURCE_DIR}/include
                           )
target_link_libraries(${LIB_KERNELACL} nnfw_support_nnapi)
if (${TARGET_OS} STREQUAL "tizen")
  target_link_libraries(${LIB_KERNELACL} nnfw_util ${NNFW_ACL_LIBS} OpenCL)
else()
  target_link_libraries(${LIB_KERNELACL} nnfw_util ${NNFW_ACL_LIBS})
endif()
install(TARGETS ${LIB_KERNELACL} DESTINATION lib)

# kernel test executable
set(KERNELACL_TEST_SRCS "src/util.cpp"
                        "src/gtest_env.cpp"
                        "src/cl/Conv2D.test.cpp"
                        "src/cl/DepthwiseConv2D.test.cpp"
                        "src/cl/FullyConnected.test.cpp"
                        "src/cl/Pooling.test.cpp"
                        "src/cl/Reshape.test.cpp"
                        "src/cl/Softmax.test.cpp"
                        "src/cl/Concatenation.test.cpp"
                        "src/neon/Conv2D.test.cpp"
                        "src/neon/DepthwiseConv2D.test.cpp"
                        "src/neon/FullyConnected.test.cpp"
                        "src/neon/Pooling.test.cpp"
                        "src/neon/Softmax.test.cpp"
                        "src/neon/Reshape.test.cpp"
                        "src/neon/Concatenation.test.cpp"
                        )

add_executable(${LIB_KERNELACL_TEST} ${KERNELACL_TEST_SRCS})
target_include_directories(${LIB_KERNELACL_TEST} PUBLIC
                           ${NNFW_INCLUDE_DIR}
                           ${RUNTIME_INCLUDES}
                           ${NNFW_ACL_INCLUDES}
                           )
if (NOT ${TARGET_OS} STREQUAL "tizen")
  add_dependencies(${LIB_KERNELACL_TEST} googletest)
endif()
target_link_libraries(${LIB_KERNELACL_TEST}
                      ${LIB_KERNELACL}
                      nnfw_util ${NNFW_ACL_LIBS}
                      ${NNFW_GTEST_LIBS}
                      )
install(TARGETS ${LIB_KERNELACL_TEST} DESTINATION unittest)