浏览代码

Use Swift 6 mode on the plugin examples to ensure generated code compiles in this mode (#1740)

Thomas Van Lenten 1 年之前
父节点
当前提交
8d3356266b

+ 15 - 26
PluginExamples/Package.swift

@@ -1,4 +1,4 @@
-// swift-tools-version: 5.8
+// swift-tools-version: 6.0
 
 import PackageDescription
 
@@ -7,23 +7,7 @@ let package = Package(
     dependencies: [
         .package(path: "../")
     ],
-    targets: targets()
-)
-
-private func targets() -> [Target] {
-    var testDependencies: [Target.Dependency] = [
-        .target(name: "Simple"),
-        .target(name: "Nested"),
-        .target(name: "Import"),
-    ]
-    #if compiler(>=5.9)
-    testDependencies.append(.target(name: "AccessLevelOnImport"))
-    #endif
-    var targets: [Target] = [
-        .testTarget(
-            name: "ExampleTests",
-            dependencies: testDependencies
-        ),
+    targets: [
         .target(
             name: "Simple",
             dependencies: [
@@ -51,9 +35,6 @@ private func targets() -> [Target] {
                 .plugin(name: "SwiftProtobufPlugin", package: "swift-protobuf")
             ]
         ),
-    ]
-    #if compiler(>=5.9)
-    targets.append(
         .target(
             name: "AccessLevelOnImport",
             dependencies: [
@@ -65,8 +46,16 @@ private func targets() -> [Target] {
             plugins: [
                 .plugin(name: "SwiftProtobufPlugin", package: "swift-protobuf")
             ]
-        )
-    )
-    #endif
-    return targets
-}
+        ),
+        .testTarget(
+            name: "ExampleTests",
+            dependencies: [
+                .target(name: "Simple"),
+                .target(name: "Nested"),
+                .target(name: "Import"),
+                .target(name: "AccessLevelOnImport"),
+            ]
+        ),
+    ],
+    swiftLanguageModes: [.v6]
+)

+ 47 - 0
PluginExamples/Package@swift-5.8.swift

@@ -0,0 +1,47 @@
+// swift-tools-version: 5.8
+
+import PackageDescription
+
+let package = Package(
+    name: "PluginExamples",
+    dependencies: [
+        .package(path: "../")
+    ],
+    targets: [
+        .testTarget(
+            name: "ExampleTests",
+            dependencies: [
+                .target(name: "Simple"),
+                .target(name: "Nested"),
+                .target(name: "Import"),
+            ]
+        ),
+        .target(
+            name: "Simple",
+            dependencies: [
+                .product(name: "SwiftProtobuf", package: "swift-protobuf")
+            ],
+            plugins: [
+                .plugin(name: "SwiftProtobufPlugin", package: "swift-protobuf")
+            ]
+        ),
+        .target(
+            name: "Nested",
+            dependencies: [
+                .product(name: "SwiftProtobuf", package: "swift-protobuf")
+            ],
+            plugins: [
+                .plugin(name: "SwiftProtobufPlugin", package: "swift-protobuf")
+            ]
+        ),
+        .target(
+            name: "Import",
+            dependencies: [
+                .product(name: "SwiftProtobuf", package: "swift-protobuf")
+            ],
+            plugins: [
+                .plugin(name: "SwiftProtobufPlugin", package: "swift-protobuf")
+            ]
+        ),
+    ]
+)

+ 60 - 0
PluginExamples/Package@swift-5.9.swift

@@ -0,0 +1,60 @@
+// swift-tools-version: 5.9
+
+import PackageDescription
+
+let package = Package(
+    name: "PluginExamples",
+    dependencies: [
+        .package(path: "../")
+    ],
+    targets: [
+        .target(
+            name: "Simple",
+            dependencies: [
+                .product(name: "SwiftProtobuf", package: "swift-protobuf")
+            ],
+            plugins: [
+                .plugin(name: "SwiftProtobufPlugin", package: "swift-protobuf")
+            ]
+        ),
+        .target(
+            name: "Nested",
+            dependencies: [
+                .product(name: "SwiftProtobuf", package: "swift-protobuf")
+            ],
+            plugins: [
+                .plugin(name: "SwiftProtobufPlugin", package: "swift-protobuf")
+            ]
+        ),
+        .target(
+            name: "Import",
+            dependencies: [
+                .product(name: "SwiftProtobuf", package: "swift-protobuf")
+            ],
+            plugins: [
+                .plugin(name: "SwiftProtobufPlugin", package: "swift-protobuf")
+            ]
+        ),
+        .target(
+            name: "AccessLevelOnImport",
+            dependencies: [
+                .product(name: "SwiftProtobuf", package: "swift-protobuf")
+            ],
+            swiftSettings: [
+                .enableExperimentalFeature("AccessLevelOnImport")
+            ],
+            plugins: [
+                .plugin(name: "SwiftProtobufPlugin", package: "swift-protobuf")
+            ]
+        ),
+        .testTarget(
+            name: "ExampleTests",
+            dependencies: [
+                .target(name: "Simple"),
+                .target(name: "Nested"),
+                .target(name: "Import"),
+                .target(name: "AccessLevelOnImport"),
+            ]
+        ),
+    ]
+)

+ 1 - 0
PluginExamples/Sources/Nested/Nested/Nested.proto

@@ -2,4 +2,5 @@ syntax = "proto3";
 
 message Nested {
   string name = 1;
+  Nested next = 2;
 }