summaryrefslogtreecommitdiff
path: root/runtimes/neurun/CMakeLists.txt
blob: 92547da2c09b9cec48ee9e5791b817fa736533e4 (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
# Add cpu

set(NEURUN_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)

# Build kernels
set(LIB_NEURUN_KERNEL_CPU neurun_kernel_cpu)
set(LIB_NEURUN_KERNEL_ACL_CL neurun_kernel_acl_cl)
add_subdirectory(src/kernel)

# Build backends
set(LIB_NEURUN_BACKEND_CPU neurun_backend_cpu)
set(LIB_NEURUN_BACKEND_ACL_CL neurun_backend_acl_cl)
add_subdirectory(src/backend)

file(GLOB SOURCES "src/*.cc")
file(GLOB_RECURSE SOURCES_FRONTEND "src/frontend/*.cc")
file(GLOB SOURCES_BACKEND "src/backend/*.cc")
file(GLOB_RECURSE SOURCES_INTERNAL "src/internal/*.cc")
file(GLOB_RECURSE SOURCES_GRAPH "src/graph/*.cc")
file(GLOB_RECURSE SOURCES_LINEAR "src/linear/*.cc")
file(GLOB_RECURSE SOURCES_DUMPER "src/dumper/*.cc")
file(GLOB_RECURSE SOURCES_COMPILER "src/compiler/*.cc")
file(GLOB_RECURSE SOURCES_VERIFIER "src/verifier/*.cc")
file(GLOB_RECURSE SOURCES_UTIL "src/util/*.cc")
file(GLOB_RECURSE SOURCES_MODEL "src/model/*.cc")

set(SOURCES ${SOURCES} ${SOURCES_FRONTEND} ${SOURCES_BACKEND} ${SOURCES_INTERNAL} ${SOURCES_GRAPH} ${SOURCES_LINEAR} ${SOURCES_DUMPER} ${SOURCES_COMPILER} ${SOURCES_VERIFIER} ${SOURCES_UTIL} ${SOURCES_MODEL})

add_library(${LIB_NEURUN} SHARED ${SOURCES})
target_include_directories(${LIB_NEURUN} PUBLIC ${NNFW_INCLUDE_DIR})
target_include_directories(${LIB_NEURUN} PUBLIC ${NEURUN_INCLUDE_DIR})
target_include_directories(${LIB_NEURUN} PUBLIC ${CMAKE_SOURCE_DIR}/externals/tensorflow)
target_link_libraries(${LIB_NEURUN} tensorflow-lite)
target_link_libraries(${LIB_NEURUN} nnfw_lib_misc)
target_link_libraries(${LIB_NEURUN} nnfw_lib_cpp14)

target_compile_options(${LIB_NEURUN} PRIVATE -Wall -Wextra -Werror -Wno-unused-parameter)

set_target_properties(${LIB_NEURUN} PROPERTIES OUTPUT_NAME neuralnetworks)

install(TARGETS ${LIB_NEURUN} DESTINATION lib/neurun)


# Unit Tests

set(TEST_NEURUN test_neurun)

file(GLOB_RECURSE TESTS "test/*.cc")

add_executable(${TEST_NEURUN} ${TESTS})
target_link_libraries(${TEST_NEURUN} ${LIB_NEURUN})
target_link_libraries(${TEST_NEURUN} gtest)
target_link_libraries(${TEST_NEURUN} gtest_main)
target_link_libraries(${TEST_NEURUN} ${LIB_PTHREAD})
target_link_libraries(${TEST_NEURUN} ${LIB_NEURUN_BACKEND_CPU})
target_link_libraries(${TEST_NEURUN} ${LIB_NEURUN_BACKEND_ACL_CL})
add_test(${TEST_NEURUN} ${TEST_NEURUN})

install(TARGETS ${TEST_NEURUN} DESTINATION unittest)