@@ -35,6 +35,19 @@ if let resourceDirPath = ProcessInfo.processInfo.environment["SWIFTCI_INSTALL_RP
35
35
packageLibraryLinkSettings = [ ]
36
36
}
37
37
38
+ // Common experimental flags to be added to all targets.
39
+ let commonExperimentalFeatures : [ SwiftSetting ] = [
40
+ . enableExperimentalFeature( " MemberImportVisibility " ) ,
41
+ ]
42
+
43
+ // Certain targets fail to compile with MemberImportVisibility enabled on 6.0.3
44
+ // but work with >=6.1. These targets opt in to using `swift6CompatibleExperimentalFeatures`.
45
+ #if swift(>=6.1)
46
+ let swift6CompatibleExperimentalFeatures = commonExperimentalFeatures
47
+ #else
48
+ let swift6CompatibleExperimentalFeatures : [ SwiftSetting ] = [ ]
49
+ #endif
50
+
38
51
/** SwiftPMDataModel is the subset of SwiftPM product that includes just its data model.
39
52
This allows some clients (such as IDEs) that use SwiftPM's data model but not its build system
40
53
to not have to depend on SwiftDriver, SwiftLLBuild, etc. We should probably have better names here,
@@ -152,7 +165,7 @@ let package = Package(
152
165
. target(
153
166
name: " PackageDescription " ,
154
167
exclude: [ " CMakeLists.txt " ] ,
155
- swiftSettings: [
168
+ swiftSettings: commonExperimentalFeatures + [
156
169
. define( " USE_IMPL_ONLY_IMPORTS " ) ,
157
170
. unsafeFlags( [ " -package-description-version " , " 999.0 " ] ) ,
158
171
. unsafeFlags( [ " -enable-library-evolution " ] ) ,
@@ -169,7 +182,7 @@ let package = Package(
169
182
// AppleProductTypes library when they import it without further
170
183
// messing with the manifest loader.
171
184
dependencies: [ " PackageDescription " ] ,
172
- swiftSettings: [
185
+ swiftSettings: commonExperimentalFeatures + [
173
186
. unsafeFlags( [ " -package-description-version " , " 999.0 " ] ) ,
174
187
. unsafeFlags( [ " -enable-library-evolution " ] , . when( platforms: [ . macOS] ) ) ,
175
188
. unsafeFlags( [ " -Xfrontend " , " -module-link-name " , " -Xfrontend " , " AppleProductTypes " ] )
@@ -181,7 +194,7 @@ let package = Package(
181
194
. target(
182
195
name: " PackagePlugin " ,
183
196
exclude: [ " CMakeLists.txt " ] ,
184
- swiftSettings: [
197
+ swiftSettings: commonExperimentalFeatures + [
185
198
. unsafeFlags( [ " -package-description-version " , " 999.0 " ] ) ,
186
199
. unsafeFlags( [ " -enable-library-evolution " ] ) ,
187
200
] ,
@@ -199,7 +212,7 @@ let package = Package(
199
212
" SPMBuildCore " ,
200
213
] ,
201
214
exclude: [ " CMakeLists.txt " ] ,
202
- swiftSettings: [
215
+ swiftSettings: commonExperimentalFeatures + [
203
216
. enableExperimentalFeature( " AccessLevelOnImport " ) ,
204
217
. unsafeFlags( [ " -static " ] ) ,
205
218
]
@@ -215,7 +228,7 @@ let package = Package(
215
228
. product( name: " SystemPackage " , package : " swift-system " ) ,
216
229
] ,
217
230
exclude: [ " CMakeLists.txt " ] ,
218
- swiftSettings: [
231
+ swiftSettings: commonExperimentalFeatures + [
219
232
. enableExperimentalFeature( " StrictConcurrency " ) ,
220
233
. enableExperimentalFeature( " AccessLevelOnImport " ) ,
221
234
. enableExperimentalFeature( " InternalImportsByDefault " ) ,
@@ -235,7 +248,7 @@ let package = Package(
235
248
. product( name: " SystemPackage " , package : " swift-system " ) ,
236
249
] ,
237
250
exclude: [ " CMakeLists.txt " , " Vendor/README.md " ] ,
238
- swiftSettings: [
251
+ swiftSettings: swift6CompatibleExperimentalFeatures + [
239
252
. enableExperimentalFeature( " StrictConcurrency " ) ,
240
253
. enableExperimentalFeature( " AccessLevelOnImport " ) ,
241
254
. unsafeFlags( [ " -static " ] ) ,
@@ -247,7 +260,7 @@ let package = Package(
247
260
name: " LLBuildManifest " ,
248
261
dependencies: [ " Basics " ] ,
249
262
exclude: [ " CMakeLists.txt " ] ,
250
- swiftSettings: [
263
+ swiftSettings: commonExperimentalFeatures + [
251
264
. unsafeFlags( [ " -static " ] ) ,
252
265
]
253
266
) ,
@@ -263,7 +276,7 @@ let package = Package(
263
276
" PackageSigning " ,
264
277
] ,
265
278
exclude: [ " CMakeLists.txt " ] ,
266
- swiftSettings: [
279
+ swiftSettings: commonExperimentalFeatures + [
267
280
. unsafeFlags( [ " -static " ] ) ,
268
281
]
269
282
) ,
@@ -276,7 +289,7 @@ let package = Package(
276
289
" PackageModel " ,
277
290
] ,
278
291
exclude: [ " CMakeLists.txt " ] ,
279
- swiftSettings: [
292
+ swiftSettings: commonExperimentalFeatures + [
280
293
. unsafeFlags( [ " -static " ] ) ,
281
294
]
282
295
) ,
@@ -286,7 +299,7 @@ let package = Package(
286
299
name: " SPMLLBuild " ,
287
300
dependencies: [ " Basics " ] ,
288
301
exclude: [ " CMakeLists.txt " ] ,
289
- swiftSettings: [
302
+ swiftSettings: commonExperimentalFeatures + [
290
303
. unsafeFlags( [ " -static " ] ) ,
291
304
]
292
305
) ,
@@ -298,7 +311,7 @@ let package = Package(
298
311
name: " PackageModel " ,
299
312
dependencies: [ " Basics " ] ,
300
313
exclude: [ " CMakeLists.txt " , " README.md " ] ,
301
- swiftSettings: [
314
+ swiftSettings: swift6CompatibleExperimentalFeatures + [
302
315
. unsafeFlags( [ " -static " ] ) ,
303
316
]
304
317
) ,
@@ -312,7 +325,7 @@ let package = Package(
312
325
" PackageModel " ,
313
326
] + swiftSyntaxDependencies( [ " SwiftBasicFormat " , " SwiftDiagnostics " , " SwiftIDEUtils " , " SwiftParser " , " SwiftSyntax " , " SwiftSyntaxBuilder " ] ) ,
314
327
exclude: [ " CMakeLists.txt " ] ,
315
- swiftSettings: [
328
+ swiftSettings: commonExperimentalFeatures + [
316
329
. unsafeFlags( [ " -static " ] ) ,
317
330
]
318
331
) ,
@@ -326,7 +339,7 @@ let package = Package(
326
339
" SourceControl " ,
327
340
] ,
328
341
exclude: [ " CMakeLists.txt " , " README.md " ] ,
329
- swiftSettings: [
342
+ swiftSettings: commonExperimentalFeatures + [
330
343
. unsafeFlags( [ " -static " ] ) ,
331
344
]
332
345
) ,
@@ -343,7 +356,7 @@ let package = Package(
343
356
. product( name: " OrderedCollections " , package : " swift-collections " ) ,
344
357
] ,
345
358
exclude: [ " CMakeLists.txt " , " README.md " ] ,
346
- swiftSettings: [
359
+ swiftSettings: commonExperimentalFeatures + [
347
360
. unsafeFlags( [ " -static " ] ) ,
348
361
]
349
362
) ,
@@ -357,7 +370,7 @@ let package = Package(
357
370
exclude: [
358
371
" Formats/v1.md " ,
359
372
] ,
360
- swiftSettings: [
373
+ swiftSettings: commonExperimentalFeatures + [
361
374
. unsafeFlags( [ " -static " ] ) ,
362
375
]
363
376
) ,
@@ -372,7 +385,7 @@ let package = Package(
372
385
" PackageModel " ,
373
386
" SourceControl " ,
374
387
] ,
375
- swiftSettings: [
388
+ swiftSettings: swift6CompatibleExperimentalFeatures + [
376
389
. unsafeFlags( [ " -static " ] ) ,
377
390
]
378
391
) ,
@@ -385,7 +398,7 @@ let package = Package(
385
398
" Basics " ,
386
399
" PackageCollectionsModel " ,
387
400
] ,
388
- swiftSettings: [
401
+ swiftSettings: commonExperimentalFeatures + [
389
402
. unsafeFlags( [ " -static " ] ) ,
390
403
]
391
404
) ,
@@ -397,7 +410,7 @@ let package = Package(
397
410
" PackageModel " ,
398
411
] ,
399
412
exclude: [ " CMakeLists.txt " ] ,
400
- swiftSettings: [
413
+ swiftSettings: commonExperimentalFeatures + [
401
414
. unsafeFlags( [ " -static " ] ) ,
402
415
]
403
416
) ,
@@ -411,7 +424,7 @@ let package = Package(
411
424
" PackageModel " ,
412
425
] ,
413
426
exclude: [ " CMakeLists.txt " ] ,
414
- swiftSettings: [
427
+ swiftSettings: commonExperimentalFeatures + [
415
428
. unsafeFlags( [ " -static " ] ) ,
416
429
]
417
430
) ,
@@ -427,7 +440,7 @@ let package = Package(
427
440
. product( name: " OrderedCollections " , package : " swift-collections " ) ,
428
441
] ,
429
442
exclude: [ " CMakeLists.txt " ] ,
430
- swiftSettings: [
443
+ swiftSettings: commonExperimentalFeatures + [
431
444
. unsafeFlags( [ " -static " ] ) ,
432
445
]
433
446
) ,
@@ -445,7 +458,7 @@ let package = Package(
445
458
" DriverSupport " ,
446
459
] ,
447
460
exclude: [ " CMakeLists.txt " ] ,
448
- swiftSettings: [
461
+ swiftSettings: commonExperimentalFeatures + [
449
462
. unsafeFlags( [ " -static " ] ) ,
450
463
]
451
464
) ,
@@ -457,7 +470,7 @@ let package = Package(
457
470
. product( name: " SwiftDriver " , package : " swift-driver " ) ,
458
471
] ,
459
472
exclude: [ " CMakeLists.txt " ] ,
460
- swiftSettings: [
473
+ swiftSettings: commonExperimentalFeatures + [
461
474
. unsafeFlags( [ " -static " ] ) ,
462
475
]
463
476
) ,
@@ -470,7 +483,7 @@ let package = Package(
470
483
. product( name: " OrderedCollections " , package : " swift-collections " ) ,
471
484
] ,
472
485
exclude: [ " CMakeLists.txt " ] ,
473
- swiftSettings: [
486
+ swiftSettings: commonExperimentalFeatures + [
474
487
. unsafeFlags( [ " -static " ] ) ,
475
488
]
476
489
) ,
@@ -480,7 +493,8 @@ let package = Package(
480
493
" SPMBuildCore " ,
481
494
" PackageGraph " ,
482
495
] ,
483
- exclude: [ " CMakeLists.txt " , " README.md " ]
496
+ exclude: [ " CMakeLists.txt " , " README.md " ] ,
497
+ swiftSettings: commonExperimentalFeatures
484
498
) ,
485
499
. target(
486
500
/** High level functionality */
@@ -497,7 +511,7 @@ let package = Package(
497
511
. product( name: " OrderedCollections " , package : " swift-collections " ) ,
498
512
] ,
499
513
exclude: [ " CMakeLists.txt " ] ,
500
- swiftSettings: [
514
+ swiftSettings: commonExperimentalFeatures + [
501
515
. unsafeFlags( [ " -static " ] ) ,
502
516
]
503
517
) ,
@@ -511,7 +525,7 @@ let package = Package(
511
525
" PackageRegistry " ,
512
526
" PackageSigning " ,
513
527
] ,
514
- swiftSettings: [
528
+ swiftSettings: commonExperimentalFeatures + [
515
529
. unsafeFlags( [ " -static " ] ) ,
516
530
]
517
531
) ,
@@ -533,7 +547,7 @@ let package = Package(
533
547
" SwiftBuildSupport " ,
534
548
] ,
535
549
exclude: [ " CMakeLists.txt " ] ,
536
- swiftSettings: [
550
+ swiftSettings: commonExperimentalFeatures + [
537
551
. unsafeFlags( [ " -static " ] ) ,
538
552
]
539
553
) ,
@@ -555,7 +569,7 @@ let package = Package(
555
569
" SwiftBuildSupport " ,
556
570
] + swiftSyntaxDependencies( [ " SwiftIDEUtils " ] ) ,
557
571
exclude: [ " CMakeLists.txt " , " README.md " ] ,
558
- swiftSettings: [
572
+ swiftSettings: swift6CompatibleExperimentalFeatures + [
559
573
. unsafeFlags( [ " -static " ] ) ,
560
574
]
561
575
) ,
@@ -571,7 +585,7 @@ let package = Package(
571
585
" PackageModel " ,
572
586
] ,
573
587
exclude: [ " CMakeLists.txt " , " README.md " ] ,
574
- swiftSettings: [
588
+ swiftSettings: commonExperimentalFeatures + [
575
589
. unsafeFlags( [ " -static " ] ) ,
576
590
]
577
591
) ,
@@ -587,7 +601,7 @@ let package = Package(
587
601
" PackageCollections " ,
588
602
" PackageModel " ,
589
603
] ,
590
- swiftSettings: [
604
+ swiftSettings: commonExperimentalFeatures + [
591
605
. unsafeFlags( [ " -static " ] ) ,
592
606
]
593
607
) ,
@@ -609,7 +623,7 @@ let package = Package(
609
623
" SPMBuildCore " ,
610
624
" Workspace " ,
611
625
] ,
612
- swiftSettings: [
626
+ swiftSettings: commonExperimentalFeatures + [
613
627
. unsafeFlags( [ " -static " ] ) ,
614
628
]
615
629
) ,
@@ -717,7 +731,7 @@ let package = Package(
717
731
name: " CompilerPluginSupport " ,
718
732
dependencies: [ " PackageDescription " ] ,
719
733
exclude: [ " CMakeLists.txt " ] ,
720
- swiftSettings: [
734
+ swiftSettings: commonExperimentalFeatures + [
721
735
. unsafeFlags( [ " -package-description-version " , " 999.0 " ] ) ,
722
736
. unsafeFlags( [ " -enable-library-evolution " ] ) ,
723
737
]
@@ -840,7 +854,8 @@ let package = Package(
840
854
) ,
841
855
. testTarget(
842
856
name: " PackageGraphTests " ,
843
- dependencies: [ " PackageGraph " , " _InternalTestSupport " ]
857
+ dependencies: [ " PackageGraph " , " _InternalTestSupport " ] ,
858
+ swiftSettings: commonExperimentalFeatures
844
859
) ,
845
860
. testTarget(
846
861
name: " PackageGraphPerformanceTests " ,
0 commit comments