b1215d867b43751e90462ed4926aaf1a88739d60
[platform/core/ml/nnfw.git] / tests / nnapi / CMakeLists.txt
1 if (NOT BUILD_RUNTIME_NNAPI_TEST)
2   return()
3 endif(NOT BUILD_RUNTIME_NNAPI_TEST)
4
5 if (NOT BUILD_ONERT)
6   message(STATUS "Skip build NNAPI test: no runtime build")
7   return()
8 endif(NOT BUILD_ONERT)
9
10 nnfw_find_package(GTest)
11
12
13 set(GENERATED_CPPS "${CMAKE_CURRENT_SOURCE_DIR}/src/generated/all_generated_V1_2_cts_tests.cpp"
14                    "${CMAKE_CURRENT_SOURCE_DIR}/src/generated/all_generated_V1_1_cts_tests.cpp"
15                    "${CMAKE_CURRENT_SOURCE_DIR}/src/generated/all_generated_V1_0_cts_tests.cpp"
16                    "${CMAKE_CURRENT_SOURCE_DIR}/src/generated/all_generated_Ex_cts_tests.cpp")
17
18 # Skip script for generate test and use pre-generated test
19 if (GENERATE_RUNTIME_NNAPI_TESTS)
20   set(GENERATOR_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/specs/generate_test.sh")
21   file(GLOB_RECURSE TEST_SPECS "${CMAKE_CURRENT_SOURCE_DIR}/specs/*.mod.py")
22
23   add_custom_command(OUTPUT ${GENERATED_CPPS}
24                      COMMAND ${GENERATOR_SCRIPT}
25                      DEPENDS ${GENERATOR_SCRIPT} ${TEST_SPECS}
26                      COMMENT "Generating runtime nnapi tests")
27   add_custom_target(generate-runtime-nnapi-tests
28                     DEPENDS ${GENERATED_CPPS})
29 endif(GENERATE_RUNTIME_NNAPI_TESTS)
30
31 set(RUNTIME_NNAPI_TEST nnapi_gtest)
32 set(RUNTIME_NNAPI_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/TestMain.cpp
33                            ${CMAKE_CURRENT_SOURCE_DIR}/src/TestNeuralNetworksWrapper.cpp
34                            ${CMAKE_CURRENT_SOURCE_DIR}/src/TestTrivialModel.cpp
35                            ${CMAKE_CURRENT_SOURCE_DIR}/src/TestValidation.cpp)
36 set(GENERATED_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/TestGenerated.cpp
37                        ${GENERATED_CPPS})
38 set(RUNTIME_NNAPI_TEST_SRC ${RUNTIME_NNAPI_TEST_SRC} ${GENERATED_TEST_SRC})
39
40 add_executable(${RUNTIME_NNAPI_TEST} ${RUNTIME_NNAPI_TEST_SRC})
41
42 if (GENERATE_RUNTIME_NNAPI_TESTS)
43   add_dependencies(${RUNTIME_NNAPI_TEST} generate-runtime-nnapi-tests)
44 endif(GENERATE_RUNTIME_NNAPI_TESTS)
45
46 set(RUNTIME_NNAPI_TEST_SRC_INC ${CMAKE_CURRENT_SOURCE_DIR}/include
47                                ${CMAKE_CURRENT_SOURCE_DIR}/src)
48 target_include_directories(${RUNTIME_NNAPI_TEST} PRIVATE ${RUNTIME_NNAPI_TEST_SRC_INC})
49
50 # Define NNTEST_ONLY_PUBLIC_API to avoid android dependency
51 target_compile_definitions(${RUNTIME_NNAPI_TEST} PRIVATE NNTEST_ONLY_PUBLIC_API)
52
53 target_link_libraries(${RUNTIME_NNAPI_TEST} nnfw_lib_nnapi)
54 target_link_libraries(${RUNTIME_NNAPI_TEST} gtest gmock)
55 target_link_libraries(${RUNTIME_NNAPI_TEST} ${LIB_PTHREAD} dl)
56
57 install(TARGETS ${RUNTIME_NNAPI_TEST} DESTINATION unittest)
58
59 # Default test backend: cpu
60 set(SKIPLIST_FILE_NAME ${RUNTIME_NNAPI_TEST}.skip.${TARGET_PLATFORM}.cpu)
61 install(FILES ${SKIPLIST_FILE_NAME}
62         DESTINATION unittest
63         RENAME ${RUNTIME_NNAPI_TEST}.skip
64         OPTIONAL)
65
66 # Install skiplist file for target as backup
67 FILE(GLOB SKIPLIST_TARGET ${CMAKE_CURRENT_SOURCE_DIR}/${RUNTIME_NNAPI_TEST}.skip.${TARGET_PLATFORM}*)
68 FILE(GLOB SKIPLIST_NOARCH ${CMAKE_CURRENT_SOURCE_DIR}/${RUNTIME_NNAPI_TEST}.skip.noarch.*)
69 list(APPEND SKIPLIST_ALL_RUNTIME ${SKIPLIST_TARGET} ${SKIPLIST_NOARCH})
70 install(FILES ${SKIPLIST_ALL_RUNTIME} DESTINATION unittest OPTIONAL)