| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- // swift-tools-version:5.1
- /*
- * Copyright 2017, gRPC Authors All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- import PackageDescription
- let package = Package(
- name: "grpc-swift",
- products: [
- .library(name: "GRPC", targets: ["GRPC"]),
- .library(name: "CGRPCZlib", targets: ["CGRPCZlib"]),
- .executable(name: "protoc-gen-grpc-swift", targets: ["protoc-gen-grpc-swift"]),
- ],
- dependencies: [
- // GRPC dependencies:
- // Main SwiftNIO package
- .package(url: "https://github.com/apple/swift-nio.git", from: "2.22.0"),
- // HTTP2 via SwiftNIO
- .package(url: "https://github.com/apple/swift-nio-http2.git", from: "1.16.1"),
- // TLS via SwiftNIO
- .package(url: "https://github.com/apple/swift-nio-ssl.git", from: "2.8.0"),
- // Support for Network.framework where possible.
- .package(url: "https://github.com/apple/swift-nio-transport-services.git", from: "1.6.0"),
- // Extra NIO stuff; quiescing helpers.
- .package(url: "https://github.com/apple/swift-nio-extras.git", from: "1.4.0"),
- // Official SwiftProtobuf library, for [de]serializing data to send on the wire.
- .package(url: "https://github.com/apple/swift-protobuf.git", from: "1.9.0"),
- // Logging API.
- .package(url: "https://github.com/apple/swift-log.git", from: "1.4.0"),
- ],
- targets: [
- // The main GRPC module.
- .target(
- name: "GRPC",
- dependencies: [
- "NIO",
- "NIOFoundationCompat",
- "NIOTransportServices",
- "NIOHTTP1",
- "NIOHTTP2",
- "NIOExtras",
- "NIOSSL",
- "CGRPCZlib",
- "SwiftProtobuf",
- "Logging",
- ]
- ), // and its tests.
- .testTarget(
- name: "GRPCTests",
- dependencies: [
- "GRPC",
- "EchoModel",
- "EchoImplementation",
- "GRPCSampleData",
- "GRPCInteroperabilityTestsImplementation",
- "HelloWorldModel",
- ]
- ),
- .target(
- name: "CGRPCZlib",
- linkerSettings: [
- .linkedLibrary("z"),
- ]
- ),
- // The `protoc` plugin.
- .target(
- name: "protoc-gen-grpc-swift",
- dependencies: [
- "SwiftProtobuf",
- "SwiftProtobufPluginLibrary",
- "protoc-gen-swift",
- ]
- ),
- // Interoperability tests implementation.
- .target(
- name: "GRPCInteroperabilityTestsImplementation",
- dependencies: [
- "GRPC",
- "GRPCInteroperabilityTestModels",
- ]
- ),
- // Generated interoperability test models.
- .target(
- name: "GRPCInteroperabilityTestModels",
- dependencies: [
- "GRPC",
- "NIO",
- "NIOHTTP1",
- "SwiftProtobuf",
- ]
- ),
- // The CLI for the interoperability tests.
- .target(
- name: "GRPCInteroperabilityTests",
- dependencies: [
- "GRPCInteroperabilityTestsImplementation",
- "Logging",
- ]
- ),
- // The connection backoff interoperability test.
- .target(
- name: "GRPCConnectionBackoffInteropTest",
- dependencies: [
- "GRPC",
- "GRPCInteroperabilityTestModels",
- "Logging",
- ]
- ),
- // Performance tests implementation and CLI.
- .target(
- name: "GRPCPerformanceTests",
- dependencies: [
- "GRPC",
- "EchoModel",
- "EchoImplementation",
- "NIO",
- "NIOSSL",
- ]
- ),
- // Sample data, used in examples and tests.
- .target(
- name: "GRPCSampleData",
- dependencies: ["NIOSSL"]
- ),
- // Echo example CLI.
- .target(
- name: "Echo",
- dependencies: [
- "EchoModel",
- "EchoImplementation",
- "GRPC",
- "GRPCSampleData",
- "SwiftProtobuf",
- ],
- path: "Sources/Examples/Echo/Runtime"
- ),
- // Echo example service implementation.
- .target(
- name: "EchoImplementation",
- dependencies: [
- "EchoModel",
- "GRPC",
- "SwiftProtobuf",
- ],
- path: "Sources/Examples/Echo/Implementation"
- ),
- // Model for Echo example.
- .target(
- name: "EchoModel",
- dependencies: [
- "GRPC",
- "NIO",
- "NIOHTTP1",
- "SwiftProtobuf",
- ],
- path: "Sources/Examples/Echo/Model"
- ),
- // Model for the HelloWorld example
- .target(
- name: "HelloWorldModel",
- dependencies: [
- "GRPC",
- "NIO",
- "NIOHTTP1",
- "SwiftProtobuf",
- ],
- path: "Sources/Examples/HelloWorld/Model"
- ),
- // Client for the HelloWorld example
- .target(
- name: "HelloWorldClient",
- dependencies: [
- "GRPC",
- "HelloWorldModel",
- ],
- path: "Sources/Examples/HelloWorld/Client"
- ),
- // Server for the HelloWorld example
- .target(
- name: "HelloWorldServer",
- dependencies: [
- "GRPC",
- "NIO",
- "HelloWorldModel",
- ],
- path: "Sources/Examples/HelloWorld/Server"
- ),
- // Model for the RouteGuide example
- .target(
- name: "RouteGuideModel",
- dependencies: [
- "GRPC",
- "NIO",
- "NIOHTTP1",
- "SwiftProtobuf",
- ],
- path: "Sources/Examples/RouteGuide/Model"
- ),
- // Client for the RouteGuide example
- .target(
- name: "RouteGuideClient",
- dependencies: [
- "GRPC",
- "RouteGuideModel",
- ],
- path: "Sources/Examples/RouteGuide/Client"
- ),
- // Server for the RouteGuide example
- .target(
- name: "RouteGuideServer",
- dependencies: [
- "GRPC",
- "NIO",
- "RouteGuideModel",
- ],
- path: "Sources/Examples/RouteGuide/Server"
- ),
- ]
- )
|