@@ -101,20 +101,24 @@ if warningsAsErrorsCondition {
101
101
// sharedSwiftSettings.append(.unsafeFlags(["-Wwarning", "concurrency"]))
102
102
}
103
103
104
- // MARK: - [env] OPENSWIFTUI_BRIDGE_FRAMEWORK
105
-
106
- let bridgeFramework = Context . environment [ " OPENSWIFTUI_BRIDGE_FRAMEWORK " ] ?? " SwiftUI "
104
+ // MARK: - CoreGraphicsShims Target
107
105
108
- // MARK: - Targets
109
-
110
- let cOpenSwiftUITarget = Target . target (
111
- name: " COpenSwiftUI " ,
112
- publicHeadersPath: " . " ,
113
- cSettings: sharedCSettings + [
114
- . headerSearchPath( " ../OpenSwiftUI_SPI " ) ,
106
+ let coreGraphicsShimsTarget = Target . target (
107
+ name: " CoreGraphicsShims " ,
108
+ swiftSettings: sharedSwiftSettings
109
+ )
110
+ let coreGraphicsShimsTestTarget = Target . testTarget (
111
+ name: " CoreGraphicsShimsTests " ,
112
+ dependencies: [
113
+ " CoreGraphicsShims " ,
114
+ . product( name: " Numerics " , package : " swift-numerics " ) ,
115
115
] ,
116
- cxxSettings: sharedCxxSettings
116
+ exclude: [ " README.md " ] ,
117
+ swiftSettings: sharedSwiftSettings
117
118
)
119
+
120
+ // MARK: - OpenSwiftUISPI Target
121
+
118
122
let openSwiftUISPITarget = Target . target (
119
123
name: " OpenSwiftUI_SPI " ,
120
124
dependencies: [
@@ -125,10 +129,21 @@ let openSwiftUISPITarget = Target.target(
125
129
cxxSettings: sharedCxxSettings,
126
130
linkerSettings: [ . unsafeFlags( [ " -lMobileGestalt " ] , . when( platforms: . darwinPlatforms) ) ] // For MGCopyAnswer API support
127
131
)
128
- let coreGraphicsShims = Target . target (
129
- name: " CoreGraphicsShims " ,
132
+
133
+ let openSwiftUISPITestTarget = Target . testTarget (
134
+ name: " OpenSwiftUI_SPITests " ,
135
+ dependencies: [
136
+ " OpenSwiftUI_SPI " ,
137
+ // For ProtocolDescriptor symbol linking
138
+ " OpenSwiftUI " ,
139
+ . product( name: " Numerics " , package : " swift-numerics " ) ,
140
+ ] ,
141
+ exclude: [ " README.md " ] ,
130
142
swiftSettings: sharedSwiftSettings
131
143
)
144
+
145
+ // MARK: - OpenSwiftUICore Target
146
+
132
147
// NOTE:
133
148
// In macOS: Mac Catalyst App will use macOS-varient build of SwiftUI.framework in /System/Library/Framework and iOS varient of SwiftUI.framework in /System/iOSSupport/System/Library/Framework
134
149
// Add `|| Mac Catalyst` check everywhere in `OpenSwiftUICore` and `OpenSwiftUI_SPI`.
@@ -142,6 +157,29 @@ let openSwiftUICoreTarget = Target.target(
142
157
] ,
143
158
swiftSettings: sharedSwiftSettings
144
159
)
160
+
161
+ let openSwiftUICoreTestTarget = Target . testTarget (
162
+ name: " OpenSwiftUICoreTests " ,
163
+ dependencies: [
164
+ " OpenSwiftUI " , // NOTE: For the Glue link logic only, do not call `import OpenSwiftUI` in this target
165
+ " OpenSwiftUICore " ,
166
+ . product( name: " Numerics " , package : " swift-numerics " ) ,
167
+ ] ,
168
+ exclude: [ " README.md " ] ,
169
+ swiftSettings: sharedSwiftSettings
170
+ )
171
+
172
+ // MARK: OpenSwiftUI Target
173
+
174
+ let cOpenSwiftUITarget = Target . target (
175
+ name: " COpenSwiftUI " ,
176
+ publicHeadersPath: " . " ,
177
+ cSettings: sharedCSettings + [
178
+ . headerSearchPath( " ../OpenSwiftUI_SPI " ) ,
179
+ ] ,
180
+ cxxSettings: sharedCxxSettings
181
+ )
182
+
145
183
let openSwiftUITarget = Target . target (
146
184
name: " OpenSwiftUI " ,
147
185
dependencies: [
@@ -154,58 +192,48 @@ let openSwiftUITarget = Target.target(
154
192
] ,
155
193
swiftSettings: sharedSwiftSettings
156
194
)
195
+
157
196
let openSwiftUIExtensionTarget = Target . target (
158
197
name: " OpenSwiftUIExtension " ,
159
198
dependencies: [
160
199
" OpenSwiftUI " ,
161
200
] ,
162
201
swiftSettings: sharedSwiftSettings
163
202
)
164
- let openSwiftUIBridgeTarget = Target . target (
165
- name: " OpenSwiftUIBridge " ,
166
- dependencies: [
167
- " OpenSwiftUI " ,
168
- ] ,
169
- sources: [ " Bridgeable.swift " , bridgeFramework] ,
170
- swiftSettings: sharedSwiftSettings
171
- )
172
- let openSwiftUISPITestTarget = Target . testTarget (
173
- name: " OpenSwiftUI_SPITests " ,
203
+
204
+ let openSwiftUITestTarget = Target . testTarget (
205
+ name: " OpenSwiftUITests " ,
174
206
dependencies: [
175
- " OpenSwiftUI_SPI " ,
176
- // For ProtocolDescriptor symbol linking
177
207
" OpenSwiftUI " ,
178
- . product( name: " Numerics " , package : " swift-numerics " ) ,
179
208
] ,
180
209
exclude: [ " README.md " ] ,
181
210
swiftSettings: sharedSwiftSettings
182
211
)
183
- let openSwiftUICoreTestTarget = Target . testTarget (
184
- name: " OpenSwiftUICoreTests " ,
212
+
213
+ let openSwiftUICompatibilityTestTarget = Target . testTarget (
214
+ name: " OpenSwiftUICompatibilityTests " ,
185
215
dependencies: [
186
- " OpenSwiftUI " , // NOTE: For the Glue link logic only, do not call `import OpenSwiftUI` in this target
187
- " OpenSwiftUICore " ,
188
216
. product( name: " Numerics " , package : " swift-numerics " ) ,
189
217
] ,
190
218
exclude: [ " README.md " ] ,
191
219
swiftSettings: sharedSwiftSettings
192
220
)
193
- let openSwiftUITestTarget = Target . testTarget (
194
- name: " OpenSwiftUITests " ,
221
+
222
+ // MARK: - [env] OPENSWIFTUI_BRIDGE_FRAMEWORK
223
+
224
+ let bridgeFramework = Context . environment [ " OPENSWIFTUI_BRIDGE_FRAMEWORK " ] ?? " SwiftUI "
225
+
226
+ // MARK: - OpenSwiftUIBridge Target
227
+
228
+ let openSwiftUIBridgeTarget = Target . target (
229
+ name: " OpenSwiftUIBridge " ,
195
230
dependencies: [
196
231
" OpenSwiftUI " ,
197
232
] ,
198
- exclude: [ " README.md " ] ,
199
- swiftSettings: sharedSwiftSettings
200
- )
201
- let openSwiftUICompatibilityTestTarget = Target . testTarget (
202
- name: " OpenSwiftUICompatibilityTests " ,
203
- dependencies: [
204
- . product( name: " Numerics " , package : " swift-numerics " ) ,
205
- ] ,
206
- exclude: [ " README.md " ] ,
233
+ sources: [ " Bridgeable.swift " , bridgeFramework] ,
207
234
swiftSettings: sharedSwiftSettings
208
235
)
236
+
209
237
let openSwiftUIBridgeTestTarget = Target . testTarget (
210
238
name: " OpenSwiftUIBridgeTests " ,
211
239
dependencies: [
@@ -215,11 +243,26 @@ let openSwiftUIBridgeTestTarget = Target.testTarget(
215
243
sources: [ " BridgeableTests.swift " , bridgeFramework] ,
216
244
swiftSettings: sharedSwiftSettings
217
245
)
218
- let coreGraphicsShimsTestTarget = Target . testTarget (
219
- name: " CoreGraphicsShimsTests " ,
246
+
247
+ // MARK: - OpenSwiftUISymbolDualTests Target
248
+
249
+ let openSwiftUISymbolDualTestsHelperTarget = Target . target (
250
+ name: " OpenSwiftUISymbolDualTestsHelper " ,
220
251
dependencies: [
221
- " CoreGraphicsShims " ,
222
- . product( name: " Numerics " , package : " swift-numerics " ) ,
252
+ . product( name: " SymbolLocator " , package : " SymbolLocator " ) ,
253
+ ] ,
254
+ publicHeadersPath: " . " ,
255
+ cSettings: sharedCSettings + [
256
+ . headerSearchPath( " ../OpenSwiftUI_SPI " ) ,
257
+ ] ,
258
+ cxxSettings: sharedCxxSettings
259
+ )
260
+
261
+ let openSwiftUISymbolDualTestsTarget = Target . testTarget (
262
+ name: " OpenSwiftUISymbolDualTests " ,
263
+ dependencies: [
264
+ " OpenSwiftUI " ,
265
+ . target( name: " OpenSwiftUISymbolDualTestsHelper " ) ,
223
266
] ,
224
267
exclude: [ " README.md " ] ,
225
268
swiftSettings: sharedSwiftSettings
@@ -255,6 +298,7 @@ let package = Package(
255
298
products: products,
256
299
dependencies: [
257
300
. package ( url: " https://github.com/apple/swift-numerics.git " , from: " 1.0.2 " ) ,
301
+ . package ( url: " https://github.com/OpenSwiftUIProject/SymbolLocator.git " , from: " 0.1.0 " ) ,
258
302
] ,
259
303
targets: [
260
304
// TODO: Add SwiftGTK as an backend alternative for UIKit/AppKit on Linux and macOS
@@ -267,21 +311,27 @@ let package = Package(
267
311
]
268
312
) ,
269
313
. binaryTarget( name: " CoreServices " , path: " PrivateFrameworks/CoreServices.xcframework " ) ,
270
- coreGraphicsShims,
271
- cOpenSwiftUITarget,
314
+
315
+ coreGraphicsShimsTarget,
316
+ coreGraphicsShimsTestTarget,
317
+
272
318
openSwiftUISPITarget,
319
+ openSwiftUISPITestTarget,
320
+
273
321
openSwiftUICoreTarget,
322
+ openSwiftUICoreTestTarget,
323
+
324
+ cOpenSwiftUITarget,
274
325
openSwiftUITarget,
275
-
276
326
openSwiftUIExtensionTarget,
277
- openSwiftUIBridgeTarget,
278
-
279
- openSwiftUISPITestTarget,
280
- openSwiftUICoreTestTarget,
281
327
openSwiftUITestTarget,
282
328
openSwiftUICompatibilityTestTarget,
329
+
330
+ openSwiftUIBridgeTarget,
283
331
openSwiftUIBridgeTestTarget,
284
- coreGraphicsShimsTestTarget,
332
+
333
+ openSwiftUISymbolDualTestsHelperTarget,
334
+ openSwiftUISymbolDualTestsTarget
285
335
]
286
336
)
287
337
0 commit comments