// swift-tools-version:6.0 /* * Copyright 2020 Google Inc. 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: "FlatBuffers", platforms: [ .iOS(.v12), .macOS(.v10_14), ], products: [ .library( name: "FlatBuffers", targets: ["FlatBuffers"]), .library( name: "FlexBuffers", targets: ["FlexBuffers"]), ], dependencies: .dependencies, targets: [ .target( name: "FlatBuffers", dependencies: ["Common"], path: "swift/Sources/FlatBuffers", swiftSettings: .settings), .target( name: "FlexBuffers", dependencies: ["Common"], path: "swift/Sources/FlexBuffers", swiftSettings: .settings), .target( name: "Common", path: "swift/Sources/Common", swiftSettings: .settings), .testTarget( name: "FlatbuffersTests", dependencies: .dependencies, path: "tests/swift/Tests/Flatbuffers"), .testTarget( name: "FlexbuffersTests", dependencies: ["FlexBuffers"], path: "tests/swift/Tests/Flexbuffers"), ], swiftLanguageModes: [.v6]) extension Array where Element == SwiftSetting { static var settings: [SwiftSetting] { [.enableUpcomingFeature("ExistentialAny")] } } extension Array where Element == Package.Dependency { static var dependencies: [Package.Dependency] { #if os(Windows) [] #else // Test only Dependency [ .package(url: "https://github.com/grpc/grpc-swift-2.git", from: "2.0.0"), .package( url: "https://github.com/grpc/grpc-swift-nio-transport.git", from: "2.0.0"), ] #endif } } extension Array where Element == PackageDescription.Target.Dependency { static var dependencies: [PackageDescription.Target.Dependency] { #if os(Windows) ["FlatBuffers"] #else // Test only Dependency [ .product(name: "GRPCCore", package: "grpc-swift-2"), .product( name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"), "FlatBuffers", ] #endif } }