11c7dd6dd4
* update to 1.18.0 resources * Update Package.swift Co-authored-by: Edward Chen <18449977+edgchen1@users.noreply.github.com> * update --------- Co-authored-by: rachguo <rachguo@rachguos-Mini.attlocal.net> Co-authored-by: Edward Chen <18449977+edgchen1@users.noreply.github.com>
116 lines
5.2 KiB
Swift
116 lines
5.2 KiB
Swift
// swift-tools-version: 5.6
|
|
// The swift-tools-version declares the minimum version of Swift required to build this package and MUST be the first
|
|
// line of this file. 5.6 is required to support zip files for the pod archive binaryTarget.
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
//
|
|
// A user of the Swift Package Manager (SPM) package will consume this file directly from the ORT SPM github repository.
|
|
// For context, the end user's config will look something like:
|
|
//
|
|
// dependencies: [
|
|
// .package(url: "https://github.com/microsoft/onnxruntime-swift-package-manager", from: "1.16.0"),
|
|
// ...
|
|
// ],
|
|
// NOTE: For specifying valid and latest release version above, please refer to this page:
|
|
// https://github.com/microsoft/onnxruntime-swift-package-manager/releases
|
|
|
|
import PackageDescription
|
|
import class Foundation.ProcessInfo
|
|
|
|
let package = Package(
|
|
name: "onnxruntime",
|
|
platforms: [.iOS(.v12),
|
|
.macOS(.v11)],
|
|
products: [
|
|
.library(name: "onnxruntime",
|
|
type: .static,
|
|
targets: ["OnnxRuntimeBindings"]),
|
|
.library(name: "onnxruntime_extensions",
|
|
type: .static,
|
|
targets: ["OnnxRuntimeExtensions"]),
|
|
],
|
|
dependencies: [],
|
|
targets: [
|
|
.target(name: "OnnxRuntimeBindings",
|
|
dependencies: ["onnxruntime"],
|
|
path: "objectivec",
|
|
exclude: ["ReadMe.md", "format_objc.sh", "test",
|
|
"ort_checkpoint.mm",
|
|
"ort_checkpoint_internal.h",
|
|
"ort_training_session_internal.h",
|
|
"ort_training_session.mm",
|
|
"include/ort_checkpoint.h",
|
|
"include/ort_training_session.h",
|
|
"include/onnxruntime_training.h"],
|
|
cxxSettings: [
|
|
.define("SPM_BUILD"),
|
|
]),
|
|
.testTarget(name: "OnnxRuntimeBindingsTests",
|
|
dependencies: ["OnnxRuntimeBindings"],
|
|
path: "swift/OnnxRuntimeBindingsTests",
|
|
resources: [
|
|
.copy("Resources/single_add.basic.ort")
|
|
]),
|
|
.target(name: "OnnxRuntimeExtensions",
|
|
dependencies: ["onnxruntime_extensions", "onnxruntime"],
|
|
path: "extensions",
|
|
cxxSettings: [
|
|
.define("ORT_SWIFT_PACKAGE_MANAGER_BUILD"),
|
|
]),
|
|
.testTarget(name: "OnnxRuntimeExtensionsTests",
|
|
dependencies: ["OnnxRuntimeExtensions", "OnnxRuntimeBindings"],
|
|
path: "swift/OnnxRuntimeExtensionsTests",
|
|
resources: [
|
|
.copy("Resources/decode_image.onnx")
|
|
]),
|
|
],
|
|
cxxLanguageStandard: .cxx17
|
|
)
|
|
|
|
// Add the ORT iOS Pod archive as a binary target.
|
|
//
|
|
// There are 2 scenarios:
|
|
//
|
|
// Release version of ORT SPM github repo:
|
|
// Target will be set to the latest released ORT iOS pod archive and its checksum.
|
|
//
|
|
// Current main of ORT SPM github repo:
|
|
// Target will be set to the pod archive built in sync with the current main objective-c source code.
|
|
|
|
// CI or local testing where you have built/obtained the iOS Pod archive matching the current source code.
|
|
// Requires the ORT_IOS_POD_LOCAL_PATH environment variable to be set to specify the location of the pod.
|
|
if let pod_archive_path = ProcessInfo.processInfo.environment["ORT_IOS_POD_LOCAL_PATH"] {
|
|
// ORT_IOS_POD_LOCAL_PATH MUST be a path that is relative to Package.swift.
|
|
//
|
|
// To build locally, tools/ci_build/github/apple/build_and_assemble_ios_pods.py can be used
|
|
// See https://onnxruntime.ai/docs/build/custom.html#ios
|
|
// Example command:
|
|
// python3 tools/ci_build/github/apple/build_and_assemble_ios_pods.py \
|
|
// --variant Full \
|
|
// --build-settings-file tools/ci_build/github/apple/default_full_ios_framework_build_settings.json
|
|
//
|
|
// This should produce the pod archive in build/ios_pod_staging, and ORT_IOS_POD_LOCAL_PATH can be set to
|
|
// "build/ios_pod_staging/pod-archive-onnxruntime-c-???.zip" where '???' is replaced by the version info in the
|
|
// actual filename.
|
|
package.targets.append(Target.binaryTarget(name: "onnxruntime", path: pod_archive_path))
|
|
|
|
} else {
|
|
// ORT 1.18.0 release
|
|
package.targets.append(
|
|
Target.binaryTarget(name: "onnxruntime",
|
|
url: "https://download.onnxruntime.ai/pod-archive-onnxruntime-c-1.18.0.zip",
|
|
checksum: "9f196b7d09129177f529be63a91e18731ab1ccc830828e29edcbe95bd652fa5c")
|
|
)
|
|
}
|
|
|
|
if let ext_pod_archive_path = ProcessInfo.processInfo.environment["ORT_EXTENSIONS_IOS_POD_LOCAL_PATH"] {
|
|
package.targets.append(Target.binaryTarget(name: "onnxruntime_extensions", path: ext_pod_archive_path))
|
|
} else {
|
|
// ORT Extensions 0.11.0 release
|
|
package.targets.append(
|
|
Target.binaryTarget(name: "onnxruntime_extensions",
|
|
url: "https://download.onnxruntime.ai/pod-archive-onnxruntime-extensions-c-0.11.0.zip",
|
|
checksum: "289e8b7847116744946003ed21e1ac9ee4897c3aca48e261238e329634c27c0a")
|
|
)
|
|
} |