xref: /aosp_15_r20/external/armnn/samples/common/cmake/find_armnn.cmake (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1# Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
2# SPDX-License-Identifier: MIT
3# Search for ArmNN built libraries in user-provided path first, then current repository, then system
4
5if( USE_ARMNN_DELEGATE )
6    set(ARMNN_LIB_NAMES "libarmnn.so"
7        "libarmnnDelegate.so")
8else()
9    set(ARMNN_LIB_NAMES "libarmnn.so"
10        "libarmnnTfLiteParser.so")
11endif()
12
13set(ARMNN_LIBS "")
14
15get_filename_component(PARENT_DIR ${PROJECT_SOURCE_DIR} DIRECTORY)
16get_filename_component(REPO_DIR ${PARENT_DIR} DIRECTORY)
17
18foreach(armnn_lib ${ARMNN_LIB_NAMES})
19    find_library(ARMNN_${armnn_lib}
20        NAMES
21            ${armnn_lib}
22        HINTS
23            ${ARMNN_LIB_DIR} ${REPO_DIR}
24        PATHS
25            ${ARMNN_LIB_DIR} ${REPO_DIR}
26        PATH_SUFFIXES
27            "lib"
28            "lib64")
29    if(ARMNN_${armnn_lib})
30        message("Found library ${ARMNN_${armnn_lib}}")
31        list(APPEND ARMNN_LIBS ${ARMNN_${armnn_lib}})
32        get_filename_component(LIB_DIR ${ARMNN_${armnn_lib}} DIRECTORY)
33        get_filename_component(LIB_PARENT_DIR ${LIB_DIR} DIRECTORY)
34        if( USE_ARMNN_DELEGATE )
35            set(ARMNN_INCLUDE_DIR ${LIB_PARENT_DIR}/include
36                ${PARENT_DIR}/../delegate/include
37                ${PARENT_DIR}/../delegate/src)
38        else()
39            set(ARMNN_INCLUDE_DIR ${LIB_PARENT_DIR}/include)
40        endif()
41    endif()
42endforeach()
43
44if(NOT ARMNN_LIBS)
45    message(FATAL_ERROR "Could not find ArmNN libraries ${ARMNN_LIB_NAMES}")
46endif()
47