Add standard libs and frameworks deps to Swift PM manifest. (#2568)
Summary:
Pull Request resolved: https://github.com/pytorch/executorch/pull/2568
.
Reviewed By: huydhn, kirklandsign
Differential Revision: D55208040
fbshipit-source-id: bf3564dd702ac5566855aa917d392ccd493a326c
diff --git a/.swift/coreml_backend/dummy.swift b/.swift/coreml_backend/dummy.swift
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.swift/coreml_backend/dummy.swift
diff --git a/.swift/executorch/dummy.swift b/.swift/executorch/dummy.swift
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.swift/executorch/dummy.swift
diff --git a/.swift/mps_backend/dummy.swift b/.swift/mps_backend/dummy.swift
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.swift/mps_backend/dummy.swift
diff --git a/.swift/portable_backend/dummy.swift b/.swift/portable_backend/dummy.swift
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.swift/portable_backend/dummy.swift
diff --git a/.swift/xnnpack_backend/dummy.swift b/.swift/xnnpack_backend/dummy.swift
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.swift/xnnpack_backend/dummy.swift
diff --git a/Package.swift b/Package.swift
index 6392761..49c40bd 100644
--- a/Package.swift
+++ b/Package.swift
@@ -20,6 +20,8 @@
struct Framework {
let name: String
let checksum: String
+ var frameworks: [String] = []
+ var libraries: [String] = []
func target() -> Target {
.binaryTarget(
@@ -28,12 +30,30 @@
checksum: checksum
)
}
+
+ func dependencies() -> Target {
+ .target(
+ name: "\(name)_dependencies",
+ dependencies: [.target(name: name)],
+ path: ".swift/\(name)",
+ linkerSettings:
+ frameworks.map { .linkedFramework($0) } +
+ libraries.map { .linkedLibrary($0) }
+ )
+ }
}
let frameworks = [
Framework(
name: "coreml_backend",
- checksum: coreml_sha256
+ checksum: coreml_sha256,
+ frameworks: [
+ "Accelerate",
+ "CoreML",
+ ],
+ libraries: [
+ "sqlite3",
+ ]
),
Framework(
name: "executorch",
@@ -41,7 +61,12 @@
),
Framework(
name: "mps_backend",
- checksum: mps_sha256
+ checksum: mps_sha256,
+ frameworks: [
+ "Metal",
+ "MetalPerformanceShaders",
+ "MetalPerformanceShadersGraph",
+ ]
),
Framework(
name: "portable_backend",
@@ -58,8 +83,6 @@
platforms: [
.iOS(.v15),
],
- products: frameworks.map { framework in
- .library(name: framework.name, targets: [framework.name])
- },
- targets: frameworks.map { $0.target() }
+ products: frameworks.map { .library(name: $0.name, targets: ["\($0.name)_dependencies"]) },
+ targets: frameworks.flatMap { [$0.target(), $0.dependencies()] }
)