summaryrefslogtreecommitdiff
path: root/tests/nnapi/CMakeLists.txt
blob: d03d1ae278b832b1065dd2596453ae70a8558a2a (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
if (NOT BUILD_RUNTIME_NNAPI_TEST)
  return()
endif(NOT BUILD_RUNTIME_NNAPI_TEST)

if (GENERATE_RUNTIME_NNAPI_TESTS)
  set(GENERATOR_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/specs/generate_test.sh")
  file(GLOB_RECURSE TEST_SPECS "${CMAKE_CURRENT_SOURCE_DIR}/specs/*.mod.py")
  set(GENERATED_CPPS "${CMAKE_CURRENT_SOURCE_DIR}/src/generated/all_generated_V1_1_cts_tests.cpp"
                     "${CMAKE_CURRENT_SOURCE_DIR}/src/generated/all_generated_V1_0_cts_tests.cpp"
                     "${CMAKE_CURRENT_SOURCE_DIR}/src/generated/all_generated_Ex_cts_tests.cpp")
  add_custom_command(OUTPUT ${GENERATED_CPPS}
                     COMMAND ${GENERATOR_SCRIPT}
                     DEPENDS ${GENERATOR_SCRIPT} ${TEST_SPECS}
                     COMMENT "Generating runtime nnapi tests")
  add_custom_target(generate-runtime-nnapi-tests
                    DEPENDS ${GENERATED_CPPS})
endif(GENERATE_RUNTIME_NNAPI_TESTS)

# Executable `runtime_run` (Dummy runner executable using NN API)
set(RUNTIME_NNAPI_TEST nnapi_gtest)
set(RUNTIME_NNAPI_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/TestMain.cpp
                           ${CMAKE_CURRENT_SOURCE_DIR}/src/TestTrivialModel.cpp
                           ${CMAKE_CURRENT_SOURCE_DIR}/src/TestValidation.cpp)

set(GENERATED_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/TestGenerated_V1_0.cpp
                      ${CMAKE_CURRENT_SOURCE_DIR}/src/TestGenerated_V1_1.cpp
                      ${CMAKE_CURRENT_SOURCE_DIR}/src/TestGenerated_Ex.cpp)

set(RUNTIME_NNAPI_TEST_SRC ${RUNTIME_NNAPI_TEST_SRC} ${GENERATED_TEST_SRC})

add_executable(${RUNTIME_NNAPI_TEST} ${RUNTIME_NNAPI_TEST_SRC})

if (GENERATE_RUNTIME_NNAPI_TESTS)
  add_dependencies(${RUNTIME_NNAPI_TEST} generate-runtime-nnapi-tests)
endif(GENERATE_RUNTIME_NNAPI_TESTS)

nnfw_find_package(GTest)

set(RUNTIME_NNAPI_TEST_SRC_INC ${CMAKE_CURRENT_SOURCE_DIR}/include
                               ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_include_directories(${RUNTIME_NNAPI_TEST} PRIVATE ${RUNTIME_NNAPI_TEST_SRC_INC})

if (BUILD_NEURUN)
  set(SKIPLIST_FILE_NAME ${RUNTIME_NNAPI_TEST}.skip.${TARGET_PLATFORM}.neurun)
elseif (BUILD_PURE_ARM_COMPUTE)
  set(SKIPLIST_FILE_NAME ${RUNTIME_NNAPI_TEST}.skip.${TARGET_PLATFORM})
endif()
target_link_libraries(${RUNTIME_NNAPI_TEST} nnapi-header)
target_link_libraries(${RUNTIME_NNAPI_TEST} gtest)
target_link_libraries(${RUNTIME_NNAPI_TEST} ${LIB_PTHREAD} dl)

install(TARGETS nnapi_gtest DESTINATION unittest)

install(FILES ${SKIPLIST_FILE_NAME}
        DESTINATION unittest
        RENAME ${RUNTIME_NNAPI_TEST}.skip
        OPTIONAL)

# Install skiplist file for target as backup
FILE(GLOB SKIPLIST_ALL_RUNTIME ${CMAKE_CURRENT_SOURCE_DIR}/${RUNTIME_NNAPI_TEST}.skip.${TARGET_PLATFORM}*)
install(FILES ${SKIPLIST_ALL_RUNTIME} DESTINATION unittest OPTIONAL)