xref: /aosp_15_r20/external/armnn/samples/ObjectDetection/cmake/unit_tests.cmake (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker# Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
2*89c4ff92SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
3*89c4ff92SAndroid Build Coastguard Worker
4*89c4ff92SAndroid Build Coastguard Workerset(TEST_RESOURCES_DIR ${CMAKE_SOURCE_DIR}/test/resources)
5*89c4ff92SAndroid Build Coastguard Workerfile(MAKE_DIRECTORY ${TEST_RESOURCES_DIR})
6*89c4ff92SAndroid Build Coastguard Workeradd_definitions (-DTEST_RESOURCE_DIR="${TEST_RESOURCES_DIR}")
7*89c4ff92SAndroid Build Coastguard Workerset(TEST_TARGET_NAME "${CMAKE_PROJECT_NAME}-tests")
8*89c4ff92SAndroid Build Coastguard Worker
9*89c4ff92SAndroid Build Coastguard Workerinclude(../common/cmake/find_catch.cmake)
10*89c4ff92SAndroid Build Coastguard Worker
11*89c4ff92SAndroid Build Coastguard WorkerExternalProject_Add(basketball-image
12*89c4ff92SAndroid Build Coastguard Worker        URL https://raw.githubusercontent.com/opencv/opencv/4.0.0/samples/data/basketball1.png
13*89c4ff92SAndroid Build Coastguard Worker        DOWNLOAD_NO_EXTRACT 1
14*89c4ff92SAndroid Build Coastguard Worker        CONFIGURE_COMMAND ""
15*89c4ff92SAndroid Build Coastguard Worker        BUILD_COMMAND ${CMAKE_COMMAND} -E copy <DOWNLOAD_DIR>/basketball1.png ${CMAKE_CURRENT_SOURCE_DIR}/test/resources
16*89c4ff92SAndroid Build Coastguard Worker        INSTALL_COMMAND ""
17*89c4ff92SAndroid Build Coastguard Worker)
18*89c4ff92SAndroid Build Coastguard Worker
19*89c4ff92SAndroid Build Coastguard WorkerExternalProject_Add(messi
20*89c4ff92SAndroid Build Coastguard Worker        URL https://raw.githubusercontent.com/opencv/opencv/4.0.0/samples/data/messi5.jpg
21*89c4ff92SAndroid Build Coastguard Worker        DOWNLOAD_NO_EXTRACT 1
22*89c4ff92SAndroid Build Coastguard Worker        CONFIGURE_COMMAND ""
23*89c4ff92SAndroid Build Coastguard Worker        BUILD_COMMAND ${CMAKE_COMMAND} -E copy <DOWNLOAD_DIR>/messi5.jpg ${CMAKE_CURRENT_SOURCE_DIR}/test/resources
24*89c4ff92SAndroid Build Coastguard Worker        INSTALL_COMMAND ""
25*89c4ff92SAndroid Build Coastguard Worker        )
26*89c4ff92SAndroid Build Coastguard Worker
27*89c4ff92SAndroid Build Coastguard WorkerExternalProject_Add(vtest
28*89c4ff92SAndroid Build Coastguard Worker        URL https://raw.githubusercontent.com/opencv/opencv/4.0.0/samples/data/Megamind.avi
29*89c4ff92SAndroid Build Coastguard Worker        DOWNLOAD_NO_EXTRACT 1
30*89c4ff92SAndroid Build Coastguard Worker        CONFIGURE_COMMAND ""
31*89c4ff92SAndroid Build Coastguard Worker        BUILD_COMMAND ${CMAKE_COMMAND} -E copy <DOWNLOAD_DIR>/Megamind.avi ${CMAKE_CURRENT_SOURCE_DIR}/test/resources
32*89c4ff92SAndroid Build Coastguard Worker        INSTALL_COMMAND ""
33*89c4ff92SAndroid Build Coastguard Worker        )
34*89c4ff92SAndroid Build Coastguard Worker
35*89c4ff92SAndroid Build Coastguard WorkerExternalProject_Add(ssd_mobile
36*89c4ff92SAndroid Build Coastguard Worker        URL https://github.com/ARM-software/ML-zoo/raw/master/models/object_detection/ssd_mobilenet_v1/tflite_uint8/ssd_mobilenet_v1.tflite
37*89c4ff92SAndroid Build Coastguard Worker        DOWNLOAD_NO_EXTRACT 1
38*89c4ff92SAndroid Build Coastguard Worker        CONFIGURE_COMMAND ""
39*89c4ff92SAndroid Build Coastguard Worker        BUILD_COMMAND ${CMAKE_COMMAND} -E copy <DOWNLOAD_DIR>/ssd_mobilenet_v1.tflite ${CMAKE_CURRENT_SOURCE_DIR}/test/resources
40*89c4ff92SAndroid Build Coastguard Worker        INSTALL_COMMAND ""
41*89c4ff92SAndroid Build Coastguard Worker        )
42*89c4ff92SAndroid Build Coastguard Worker
43*89c4ff92SAndroid Build Coastguard WorkerExternalProject_Add(yolo_v3
44*89c4ff92SAndroid Build Coastguard Worker        URL https://github.com/ARM-software/ML-zoo/raw/master/models/object_detection/yolo_v3_tiny/tflite_fp32/yolo_v3_tiny_darknet_fp32.tflite
45*89c4ff92SAndroid Build Coastguard Worker        DOWNLOAD_NO_EXTRACT 1
46*89c4ff92SAndroid Build Coastguard Worker        CONFIGURE_COMMAND ""
47*89c4ff92SAndroid Build Coastguard Worker        BUILD_COMMAND ${CMAKE_COMMAND} -E copy <DOWNLOAD_DIR>/yolo_v3_tiny_darknet_fp32.tflite ${CMAKE_CURRENT_SOURCE_DIR}/test/resources
48*89c4ff92SAndroid Build Coastguard Worker        INSTALL_COMMAND ""
49*89c4ff92SAndroid Build Coastguard Worker        )
50*89c4ff92SAndroid Build Coastguard Worker
51*89c4ff92SAndroid Build Coastguard Workeradd_executable("${TEST_TARGET_NAME}" ${SOURCES} ${TEST_SOURCES} ${CVUTILS_SOURCES} ${UTILS_SOURCES})
52*89c4ff92SAndroid Build Coastguard Worker
53*89c4ff92SAndroid Build Coastguard Workeradd_dependencies(
54*89c4ff92SAndroid Build Coastguard Worker    "${TEST_TARGET_NAME}"
55*89c4ff92SAndroid Build Coastguard Worker    "catch2-headers"
56*89c4ff92SAndroid Build Coastguard Worker    "vtest"
57*89c4ff92SAndroid Build Coastguard Worker    "messi"
58*89c4ff92SAndroid Build Coastguard Worker    "basketball-image"
59*89c4ff92SAndroid Build Coastguard Worker)
60*89c4ff92SAndroid Build Coastguard Worker
61*89c4ff92SAndroid Build Coastguard Workerif (NOT OPENCV_LIBS_FOUND)
62*89c4ff92SAndroid Build Coastguard Worker    message("Building OpenCV libs")
63*89c4ff92SAndroid Build Coastguard Worker    add_dependencies("${TEST_TARGET_NAME}" "${OPENCV_LIB}")
64*89c4ff92SAndroid Build Coastguard Workerendif()
65*89c4ff92SAndroid Build Coastguard Worker
66*89c4ff92SAndroid Build Coastguard Workertarget_include_directories("${TEST_TARGET_NAME}" PUBLIC ${TEST_TPIP_INCLUDE}
67*89c4ff92SAndroid Build Coastguard Worker    ${ARMNN_INCLUDE_DIR}
68*89c4ff92SAndroid Build Coastguard Worker    ${OPENCV_INCLUDE_DIR} ${DEPENDENCIES_DIR} ${TEST_RESOURCES_DIR} ${COMMON_INCLUDE_DIR})
69*89c4ff92SAndroid Build Coastguard Worker
70*89c4ff92SAndroid Build Coastguard Workertarget_link_libraries("${TEST_TARGET_NAME}" PUBLIC ${ARMNN_LIBS} ${OPENCV_LIBS} ${FFMPEG_LIBS})
71*89c4ff92SAndroid Build Coastguard Workerif( USE_ARMNN_DELEGATE )
72*89c4ff92SAndroid Build Coastguard Worker    set(CMAKE_CXX_FLAGS " -ldl -lrt -Wl,--copy-dt-needed-entries")
73*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries("${TEST_TARGET_NAME}" PUBLIC ${TfLite_LIB})
74*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries("${TEST_TARGET_NAME}" PUBLIC tflite_headers)
75*89c4ff92SAndroid Build Coastguard Worker    target_include_directories("${TEST_TARGET_NAME}" PUBLIC ${Flatbuffers_INCLUDE_DIR})
76*89c4ff92SAndroid Build Coastguard Worker    target_link_libraries("${TEST_TARGET_NAME}" PUBLIC ${Flatbuffers_LIB})
77*89c4ff92SAndroid Build Coastguard Workerendif()