Skip to content

Commit 3b4a9e8

Browse files
shoumikhinfacebook-github-bot
authored andcommitted
Refactor Swift package structure. (#2851)
Summary: Pull Request resolved: #2851 . Reviewed By: digantdesai Differential Revision: D55762167 fbshipit-source-id: 24550d4f549f0467894e546c6d3aa669af4545b5
1 parent ac5dd30 commit 3b4a9e8

File tree

1 file changed

+51
-76
lines changed

1 file changed

+51
-76
lines changed

Package.swift

Lines changed: 51 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -9,95 +9,70 @@
99

1010
import PackageDescription
1111

12-
let url = "https://ossci-ios.s3.amazonaws.com/executorch"
1312
let version = "0.1.0"
14-
let coreml_sha256 = "78d853d87be478696e56e658aa4ff17d47ae185a9a6a36316c821fa8b2d3aacd"
15-
let custom_sha256 = "f059f6716298403dff89a952a70e323c54911be140d05f2467bd5cc61aaefae3"
16-
let executorch_sha256 = "ba9a0c2b061afaedbc3c5454040a598b1371170bd9d9a30b7163c20e23339841"
17-
let mps_sha256 = "39542a8671cca1aa627102aa47785d0f6e2dfe9a40e2c22288a755057b00fbfa"
18-
let optimized_sha256 = "1d84fa16197bb6f0dec01aaa29d2a140c0e14d8e5e92630a7b4dd6f48012506d"
19-
let portable_sha256 = "4993904f89ecb4476677ff3c072ed1a314a608170f10d364cfd23947851ccbf3"
20-
let quantized_sha256 = "8d35ee0e7ca77c19782eaea07a1888f576cda679f8a4a5edb03d80ebe858047e"
21-
let xnnpack_sha256 = "380e5185c4c48ede7cc0d0f0657ffb26df83cd9f55813d78593aea8a93942caf"
22-
23-
struct Framework {
24-
let name: String
25-
let checksum: String
26-
var frameworks: [String] = []
27-
var libraries: [String] = []
28-
29-
func target() -> Target {
30-
.binaryTarget(
31-
name: name,
32-
url: "\(url)/\(name)-\(version).zip",
33-
checksum: checksum
34-
)
35-
}
36-
37-
func dependencies() -> Target {
38-
.target(
39-
name: "\(name)_dependencies",
40-
dependencies: [.target(name: name)],
41-
path: ".swift/\(name)",
42-
linkerSettings:
43-
frameworks.map { .linkedFramework($0) } +
44-
libraries.map { .linkedLibrary($0) }
45-
)
46-
}
47-
}
48-
49-
let frameworks = [
50-
Framework(
51-
name: "coreml_backend",
52-
checksum: coreml_sha256,
53-
frameworks: [
13+
let url = "https://ossci-ios.s3.amazonaws.com/executorch/"
14+
let deliverables = [
15+
"coreml_backend": [
16+
"sha256": "78d853d87be478696e56e658aa4ff17d47ae185a9a6a36316c821fa8b2d3aacd",
17+
"frameworks": [
5418
"Accelerate",
5519
"CoreML",
5620
],
57-
libraries: [
21+
"libraries": [
5822
"sqlite3",
59-
]
60-
),
61-
Framework(
62-
name: "custom_backend",
63-
checksum: custom_sha256
64-
),
65-
Framework(
66-
name: "executorch",
67-
checksum: executorch_sha256
68-
),
69-
Framework(
70-
name: "mps_backend",
71-
checksum: mps_sha256,
72-
frameworks: [
23+
],
24+
],
25+
"custom_backend": [
26+
"sha256": "f059f6716298403dff89a952a70e323c54911be140d05f2467bd5cc61aaefae3",
27+
],
28+
"executorch": [
29+
"sha256": "ba9a0c2b061afaedbc3c5454040a598b1371170bd9d9a30b7163c20e23339841",
30+
],
31+
"mps_backend": [
32+
"sha256": "39542a8671cca1aa627102aa47785d0f6e2dfe9a40e2c22288a755057b00fbfa",
33+
"frameworks": [
7334
"Metal",
7435
"MetalPerformanceShaders",
7536
"MetalPerformanceShadersGraph",
76-
]
77-
),
78-
Framework(
79-
name: "optimized_backend",
80-
checksum: optimized_sha256
81-
),
82-
Framework(
83-
name: "portable_backend",
84-
checksum: portable_sha256
85-
),
86-
Framework(
87-
name: "quantized_backend",
88-
checksum: quantized_sha256
89-
),
90-
Framework(
91-
name: "xnnpack_backend",
92-
checksum: xnnpack_sha256
93-
)
37+
],
38+
],
39+
"optimized_backend": [
40+
"sha256": "1d84fa16197bb6f0dec01aaa29d2a140c0e14d8e5e92630a7b4dd6f48012506d",
41+
],
42+
"portable_backend": [
43+
"sha256": "4993904f89ecb4476677ff3c072ed1a314a608170f10d364cfd23947851ccbf3",
44+
],
45+
"quantized_backend": [
46+
"sha256": "8d35ee0e7ca77c19782eaea07a1888f576cda679f8a4a5edb03d80ebe858047e",
47+
],
48+
"xnnpack_backend": [
49+
"sha256": "380e5185c4c48ede7cc0d0f0657ffb26df83cd9f55813d78593aea8a93942caf",
50+
],
9451
]
9552

9653
let package = Package(
9754
name: "executorch",
9855
platforms: [
9956
.iOS(.v15),
10057
],
101-
products: frameworks.map { .library(name: $0.name, targets: ["\($0.name)_dependencies"]) },
102-
targets: frameworks.flatMap { [$0.target(), $0.dependencies()] }
58+
products: deliverables.keys.map { key in
59+
.library(name: key, targets: ["\(key)_dependencies"])
60+
}.sorted { $0.name < $1.name },
61+
targets: deliverables.flatMap { key, value -> [Target] in
62+
[
63+
.binaryTarget(
64+
name: key,
65+
url: "\(url)\(key)-\(version).zip",
66+
checksum: value["sha256"] as? String ?? ""
67+
),
68+
.target(
69+
name: "\(key)_dependencies",
70+
dependencies: [.target(name: key)],
71+
path: ".swift/\(key)",
72+
linkerSettings:
73+
(value["frameworks"] as? [String] ?? []).map { .linkedFramework($0) } +
74+
(value["libraries"] as? [String] ?? []).map { .linkedLibrary($0) }
75+
),
76+
]
77+
}
10378
)

0 commit comments

Comments
 (0)