microsoft/onnxruntime-extensions

Public

mirrored fromhttps://github.com/microsoft/onnxruntime-extensionsAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
176c1d013864044bcc0747b908bdd32048669401

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

cmake/ext_ortlib.cmake

118lines · modecode

1if(_ONNXRUNTIME_EMBEDDED)
2 set(ONNXRUNTIME_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/../include/onnxruntime/core/session)
3 set(ONNXRUNTIME_LIB_DIR "")
4elseif(ONNXRUNTIME_PKG_DIR)
5 set(ONNXRUNTIME_INCLUDE_DIR ${ONNXRUNTIME_PKG_DIR}/include)
6 set(ONNXRUNTIME_LIB_DIR ${ONNXRUNTIME_PKG_DIR}/lib)
7elseif(OCOS_ONNXRUNTIME_PKG_URI)
8 if (NOT OCOS_ONNXRUNTIME_VERSION)
9 message(FATAL_ERROR "OCOS_ONNXRUNTIME_PKG_URI is set but OCOS_ONNXRUNTIME_VERSION is not set")
10 endif()
11 set(ONNXRUNTIME_VER ${OCOS_ONNXRUNTIME_VERSION})
12 set(ONNXRUNTIME_URL ${OCOS_ONNXRUNTIME_PKG_URI})
13 message(STATUS "ONNX Runtime URL: ${OCOS_ONNXRUNTIME_PKG_URI}")
14 FetchContent_Declare(
15 onnxruntime
16 URL ${OCOS_ONNXRUNTIME_PKG_URI}
17 )
18
19 FetchContent_makeAvailable(onnxruntime)
20
21 if (ANDROID)
22 set(ONNXRUNTIME_INCLUDE_DIR ${onnxruntime_SOURCE_DIR}/headers)
23 set(ONNXRUNTIME_LIB_DIR ${onnxruntime_SOURCE_DIR}/jni/${ANDROID_ABI})
24 message(STATUS "Android onnxruntime inc=${ONNXRUNTIME_INCLUDE_DIR} lib=${ONNXRUNTIME_LIB_DIR}")
25 else()
26 set(ONNXRUNTIME_INCLUDE_DIR ${onnxruntime_SOURCE_DIR}/include)
27 set(ONNXRUNTIME_LIB_DIR ${onnxruntime_SOURCE_DIR}/lib)
28 endif()
29else()
30 message(STATUS "CMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}")
31 message(STATUS "CMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}")
32
33 # 1.16.1 is the latest ORT release.
34 if (OCOS_ONNXRUNTIME_VERSION)
35 set(ONNXRUNTIME_VER ${OCOS_ONNXRUNTIME_VERSION})
36 else()
37 set(ONNXRUNTIME_VER "1.17.1")
38 endif()
39
40 if (ANDROID)
41 set(ort_fetch_URL "https://repo1.maven.org/maven2/com/microsoft/onnxruntime/onnxruntime-android/${ONNXRUNTIME_VER}/onnxruntime-android-${ONNXRUNTIME_VER}.aar")
42 elseif(IOS)
43 set(ort_fetch_URL "https://onnxruntimepackages.z14.web.core.windows.net/pod-archive-onnxruntime-c-${ONNXRUNTIME_VER}.zip")
44 else()
45 if(APPLE)
46 set(ONNXRUNTIME_URL "v${ONNXRUNTIME_VER}/onnxruntime-osx-universal2-${ONNXRUNTIME_VER}.tgz")
47 elseif(WIN32)
48 set(ONNXRUNTIME_BINARY_PLATFORM "x64")
49
50 # override if generator platform is set
51 if (CMAKE_GENERATOR_PLATFORM)
52 if (CMAKE_GENERATOR_PLATFORM STREQUAL "Win32")
53 set(ONNXRUNTIME_BINARY_PLATFORM "x86")
54 elseif (CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64" OR CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64EC")
55 set(ONNXRUNTIME_BINARY_PLATFORM "arm64")
56 elseif (CMAKE_GENERATOR_PLATFORM STREQUAL "ARM")
57 set(ONNXRUNTIME_BINARY_PLATFORM "arm")
58 endif()
59 elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
60 # or if building on arm64 machine
61 set(ONNXRUNTIME_BINARY_PLATFORM "arm64")
62 endif()
63
64 if (OCOS_USE_CUDA)
65 set(ONNXRUNTIME_URL "v${ONNXRUNTIME_VER}/onnxruntime-win-${ONNXRUNTIME_BINARY_PLATFORM}-gpu-${ONNXRUNTIME_VER}.zip")
66 else()
67 set(ONNXRUNTIME_URL "v${ONNXRUNTIME_VER}/onnxruntime-win-${ONNXRUNTIME_BINARY_PLATFORM}-${ONNXRUNTIME_VER}.zip")
68 endif()
69 else()
70 # Linux or other, using Linux package to retrieve the headers
71 if (OCOS_USE_CUDA)
72 set(ONNXRUNTIME_URL "v${ONNXRUNTIME_VER}/onnxruntime-linux-x64-gpu-${ONNXRUNTIME_VER}.tgz")
73 else()
74 set(ONNXRUNTIME_URL "v${ONNXRUNTIME_VER}/onnxruntime-linux-x64-${ONNXRUNTIME_VER}.tgz")
75 endif()
76
77 if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
78 set(ONNXRUNTIME_URL "v${ONNXRUNTIME_VER}/onnxruntime-linux-aarch64-${ONNXRUNTIME_VER}.tgz")
79 endif()
80 endif()
81
82 set(ort_fetch_URL "https://github.com/microsoft/onnxruntime/releases/download/${ONNXRUNTIME_URL}")
83 endif()
84
85 message(STATUS "ONNX Runtime URL: ${ort_fetch_URL}")
86 FetchContent_Declare(
87 onnxruntime
88 URL ${ort_fetch_URL}
89 )
90
91 FetchContent_makeAvailable(onnxruntime)
92
93 if (ANDROID)
94 set(ONNXRUNTIME_INCLUDE_DIR ${onnxruntime_SOURCE_DIR}/headers)
95 set(ONNXRUNTIME_LIB_DIR ${onnxruntime_SOURCE_DIR}/jni/${ANDROID_ABI})
96 message(STATUS "Android onnxruntime inc=${ONNXRUNTIME_INCLUDE_DIR} lib=${ONNXRUNTIME_LIB_DIR}")
97 elseif(IOS)
98 set(ONNXRUNTIME_INCLUDE_DIR ${onnxruntime_SOURCE_DIR}/Headers)
99 # TODO Update once CMake supports finding and linking to .xcframeworks, possibly in 3.28.
100 # https://gitlab.kitware.com/cmake/cmake/-/issues/21752
101 # https://gitlab.kitware.com/cmake/cmake/-/merge_requests/8619
102 # https://gitlab.kitware.com/cmake/cmake/-/merge_requests/8661
103 if(CMAKE_OSX_SYSROOT STREQUAL "iphoneos")
104 set(ONNXRUNTIME_LIB_DIR ${onnxruntime_SOURCE_DIR}/onnxruntime.xcframework/ios-arm64)
105 elseif(CMAKE_OSX_SYSROOT STREQUAL "iphonesimulator")
106 set(ONNXRUNTIME_LIB_DIR ${onnxruntime_SOURCE_DIR}/onnxruntime.xcframework/ios-arm64_x86_64-simulator)
107 else()
108 message(FATAL_ERROR "Unsupported CMAKE_OSX_SYSROOT value: ${CMAKE_OSX_SYSROOT}")
109 endif()
110 else()
111 set(ONNXRUNTIME_INCLUDE_DIR ${onnxruntime_SOURCE_DIR}/include)
112 set(ONNXRUNTIME_LIB_DIR ${onnxruntime_SOURCE_DIR}/lib)
113 endif()
114endif()
115
116if(NOT EXISTS ${ONNXRUNTIME_INCLUDE_DIR})
117 message(FATAL_ERROR "ONNX Runtime headers not found at ${ONNXRUNTIME_INCLUDE_DIR}")
118endif()
119