1
- // swift-tools-version:5.9
1
+ // swift-tools-version:6.0
2
2
// The swift-tools-version declares the minimum version of Swift required to
3
3
// build this package.
4
4
16
16
// See the License for the specific language governing permissions and
17
17
// limitations under the License.
18
18
19
- import class Foundation. ProcessInfo
20
19
import PackageDescription
21
20
22
21
let firebaseVersion = " 12.0.0 "
@@ -439,6 +438,9 @@ let package = Package(
439
438
path: " FirebaseAppDistribution/Tests/Unit/Swift " ,
440
439
cSettings: [
441
440
. headerSearchPath( " ../../../.. " ) ,
441
+ ] ,
442
+ swiftSettings: [
443
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
442
444
]
443
445
) ,
444
446
@@ -459,7 +461,9 @@ let package = Package(
459
461
" ObjC " , " Public " ,
460
462
] ,
461
463
resources: [ . process( " Resources/PrivacyInfo.xcprivacy " ) ] ,
462
- swiftSettings: Context . environment [ " FIREBASE_CI " ] != nil ? [ . define( " FIREBASE_CI " ) ] : [ ] ,
464
+ swiftSettings: [
465
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
466
+ ] ,
463
467
linkerSettings: [
464
468
. linkedFramework( " Security " ) ,
465
469
. linkedFramework( " SafariServices " , . when( platforms: [ . iOS] ) ) ,
@@ -505,12 +509,18 @@ let package = Package(
505
509
" ObjCAPITests.m " ,
506
510
" ObjCGlobalTests.m " ,
507
511
" FIROAuthProviderTests.m " ,
512
+ ] ,
513
+ swiftSettings: [
514
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
508
515
]
509
516
) ,
510
517
. target(
511
518
name: " FirebaseAuthCombineSwift " ,
512
519
dependencies: [ " FirebaseAuth " ] ,
513
- path: " FirebaseCombineSwift/Sources/Auth "
520
+ path: " FirebaseCombineSwift/Sources/Auth " ,
521
+ swiftSettings: [
522
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
523
+ ]
514
524
) ,
515
525
. target(
516
526
name: " FirebaseFirestoreCombineSwift " ,
@@ -592,7 +602,10 @@ let package = Package(
592
602
. testTarget(
593
603
name: " FirebaseCrashlyticsSwiftUnit " ,
594
604
dependencies: [ " FirebaseCrashlyticsSwift " ] ,
595
- path: " Crashlytics/UnitTestsSwift/ "
605
+ path: " Crashlytics/UnitTestsSwift/ " ,
606
+ swiftSettings: [
607
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
608
+ ]
596
609
) ,
597
610
. testTarget(
598
611
name: " FirebaseCrashlyticsUnit " ,
@@ -657,6 +670,9 @@ let package = Package(
657
670
resources: [ . process( " Resources " ) ] ,
658
671
cSettings: [
659
672
. headerSearchPath( " ../.. " ) ,
673
+ ] ,
674
+ swiftSettings: [
675
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
660
676
]
661
677
) ,
662
678
. testTarget(
@@ -665,6 +681,9 @@ let package = Package(
665
681
path: " FirebaseDatabase/Tests/Unit/Swift " ,
666
682
cSettings: [
667
683
. headerSearchPath( " ../.. " ) ,
684
+ ] ,
685
+ swiftSettings: [
686
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
668
687
]
669
688
) ,
670
689
. target(
@@ -678,6 +697,10 @@ let package = Package(
678
697
exclude: [
679
698
" third_party/FirebaseDataEncoder/LICENSE " ,
680
699
" third_party/FirebaseDataEncoder/METADATA " ,
700
+ ] ,
701
+ // TODO(ncooke3): Can this be upgraded to Swift 6?
702
+ swiftSettings: [
703
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
681
704
]
682
705
) ,
683
706
. testTarget(
@@ -713,6 +736,9 @@ let package = Package(
713
736
path: " FirebaseFunctions/Tests/Unit " ,
714
737
cSettings: [
715
738
. headerSearchPath( " ../../../ " ) ,
739
+ ] ,
740
+ swiftSettings: [
741
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
716
742
]
717
743
) ,
718
744
. testTarget(
@@ -737,7 +763,10 @@ let package = Package(
737
763
. target(
738
764
name: " FirebaseFunctionsCombineSwift " ,
739
765
dependencies: [ " FirebaseFunctions " ] ,
740
- path: " FirebaseCombineSwift/Sources/Functions "
766
+ path: " FirebaseCombineSwift/Sources/Functions " ,
767
+ swiftSettings: [
768
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
769
+ ]
741
770
) ,
742
771
. testTarget(
743
772
name: " FunctionsCombineUnit " ,
@@ -790,7 +819,10 @@ let package = Package(
790
819
. target(
791
820
name: " FirebaseInAppMessaging " ,
792
821
dependencies: [ " FirebaseInAppMessagingInternal " ] ,
793
- path: " FirebaseInAppMessaging/Swift/Source "
822
+ path: " FirebaseInAppMessaging/Swift/Source " ,
823
+ swiftSettings: [
824
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
825
+ ]
794
826
) ,
795
827
796
828
. target(
@@ -828,6 +860,9 @@ let package = Package(
828
860
] ,
829
861
cSettings: [
830
862
. define( " FIRMLModelDownloader_VERSION " , to: firebaseVersion) ,
863
+ ] ,
864
+ swiftSettings: [
865
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
831
866
]
832
867
) ,
833
868
. testTarget(
@@ -1012,7 +1047,10 @@ let package = Package(
1012
1047
" FirebaseSharedSwift " ,
1013
1048
] ,
1014
1049
path: " FirebaseRemoteConfig/Swift " ,
1015
- resources: [ . process( " Resources/PrivacyInfo.xcprivacy " ) ]
1050
+ resources: [ . process( " Resources/PrivacyInfo.xcprivacy " ) ] ,
1051
+ swiftSettings: [
1052
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1053
+ ]
1016
1054
) ,
1017
1055
. testTarget(
1018
1056
name: " RemoteConfigFakeConsole " ,
@@ -1029,6 +1067,9 @@ let package = Package(
1029
1067
] ,
1030
1068
cSettings: [
1031
1069
. headerSearchPath( " ../../../ " ) ,
1070
+ ] ,
1071
+ swiftSettings: [
1072
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1032
1073
]
1033
1074
) ,
1034
1075
. target(
@@ -1136,7 +1177,10 @@ let package = Package(
1136
1177
. product( name: " GTMSessionFetcherCore " , package : " gtm-session-fetcher " ) ,
1137
1178
. product( name: " GULEnvironment " , package : " GoogleUtilities " ) ,
1138
1179
] ,
1139
- path: " FirebaseStorage/Sources "
1180
+ path: " FirebaseStorage/Sources " ,
1181
+ swiftSettings: [
1182
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1183
+ ]
1140
1184
) ,
1141
1185
. testTarget(
1142
1186
name: " FirebaseStorageUnit " ,
@@ -1145,6 +1189,9 @@ let package = Package(
1145
1189
path: " FirebaseStorage/Tests/Unit " ,
1146
1190
cSettings: [
1147
1191
. headerSearchPath( " ../../../ " ) ,
1192
+ ] ,
1193
+ swiftSettings: [
1194
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1148
1195
]
1149
1196
) ,
1150
1197
. testTarget(
@@ -1191,15 +1238,21 @@ let package = Package(
1191
1238
" FirebaseStorage " ,
1192
1239
. product( name: " nanopb " , package : " nanopb " ) ,
1193
1240
] ,
1194
- path: " SwiftPMTests/swift-test "
1241
+ path: " SwiftPMTests/swift-test " ,
1242
+ swiftSettings: [
1243
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1244
+ ]
1195
1245
) ,
1196
1246
. testTarget(
1197
1247
name: " analytics-import-test " ,
1198
1248
dependencies: [
1199
1249
" FirebaseAnalyticsWrapper " ,
1200
1250
" Firebase " ,
1201
1251
] ,
1202
- path: " SwiftPMTests/analytics-import-test "
1252
+ path: " SwiftPMTests/analytics-import-test " ,
1253
+ swiftSettings: [
1254
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1255
+ ]
1203
1256
) ,
1204
1257
. testTarget(
1205
1258
name: " objc-import-test " ,
@@ -1290,7 +1343,10 @@ let package = Package(
1290
1343
. testTarget(
1291
1344
name: " FirebaseAppCheckUnitSwift " ,
1292
1345
dependencies: [ " FirebaseAppCheck " ] ,
1293
- path: " FirebaseAppCheck/Tests/Unit/Swift "
1346
+ path: " FirebaseAppCheck/Tests/Unit/Swift " ,
1347
+ swiftSettings: [
1348
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1349
+ ]
1294
1350
) ,
1295
1351
1296
1352
// MARK: Testing support
@@ -1324,7 +1380,7 @@ func googleAppMeasurementDependency() -> Package.Dependency {
1324
1380
1325
1381
// Point SPM CI to the tip of main of https://github.com/google/GoogleAppMeasurement so that the
1326
1382
// release process can defer publishing the GoogleAppMeasurement tag until after testing.
1327
- if ProcessInfo . processInfo . environment [ " FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT " ] != nil {
1383
+ if Context . environment [ " FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT " ] != nil {
1328
1384
return . package ( url: appMeasurementURL, branch: " main " )
1329
1385
}
1330
1386
@@ -1336,7 +1392,7 @@ func abseilDependency() -> Package.Dependency {
1336
1392
1337
1393
// If building Firestore from source, abseil will need to be built as source
1338
1394
// as the headers in the binary version of abseil are unusable.
1339
- if ProcessInfo . processInfo . environment [ " FIREBASE_SOURCE_FIRESTORE " ] != nil {
1395
+ if Context . environment [ " FIREBASE_SOURCE_FIRESTORE " ] != nil {
1340
1396
packageInfo = (
1341
1397
" https://github.com/firebase/abseil-cpp-SwiftPM.git " ,
1342
1398
" 0.20240722.0 " ..< " 0.20240723.0 "
@@ -1356,7 +1412,7 @@ func grpcDependency() -> Package.Dependency {
1356
1412
1357
1413
// If building Firestore from source, abseil will need to be built as source
1358
1414
// as the headers in the binary version of abseil are unusable.
1359
- if ProcessInfo . processInfo . environment [ " FIREBASE_SOURCE_FIRESTORE " ] != nil {
1415
+ if Context . environment [ " FIREBASE_SOURCE_FIRESTORE " ] != nil {
1360
1416
packageInfo = ( " https://github.com/grpc/grpc-ios.git " , " 1.69.0 " ..< " 1.70.0 " )
1361
1417
} else {
1362
1418
packageInfo = ( " https://github.com/google/grpc-binary.git " , " 1.69.0 " ..< " 1.70.0 " )
@@ -1366,7 +1422,7 @@ func grpcDependency() -> Package.Dependency {
1366
1422
}
1367
1423
1368
1424
func firestoreWrapperTarget( ) -> Target {
1369
- if ProcessInfo . processInfo . environment [ " FIREBASE_SOURCE_FIRESTORE " ] != nil {
1425
+ if Context . environment [ " FIREBASE_SOURCE_FIRESTORE " ] != nil {
1370
1426
return . target(
1371
1427
name: " FirebaseFirestoreTarget " ,
1372
1428
dependencies: [ . target( name: " FirebaseFirestore " ,
@@ -1385,7 +1441,7 @@ func firestoreWrapperTarget() -> Target {
1385
1441
}
1386
1442
1387
1443
func firestoreTargets( ) -> [ Target ] {
1388
- if ProcessInfo . processInfo . environment [ " FIREBASE_SOURCE_FIRESTORE " ] != nil {
1444
+ if Context . environment [ " FIREBASE_SOURCE_FIRESTORE " ] != nil {
1389
1445
return [
1390
1446
. target(
1391
1447
name: " FirebaseFirestoreInternalWrapper " ,
@@ -1481,13 +1537,16 @@ func firestoreTargets() -> [Target] {
1481
1537
sources: [
1482
1538
" Swift/Source/ " ,
1483
1539
] ,
1484
- resources: [ . process( " Source/Resources/PrivacyInfo.xcprivacy " ) ]
1540
+ resources: [ . process( " Source/Resources/PrivacyInfo.xcprivacy " ) ] ,
1541
+ swiftSettings: [
1542
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1543
+ ]
1485
1544
) ,
1486
1545
]
1487
1546
}
1488
1547
1489
1548
let firestoreInternalTarget : Target = {
1490
- if ProcessInfo . processInfo . environment [ " FIREBASECI_USE_LOCAL_FIRESTORE_ZIP " ] != nil {
1549
+ if Context . environment [ " FIREBASECI_USE_LOCAL_FIRESTORE_ZIP " ] != nil {
1491
1550
// This is set when running `scripts/check_firestore_symbols.sh`.
1492
1551
return . binaryTarget(
1493
1552
name: " FirebaseFirestoreInternal " ,
@@ -1530,6 +1589,9 @@ func firestoreTargets() -> [Target] {
1530
1589
] ,
1531
1590
path: " Firestore/Swift/Source " ,
1532
1591
resources: [ . process( " Resources/PrivacyInfo.xcprivacy " ) ] ,
1592
+ swiftSettings: [
1593
+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1594
+ ] ,
1533
1595
linkerSettings: [
1534
1596
. linkedFramework( " SystemConfiguration " , . when( platforms: [ . iOS, . macOS, . tvOS] ) ) ,
1535
1597
. linkedFramework( " UIKit " , . when( platforms: [ . iOS, . tvOS] ) ) ,
0 commit comments