microsoft/onnxruntime-extensions

Public

mirrored from https://github.com/microsoft/onnxruntime-extensionsAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
bcde705eecaa2e91e2666ccd14aa10fbf0deea94

Branches

Tags

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

Clone

HTTPS

Download ZIP

cmake/ext_ortlib.cmake

110lines · 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.15.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.15.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 set(ONNXRUNTIME_URL "v${ONNXRUNTIME_VER}/onnxruntime-win-${ONNXRUNTIME_BINARY_PLATFORM}-${ONNXRUNTIME_VER}.zip")
65 else()
66 # Linux or other, using Linux package to retrieve the headers
67 set(ONNXRUNTIME_URL "v${ONNXRUNTIME_VER}/onnxruntime-linux-x64-${ONNXRUNTIME_VER}.tgz")
68
69 if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
70 set(ONNXRUNTIME_URL "v${ONNXRUNTIME_VER}/onnxruntime-linux-aarch64-${ONNXRUNTIME_VER}.tgz")
71 endif()
72 endif()
73
74 set(ort_fetch_URL "https://github.com/microsoft/onnxruntime/releases/download/${ONNXRUNTIME_URL}")
75 endif()
76
77 message(STATUS "ONNX Runtime URL: ${ort_fetch_URL}")
78 FetchContent_Declare(
79 onnxruntime
80 URL ${ort_fetch_URL}
81 )
82
83 FetchContent_makeAvailable(onnxruntime)
84
85 if (ANDROID)
86 set(ONNXRUNTIME_INCLUDE_DIR ${onnxruntime_SOURCE_DIR}/headers)
87 set(ONNXRUNTIME_LIB_DIR ${onnxruntime_SOURCE_DIR}/jni/${ANDROID_ABI})
88 message(STATUS "Android onnxruntime inc=${ONNXRUNTIME_INCLUDE_DIR} lib=${ONNXRUNTIME_LIB_DIR}")
89 elseif(IOS)
90 set(ONNXRUNTIME_INCLUDE_DIR ${onnxruntime_SOURCE_DIR}/Headers)
91 # TODO Update once CMake supports finding and linking to .xcframeworks, possibly in 3.28.
92 # https://gitlab.kitware.com/cmake/cmake/-/issues/21752
93 # https://gitlab.kitware.com/cmake/cmake/-/merge_requests/8619
94 # https://gitlab.kitware.com/cmake/cmake/-/merge_requests/8661
95 if(CMAKE_OSX_SYSROOT STREQUAL "iphoneos")
96 set(ONNXRUNTIME_LIB_DIR ${onnxruntime_SOURCE_DIR}/onnxruntime.xcframework/ios-arm64)
97 elseif(CMAKE_OSX_SYSROOT STREQUAL "iphonesimulator")
98 set(ONNXRUNTIME_LIB_DIR ${onnxruntime_SOURCE_DIR}/onnxruntime.xcframework/ios-arm64_x86_64-simulator)
99 else()
100 message(FATAL_ERROR "Unsupported CMAKE_OSX_SYSROOT value: ${CMAKE_OSX_SYSROOT}")
101 endif()
102 else()
103 set(ONNXRUNTIME_INCLUDE_DIR ${onnxruntime_SOURCE_DIR}/include)
104 set(ONNXRUNTIME_LIB_DIR ${onnxruntime_SOURCE_DIR}/lib)
105 endif()
106endif()
107
108if(NOT EXISTS ${ONNXRUNTIME_INCLUDE_DIR})
109 message(FATAL_ERROR "ONNX Runtime headers not found at ${ONNXRUNTIME_INCLUDE_DIR}")
110endif()