Package.swift 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. // swift-tools-version:5.8
  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. dependencies: [
  32. .package(url: "https://github.com/swiftlang/swift-docc-plugin", from: "1.0.0")
  33. ],
  34. targets: [
  35. .target(
  36. name: "SwiftProtobuf",
  37. exclude: ["CMakeLists.txt"],
  38. resources: [.copy("PrivacyInfo.xcprivacy")],
  39. swiftSettings: .packageSettings
  40. ),
  41. .target(
  42. name: "SwiftProtobufPluginLibrary",
  43. dependencies: ["SwiftProtobuf"],
  44. exclude: ["CMakeLists.txt"],
  45. resources: [.copy("PrivacyInfo.xcprivacy")],
  46. swiftSettings: .packageSettings
  47. ),
  48. .target(
  49. name: "SwiftProtobufTestHelpers",
  50. dependencies: ["SwiftProtobuf"],
  51. swiftSettings: .packageSettings
  52. ),
  53. .executableTarget(
  54. name: "protoc-gen-swift",
  55. dependencies: ["SwiftProtobufPluginLibrary", "SwiftProtobuf"],
  56. exclude: ["CMakeLists.txt"],
  57. swiftSettings: .packageSettings
  58. ),
  59. .executableTarget(
  60. name: "Conformance",
  61. dependencies: ["SwiftProtobuf"],
  62. exclude: ["failure_list_swift.txt", "text_format_failure_list_swift.txt"],
  63. swiftSettings: .packageSettings
  64. ),
  65. .plugin(
  66. name: "SwiftProtobufPlugin",
  67. capability: .buildTool(),
  68. dependencies: ["protoc-gen-swift"]
  69. ),
  70. .testTarget(
  71. name: "SwiftProtobufTests",
  72. dependencies: ["SwiftProtobuf"],
  73. swiftSettings: .packageSettings
  74. ),
  75. .testTarget(
  76. name: "SwiftProtobufPluginLibraryTests",
  77. dependencies: ["SwiftProtobufPluginLibrary", "SwiftProtobufTestHelpers"],
  78. swiftSettings: .packageSettings
  79. ),
  80. .testTarget(
  81. name: "protoc-gen-swiftTests",
  82. dependencies: ["protoc-gen-swift", "SwiftProtobufTestHelpers"],
  83. swiftSettings: .packageSettings
  84. ),
  85. ],
  86. swiftLanguageVersions: [.v5]
  87. )
  88. // Settings for every Swift target in this package, like project-level settings
  89. // in an Xcode project.
  90. extension Array where Element == PackageDescription.SwiftSetting {
  91. static var packageSettings: Self {
  92. [
  93. .enableExperimentalFeature("StrictConcurrency=complete"),
  94. .enableUpcomingFeature("ExistentialAny"),
  95. ]
  96. }
  97. }