1- // swift-tools-version:5.9
1+ // swift-tools-version:6.0
22// The swift-tools-version declares the minimum version of Swift required to
33// build this package.
44
1616// See the License for the specific language governing permissions and
1717// limitations under the License.
1818
19- import class Foundation. ProcessInfo
2019import PackageDescription
2120
2221let firebaseVersion = " 12.0.0 "
@@ -439,6 +438,9 @@ let package = Package(
439438 path: " FirebaseAppDistribution/Tests/Unit/Swift " ,
440439 cSettings: [
441440 . headerSearchPath( " ../../../.. " ) ,
441+ ] ,
442+ swiftSettings: [
443+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
442444 ]
443445 ) ,
444446
@@ -459,7 +461,9 @@ let package = Package(
459461 " ObjC " , " Public " ,
460462 ] ,
461463 resources: [ . process( " Resources/PrivacyInfo.xcprivacy " ) ] ,
462- swiftSettings: Context . environment [ " FIREBASE_CI " ] != nil ? [ . define( " FIREBASE_CI " ) ] : [ ] ,
464+ swiftSettings: [
465+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
466+ ] ,
463467 linkerSettings: [
464468 . linkedFramework( " Security " ) ,
465469 . linkedFramework( " SafariServices " , . when( platforms: [ . iOS] ) ) ,
@@ -505,12 +509,18 @@ let package = Package(
505509 " ObjCAPITests.m " ,
506510 " ObjCGlobalTests.m " ,
507511 " FIROAuthProviderTests.m " ,
512+ ] ,
513+ swiftSettings: [
514+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
508515 ]
509516 ) ,
510517 . target(
511518 name: " FirebaseAuthCombineSwift " ,
512519 dependencies: [ " FirebaseAuth " ] ,
513- path: " FirebaseCombineSwift/Sources/Auth "
520+ path: " FirebaseCombineSwift/Sources/Auth " ,
521+ swiftSettings: [
522+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
523+ ]
514524 ) ,
515525 . target(
516526 name: " FirebaseFirestoreCombineSwift " ,
@@ -592,7 +602,10 @@ let package = Package(
592602 . testTarget(
593603 name: " FirebaseCrashlyticsSwiftUnit " ,
594604 dependencies: [ " FirebaseCrashlyticsSwift " ] ,
595- path: " Crashlytics/UnitTestsSwift/ "
605+ path: " Crashlytics/UnitTestsSwift/ " ,
606+ swiftSettings: [
607+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
608+ ]
596609 ) ,
597610 . testTarget(
598611 name: " FirebaseCrashlyticsUnit " ,
@@ -657,6 +670,9 @@ let package = Package(
657670 resources: [ . process( " Resources " ) ] ,
658671 cSettings: [
659672 . headerSearchPath( " ../.. " ) ,
673+ ] ,
674+ swiftSettings: [
675+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
660676 ]
661677 ) ,
662678 . testTarget(
@@ -665,6 +681,9 @@ let package = Package(
665681 path: " FirebaseDatabase/Tests/Unit/Swift " ,
666682 cSettings: [
667683 . headerSearchPath( " ../.. " ) ,
684+ ] ,
685+ swiftSettings: [
686+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
668687 ]
669688 ) ,
670689 . target(
@@ -678,6 +697,10 @@ let package = Package(
678697 exclude: [
679698 " third_party/FirebaseDataEncoder/LICENSE " ,
680699 " third_party/FirebaseDataEncoder/METADATA " ,
700+ ] ,
701+ // TODO(ncooke3): Can this be upgraded to Swift 6?
702+ swiftSettings: [
703+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
681704 ]
682705 ) ,
683706 . testTarget(
@@ -713,6 +736,9 @@ let package = Package(
713736 path: " FirebaseFunctions/Tests/Unit " ,
714737 cSettings: [
715738 . headerSearchPath( " ../../../ " ) ,
739+ ] ,
740+ swiftSettings: [
741+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
716742 ]
717743 ) ,
718744 . testTarget(
@@ -737,7 +763,10 @@ let package = Package(
737763 . target(
738764 name: " FirebaseFunctionsCombineSwift " ,
739765 dependencies: [ " FirebaseFunctions " ] ,
740- path: " FirebaseCombineSwift/Sources/Functions "
766+ path: " FirebaseCombineSwift/Sources/Functions " ,
767+ swiftSettings: [
768+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
769+ ]
741770 ) ,
742771 . testTarget(
743772 name: " FunctionsCombineUnit " ,
@@ -790,7 +819,10 @@ let package = Package(
790819 . target(
791820 name: " FirebaseInAppMessaging " ,
792821 dependencies: [ " FirebaseInAppMessagingInternal " ] ,
793- path: " FirebaseInAppMessaging/Swift/Source "
822+ path: " FirebaseInAppMessaging/Swift/Source " ,
823+ swiftSettings: [
824+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
825+ ]
794826 ) ,
795827
796828 . target(
@@ -828,6 +860,9 @@ let package = Package(
828860 ] ,
829861 cSettings: [
830862 . define( " FIRMLModelDownloader_VERSION " , to: firebaseVersion) ,
863+ ] ,
864+ swiftSettings: [
865+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
831866 ]
832867 ) ,
833868 . testTarget(
@@ -1012,7 +1047,10 @@ let package = Package(
10121047 " FirebaseSharedSwift " ,
10131048 ] ,
10141049 path: " FirebaseRemoteConfig/Swift " ,
1015- resources: [ . process( " Resources/PrivacyInfo.xcprivacy " ) ]
1050+ resources: [ . process( " Resources/PrivacyInfo.xcprivacy " ) ] ,
1051+ swiftSettings: [
1052+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1053+ ]
10161054 ) ,
10171055 . testTarget(
10181056 name: " RemoteConfigFakeConsole " ,
@@ -1029,6 +1067,9 @@ let package = Package(
10291067 ] ,
10301068 cSettings: [
10311069 . headerSearchPath( " ../../../ " ) ,
1070+ ] ,
1071+ swiftSettings: [
1072+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
10321073 ]
10331074 ) ,
10341075 . target(
@@ -1136,7 +1177,10 @@ let package = Package(
11361177 . product( name: " GTMSessionFetcherCore " , package : " gtm-session-fetcher " ) ,
11371178 . product( name: " GULEnvironment " , package : " GoogleUtilities " ) ,
11381179 ] ,
1139- path: " FirebaseStorage/Sources "
1180+ path: " FirebaseStorage/Sources " ,
1181+ swiftSettings: [
1182+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1183+ ]
11401184 ) ,
11411185 . testTarget(
11421186 name: " FirebaseStorageUnit " ,
@@ -1145,6 +1189,9 @@ let package = Package(
11451189 path: " FirebaseStorage/Tests/Unit " ,
11461190 cSettings: [
11471191 . headerSearchPath( " ../../../ " ) ,
1192+ ] ,
1193+ swiftSettings: [
1194+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
11481195 ]
11491196 ) ,
11501197 . testTarget(
@@ -1191,15 +1238,21 @@ let package = Package(
11911238 " FirebaseStorage " ,
11921239 . product( name: " nanopb " , package : " nanopb " ) ,
11931240 ] ,
1194- path: " SwiftPMTests/swift-test "
1241+ path: " SwiftPMTests/swift-test " ,
1242+ swiftSettings: [
1243+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1244+ ]
11951245 ) ,
11961246 . testTarget(
11971247 name: " analytics-import-test " ,
11981248 dependencies: [
11991249 " FirebaseAnalyticsWrapper " ,
12001250 " Firebase " ,
12011251 ] ,
1202- path: " SwiftPMTests/analytics-import-test "
1252+ path: " SwiftPMTests/analytics-import-test " ,
1253+ swiftSettings: [
1254+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1255+ ]
12031256 ) ,
12041257 . testTarget(
12051258 name: " objc-import-test " ,
@@ -1290,7 +1343,10 @@ let package = Package(
12901343 . testTarget(
12911344 name: " FirebaseAppCheckUnitSwift " ,
12921345 dependencies: [ " FirebaseAppCheck " ] ,
1293- path: " FirebaseAppCheck/Tests/Unit/Swift "
1346+ path: " FirebaseAppCheck/Tests/Unit/Swift " ,
1347+ swiftSettings: [
1348+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1349+ ]
12941350 ) ,
12951351
12961352 // MARK: Testing support
@@ -1324,7 +1380,7 @@ func googleAppMeasurementDependency() -> Package.Dependency {
13241380
13251381 // Point SPM CI to the tip of main of https://github.com/google/GoogleAppMeasurement so that the
13261382 // 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 {
13281384 return . package ( url: appMeasurementURL, branch: " main " )
13291385 }
13301386
@@ -1336,7 +1392,7 @@ func abseilDependency() -> Package.Dependency {
13361392
13371393 // If building Firestore from source, abseil will need to be built as source
13381394 // 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 {
13401396 packageInfo = (
13411397 " https://github.com/firebase/abseil-cpp-SwiftPM.git " ,
13421398 " 0.20240722.0 " ..< " 0.20240723.0 "
@@ -1356,7 +1412,7 @@ func grpcDependency() -> Package.Dependency {
13561412
13571413 // If building Firestore from source, abseil will need to be built as source
13581414 // 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 {
13601416 packageInfo = ( " https://github.com/grpc/grpc-ios.git " , " 1.69.0 " ..< " 1.70.0 " )
13611417 } else {
13621418 packageInfo = ( " https://github.com/google/grpc-binary.git " , " 1.69.0 " ..< " 1.70.0 " )
@@ -1366,7 +1422,7 @@ func grpcDependency() -> Package.Dependency {
13661422}
13671423
13681424func firestoreWrapperTarget( ) -> Target {
1369- if ProcessInfo . processInfo . environment [ " FIREBASE_SOURCE_FIRESTORE " ] != nil {
1425+ if Context . environment [ " FIREBASE_SOURCE_FIRESTORE " ] != nil {
13701426 return . target(
13711427 name: " FirebaseFirestoreTarget " ,
13721428 dependencies: [ . target( name: " FirebaseFirestore " ,
@@ -1385,7 +1441,7 @@ func firestoreWrapperTarget() -> Target {
13851441}
13861442
13871443func firestoreTargets( ) -> [ Target ] {
1388- if ProcessInfo . processInfo . environment [ " FIREBASE_SOURCE_FIRESTORE " ] != nil {
1444+ if Context . environment [ " FIREBASE_SOURCE_FIRESTORE " ] != nil {
13891445 return [
13901446 . target(
13911447 name: " FirebaseFirestoreInternalWrapper " ,
@@ -1481,13 +1537,16 @@ func firestoreTargets() -> [Target] {
14811537 sources: [
14821538 " Swift/Source/ " ,
14831539 ] ,
1484- resources: [ . process( " Source/Resources/PrivacyInfo.xcprivacy " ) ]
1540+ resources: [ . process( " Source/Resources/PrivacyInfo.xcprivacy " ) ] ,
1541+ swiftSettings: [
1542+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1543+ ]
14851544 ) ,
14861545 ]
14871546 }
14881547
14891548 let firestoreInternalTarget : Target = {
1490- if ProcessInfo . processInfo . environment [ " FIREBASECI_USE_LOCAL_FIRESTORE_ZIP " ] != nil {
1549+ if Context . environment [ " FIREBASECI_USE_LOCAL_FIRESTORE_ZIP " ] != nil {
14911550 // This is set when running `scripts/check_firestore_symbols.sh`.
14921551 return . binaryTarget(
14931552 name: " FirebaseFirestoreInternal " ,
@@ -1530,6 +1589,9 @@ func firestoreTargets() -> [Target] {
15301589 ] ,
15311590 path: " Firestore/Swift/Source " ,
15321591 resources: [ . process( " Resources/PrivacyInfo.xcprivacy " ) ] ,
1592+ swiftSettings: [
1593+ . swiftLanguageMode( SwiftLanguageMode . v5) ,
1594+ ] ,
15331595 linkerSettings: [
15341596 . linkedFramework( " SystemConfiguration " , . when( platforms: [ . iOS, . macOS, . tvOS] ) ) ,
15351597 . linkedFramework( " UIKit " , . when( platforms: [ . iOS, . tvOS] ) ) ,
0 commit comments