Package@swift-5.10.swift 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // swift-tools-version:5.10
  2. // Package.swift
  3. //
  4. // Copyright (c) 2014 - 2018 Apple Inc. and the project authors
  5. // Licensed under Apache License v2.0 with Runtime Library Exception
  6. //
  7. // See LICENSE.txt for license information:
  8. // https://github.com/apple/swift-protobuf/blob/main/LICENSE.txt
  9. //
  10. import PackageDescription
  11. let package = Package(
  12. name: "SwiftProtobuf",
  13. products: [
  14. .executable(
  15. name: "protoc-gen-swift",
  16. targets: ["protoc-gen-swift"]
  17. ),
  18. .library(
  19. name: "SwiftProtobuf",
  20. targets: ["SwiftProtobuf"]
  21. ),
  22. .library(
  23. name: "SwiftProtobufPluginLibrary",
  24. targets: ["SwiftProtobufPluginLibrary"]
  25. ),
  26. .plugin(
  27. name: "SwiftProtobufPlugin",
  28. targets: ["SwiftProtobufPlugin"]
  29. ),
  30. ],
  31. targets: [
  32. .target(
  33. name: "SwiftProtobuf",
  34. exclude: ["CMakeLists.txt"],
  35. resources: [.copy("PrivacyInfo.xcprivacy")],
  36. swiftSettings: .packageSettings
  37. ),
  38. .target(
  39. name: "SwiftProtobufPluginLibrary",
  40. dependencies: ["SwiftProtobuf"],
  41. exclude: ["CMakeLists.txt"],
  42. resources: [.copy("PrivacyInfo.xcprivacy")],
  43. swiftSettings: .packageSettings
  44. ),
  45. .target(
  46. name: "SwiftProtobufTestHelpers",
  47. dependencies: ["SwiftProtobuf"],
  48. swiftSettings: .packageSettings
  49. ),
  50. .executableTarget(
  51. name: "protoc-gen-swift",
  52. dependencies: ["SwiftProtobufPluginLibrary", "SwiftProtobuf"],
  53. exclude: ["CMakeLists.txt"],
  54. swiftSettings: .packageSettings
  55. ),
  56. .executableTarget(
  57. name: "Conformance",
  58. dependencies: ["SwiftProtobuf"],
  59. exclude: ["failure_list_swift.txt", "text_format_failure_list_swift.txt"],
  60. swiftSettings: .packageSettings
  61. ),
  62. .plugin(
  63. name: "SwiftProtobufPlugin",
  64. capability: .buildTool(),
  65. dependencies: ["protoc-gen-swift"]
  66. ),
  67. .testTarget(
  68. name: "SwiftProtobufTests",
  69. dependencies: ["SwiftProtobuf"],
  70. swiftSettings: .packageSettings
  71. ),
  72. .testTarget(
  73. name: "SwiftProtobufPluginLibraryTests",
  74. dependencies: ["SwiftProtobufPluginLibrary", "SwiftProtobufTestHelpers"],
  75. swiftSettings: .packageSettings
  76. ),
  77. .testTarget(
  78. name: "protoc-gen-swiftTests",
  79. dependencies: ["protoc-gen-swift", "SwiftProtobufTestHelpers"],
  80. swiftSettings: .packageSettings
  81. ),
  82. ],
  83. swiftLanguageVersions: [.v5]
  84. )
  85. // Settings for every Swift target in this package, like project-level settings
  86. // in an Xcode project.
  87. extension Array where Element == PackageDescription.SwiftSetting {
  88. static var packageSettings: Self {
  89. [
  90. .enableExperimentalFeature("StrictConcurrency=complete"),
  91. .enableUpcomingFeature("ExistentialAny"),
  92. ]
  93. }
  94. }