onnxruntime

Форк
0
/
onnxruntime_providers_nnapi.cmake 
82 строки · 4.4 Кб
1
# Copyright (c) Microsoft Corporation. All rights reserved.
2
# Licensed under the MIT License.
3

4
  if (onnxruntime_MINIMAL_BUILD AND NOT onnxruntime_EXTENDED_MINIMAL_BUILD)
5
    message(FATAL_ERROR "NNAPI can not be used in a basic minimal build. Please build with '--minimal_build extended'")
6
  endif()
7

8
  add_compile_definitions(USE_NNAPI=1)
9

10
  # This is the minimum Android API Level required by ORT NNAPI EP to run
11
  # ORT running on any host system with Android API level less than this will fall back to CPU EP
12
  if(onnxruntime_NNAPI_MIN_API)
13
    add_compile_definitions(ORT_NNAPI_MIN_API_LEVEL=${onnxruntime_NNAPI_MIN_API})
14
  endif()
15

16
  # This is the maximum Android API level supported in the ort model conversion for NNAPI EP
17
  # Note: This is only for running NNAPI for ort format model conversion on non-Android system since we cannot
18
  #       get the actually Android system version.
19
  if(onnxruntime_NNAPI_HOST_API)
20
    if(CMAKE_SYSTEM_NAME STREQUAL "Android")
21
      message(FATAL_ERROR "onnxruntime_NNAPI_HOST_API should only be set for non-Android target")
22
    endif()
23
    add_compile_definitions(ORT_NNAPI_MAX_SUPPORTED_API_LEVEL=${onnxruntime_NNAPI_HOST_API})
24
  endif()
25

26
  set(onnxruntime_provider_nnapi_cc_src_patterns
27
      "${ONNXRUNTIME_ROOT}/core/providers/nnapi/*.h"
28
      "${ONNXRUNTIME_ROOT}/core/providers/nnapi/*.cc"
29
      "${ONNXRUNTIME_ROOT}/core/providers/nnapi/nnapi_builtin/*.h"
30
      "${ONNXRUNTIME_ROOT}/core/providers/nnapi/nnapi_builtin/*.cc"
31
      "${ONNXRUNTIME_ROOT}/core/providers/nnapi/nnapi_builtin/builders/*.h"
32
      "${ONNXRUNTIME_ROOT}/core/providers/nnapi/nnapi_builtin/builders/*.cc"
33
      "${ONNXRUNTIME_ROOT}/core/providers/nnapi/nnapi_builtin/builders/impl/*.h"
34
      "${ONNXRUNTIME_ROOT}/core/providers/nnapi/nnapi_builtin/builders/impl/*.cc"
35
      "${ONNXRUNTIME_ROOT}/core/providers/nnapi/nnapi_builtin/nnapi_lib/NeuralNetworksTypes.h"
36
      "${ONNXRUNTIME_ROOT}/core/providers/nnapi/nnapi_builtin/nnapi_lib/NeuralNetworksWrapper.h"
37
      "${ONNXRUNTIME_ROOT}/core/providers/nnapi/nnapi_builtin/nnapi_lib/NeuralNetworksWrapper.cc"
38
      "${ONNXRUNTIME_ROOT}/core/providers/nnapi/nnapi_builtin/nnapi_lib/nnapi_implementation.h"
39
  )
40

41
  # On Android, use the actual NNAPI implementation.
42
  # Otherwise, use a stub implementation to support some unit testing.
43
  if(CMAKE_SYSTEM_NAME STREQUAL "Android")
44
    list(APPEND onnxruntime_provider_nnapi_cc_src_patterns
45
         "${ONNXRUNTIME_ROOT}/core/providers/nnapi/nnapi_builtin/nnapi_lib/nnapi_implementation.cc")
46
  else()
47
    list(APPEND onnxruntime_provider_nnapi_cc_src_patterns
48
         "${ONNXRUNTIME_ROOT}/core/providers/nnapi/nnapi_builtin/nnapi_lib/nnapi_implementation_stub.cc")
49
  endif()
50

51
  # These are shared utils,
52
  # TODO, move this to a separate lib when used by EPs other than NNAPI and CoreML
53
  list(APPEND onnxruntime_provider_nnapi_cc_src_patterns
54
    "${ONNXRUNTIME_ROOT}/core/providers/shared/utils/utils.h"
55
    "${ONNXRUNTIME_ROOT}/core/providers/shared/utils/utils.cc"
56
  )
57

58
  file(GLOB onnxruntime_providers_nnapi_cc_srcs CONFIGURE_DEPENDS ${onnxruntime_provider_nnapi_cc_src_patterns})
59

60
  source_group(TREE ${ONNXRUNTIME_ROOT}/core FILES ${onnxruntime_providers_nnapi_cc_srcs})
61
  onnxruntime_add_static_library(onnxruntime_providers_nnapi ${onnxruntime_providers_nnapi_cc_srcs})
62
  onnxruntime_add_include_to_target(onnxruntime_providers_nnapi
63
    onnxruntime_common onnxruntime_framework onnx onnx_proto ${PROTOBUF_LIB} flatbuffers::flatbuffers Boost::mp11 safeint_interface
64
  )
65
  target_link_libraries(onnxruntime_providers_nnapi)
66
  add_dependencies(onnxruntime_providers_nnapi onnx ${onnxruntime_EXTERNAL_DEPENDENCIES})
67
  set_target_properties(onnxruntime_providers_nnapi PROPERTIES CXX_STANDARD_REQUIRED ON)
68
  set_target_properties(onnxruntime_providers_nnapi PROPERTIES FOLDER "ONNXRuntime")
69
  target_include_directories(onnxruntime_providers_nnapi PRIVATE ${ONNXRUNTIME_ROOT} ${nnapi_INCLUDE_DIRS})
70
  set_target_properties(onnxruntime_providers_nnapi PROPERTIES LINKER_LANGUAGE CXX)
71
  # ignore the warning unknown-pragmas on "pragma region"
72
  if(NOT MSVC)
73
    target_compile_options(onnxruntime_providers_nnapi PRIVATE "-Wno-unknown-pragmas")
74
  endif()
75

76
  if (NOT onnxruntime_BUILD_SHARED_LIB)
77
    install(TARGETS onnxruntime_providers_nnapi
78
            ARCHIVE   DESTINATION ${CMAKE_INSTALL_LIBDIR}
79
            LIBRARY   DESTINATION ${CMAKE_INSTALL_LIBDIR}
80
            RUNTIME   DESTINATION ${CMAKE_INSTALL_BINDIR}
81
            FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR})
82
  endif()
83

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.