onnxruntime

Форк
0
/
onnxruntime_providers_dml.cmake 
91 строка · 4.2 Кб
1
# Copyright (c) Microsoft Corporation. All rights reserved.
2
# Licensed under the MIT License.
3

4
  file(GLOB_RECURSE onnxruntime_providers_dml_cc_srcs CONFIGURE_DEPENDS
5
    "${ONNXRUNTIME_ROOT}/core/providers/dml/*.h"
6
    "${ONNXRUNTIME_ROOT}/core/providers/dml/*.cpp"
7
    "${ONNXRUNTIME_ROOT}/core/providers/dml/*.cc"
8
  )
9
  source_group(TREE ${ONNXRUNTIME_ROOT}/core FILES ${onnxruntime_providers_dml_cc_srcs})
10
  onnxruntime_add_static_library(onnxruntime_providers_dml ${onnxruntime_providers_dml_cc_srcs})
11
  onnxruntime_add_include_to_target(onnxruntime_providers_dml
12
    onnxruntime_common onnxruntime_framework onnx onnx_proto ${PROTOBUF_LIB} flatbuffers::flatbuffers Boost::mp11 safeint_interface ${WIL_TARGET}
13
  )
14
  add_dependencies(onnxruntime_providers_dml ${onnxruntime_EXTERNAL_DEPENDENCIES})
15
  target_include_directories(onnxruntime_providers_dml PRIVATE
16
    ${ONNXRUNTIME_ROOT}
17
  )
18

19
  target_compile_definitions(onnxruntime_providers_dml PRIVATE DML_TARGET_VERSION_USE_LATEST=1)
20
  if(WIN32)
21
    target_compile_options(onnxruntime_providers_dml PRIVATE "/wd4100" "/wd4238" "/wd4189" "/wd4702")
22
  endif()
23

24
  if (NOT onnxruntime_USE_CUSTOM_DIRECTML)
25
    foreach(file "DirectML.dll" "DirectML.pdb" "DirectML.Debug.dll" "DirectML.Debug.pdb")
26
      add_custom_command(TARGET onnxruntime_providers_dml
27
        POST_BUILD
28
        COMMAND ${CMAKE_COMMAND} -E copy_if_different
29
          "${DML_PACKAGE_DIR}/bin/${onnxruntime_target_platform}-win/${file}" $<TARGET_FILE_DIR:onnxruntime_providers_dml>)
30
    endforeach()
31
  endif()
32

33
  function(target_add_dml target)
34
    if (onnxruntime_USE_CUSTOM_DIRECTML)
35
      if (dml_EXTERNAL_PROJECT)
36
        # Internal build of DirectML: link against the "DirectML" target.
37
        target_link_libraries(${target} PRIVATE DirectML)
38
      else()
39
        if (dml_LIB_DIR)
40
          target_link_libraries(${target} PRIVATE ${dml_LIB_DIR}/DirectML.lib)
41
        else()
42
          target_link_libraries(${target} PRIVATE DirectML)
43
        endif()
44
      endif()
45
    else()
46
      add_dependencies(${target} RESTORE_PACKAGES)
47
      target_link_libraries(${target} PRIVATE "${DML_PACKAGE_DIR}/bin/${onnxruntime_target_platform}-win/DirectML.lib")
48
        target_compile_definitions(${target} PRIVATE DML_TARGET_VERSION_USE_LATEST)
49
    endif()
50
  endfunction()
51

52
  target_add_dml(onnxruntime_providers_dml)
53
  target_link_libraries(onnxruntime_providers_dml PRIVATE onnxruntime_common)
54
  target_link_libraries(onnxruntime_providers_dml PRIVATE onnxruntime_framework)
55
  onnxruntime_add_include_to_target(onnxruntime_providers_dml onnxruntime_common)
56
  if (GDK_PLATFORM STREQUAL Scarlett)
57
    target_link_libraries(onnxruntime_providers_dml PRIVATE ${gdk_dx_libs})
58
  else()
59
    target_link_libraries(onnxruntime_providers_dml PRIVATE dxguid.lib d3d12.lib dxgi.lib dxcore.lib)
60
  endif()
61

62
  target_link_libraries(onnxruntime_providers_dml PRIVATE delayimp.lib)
63

64
  if (NOT GDK_PLATFORM)
65
    set(onnxruntime_DELAYLOAD_FLAGS "${onnxruntime_DELAYLOAD_FLAGS} /DELAYLOAD:DirectML.dll /DELAYLOAD:d3d12.dll /DELAYLOAD:dxgi.dll /DELAYLOAD:dxcore.dll /DELAYLOAD:api-ms-win-core-com-l1-1-0.dll /DELAYLOAD:shlwapi.dll /DELAYLOAD:oleaut32.dll /DELAYLOAD:ext-ms-win-dxcore-l1-*.dll /ignore:4199")
66
  endif()
67

68
  target_compile_definitions(onnxruntime_providers_dml
69
    PRIVATE
70
    ONNX_NAMESPACE=onnx ONNX_ML LOTUS_LOG_THRESHOLD=2 LOTUS_ENABLE_STDERR_LOGGING PLATFORM_WINDOWS
71
  )
72
  target_compile_definitions(onnxruntime_providers_dml PRIVATE UNICODE _UNICODE NOMINMAX)
73
  if (MSVC)
74
    target_compile_definitions(onnxruntime_providers_dml PRIVATE _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING)
75
    target_compile_options(onnxruntime_providers_dml PRIVATE "/W3")
76
  endif()
77

78
  install(FILES ${PROJECT_SOURCE_DIR}/../include/onnxruntime/core/providers/dml/dml_provider_factory.h
79
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnxruntime/
80
  )
81

82
  set_target_properties(onnxruntime_providers_dml PROPERTIES LINKER_LANGUAGE CXX)
83
  set_target_properties(onnxruntime_providers_dml PROPERTIES FOLDER "ONNXRuntime")
84

85
  if (NOT onnxruntime_BUILD_SHARED_LIB)
86
    install(TARGETS onnxruntime_providers_dml
87
            ARCHIVE   DESTINATION ${CMAKE_INSTALL_LIBDIR}
88
            LIBRARY   DESTINATION ${CMAKE_INSTALL_LIBDIR}
89
            RUNTIME   DESTINATION ${CMAKE_INSTALL_BINDIR}
90
            FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR})
91
  endif()
92

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

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

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

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