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()] }
 )