@@ -20,6 +20,8 @@ let xnnpack_sha256 = "3fd6e4e1d9687eb25e2638bb3dfbc429b736cbf47e7ed769f1dbec6225
20
20
struct Framework {
21
21
let name : String
22
22
let checksum : String
23
+ var frameworks : [ String ] = [ ]
24
+ var libraries : [ String ] = [ ]
23
25
24
26
func target( ) -> Target {
25
27
. binaryTarget(
@@ -28,20 +30,43 @@ struct Framework {
28
30
checksum: checksum
29
31
)
30
32
}
33
+
34
+ func dependencies( ) -> Target {
35
+ . target(
36
+ name: " \( name) _dependencies " ,
37
+ dependencies: [ . target( name: name) ] ,
38
+ path: " .swift/ \( name) " ,
39
+ linkerSettings:
40
+ frameworks. map { . linkedFramework( $0) } +
41
+ libraries. map { . linkedLibrary( $0) }
42
+ )
43
+ }
31
44
}
32
45
33
46
let frameworks = [
34
47
Framework (
35
48
name: " coreml_backend " ,
36
- checksum: coreml_sha256
49
+ checksum: coreml_sha256,
50
+ frameworks: [
51
+ " Accelerate " ,
52
+ " CoreML " ,
53
+ ] ,
54
+ libraries: [
55
+ " sqlite3 " ,
56
+ ]
37
57
) ,
38
58
Framework (
39
59
name: " executorch " ,
40
60
checksum: executorch_sha256
41
61
) ,
42
62
Framework (
43
63
name: " mps_backend " ,
44
- checksum: mps_sha256
64
+ checksum: mps_sha256,
65
+ frameworks: [
66
+ " Metal " ,
67
+ " MetalPerformanceShaders " ,
68
+ " MetalPerformanceShadersGraph " ,
69
+ ]
45
70
) ,
46
71
Framework (
47
72
name: " portable_backend " ,
@@ -58,8 +83,6 @@ let package = Package(
58
83
platforms: [
59
84
. iOS( . v15) ,
60
85
] ,
61
- products: frameworks. map { framework in
62
- . library( name: framework. name, targets: [ framework. name] )
63
- } ,
64
- targets: frameworks. map { $0. target ( ) }
86
+ products: frameworks. map { . library( name: $0. name, targets: [ " \( $0. name) _dependencies " ] ) } ,
87
+ targets: frameworks. flatMap { [ $0. target ( ) , $0. dependencies ( ) ] }
65
88
)
0 commit comments