Package.swift 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. // swift-tools-version:5.7
  2. // The swift-tools-version declares the minimum version of Swift required to build this package.
  3. import PackageDescription
  4. let package = Package(
  5. name: "MastodonSDK",
  6. defaultLocalization: "en",
  7. platforms: [
  8. .iOS(.v14),
  9. ],
  10. products: [
  11. .library(
  12. name: "MastodonSDK",
  13. targets: [
  14. "CoreDataStack",
  15. "MastodonAsset",
  16. "MastodonCommon",
  17. "MastodonCore",
  18. "MastodonExtension",
  19. "MastodonLocalization",
  20. "MastodonSDK",
  21. "MastodonUI",
  22. ])
  23. ],
  24. dependencies: [
  25. .package(name: "ArkanaKeys", path: "../dependencies/ArkanaKeys"),
  26. .package(url: "https://github.com/will-lumley/FaviconFinder.git", from: "3.2.2"),
  27. .package(url: "https://github.com/siteline/SwiftUI-Introspect.git", from: "0.1.3"),
  28. .package(url: "https://github.com/MainasuK/UITextView-Placeholder.git", from: "1.4.1"),
  29. .package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.4.0"),
  30. .package(url: "https://github.com/Alamofire/AlamofireImage.git", from: "4.1.0"),
  31. .package(url: "https://github.com/apple/swift-collections.git", from: "1.0.3"),
  32. .package(url: "https://github.com/apple/swift-nio.git", from: "1.0.0"),
  33. .package(url: "https://github.com/Flipboard/FLAnimatedImage.git", from: "1.0.0"),
  34. .package(url: "https://github.com/kean/Nuke-FLAnimatedImage-Plugin.git", from: "8.0.0"),
  35. .package(url: "https://github.com/kean/Nuke.git", from: "10.3.1"),
  36. .package(url: "https://github.com/kishikawakatsumi/KeychainAccess.git", from: "4.2.2"),
  37. .package(url: "https://github.com/MainasuK/CommonOSLog", from: "0.1.1"),
  38. .package(url: "https://github.com/MainasuK/FPSIndicator.git", from: "1.0.0"),
  39. .package(url: "https://github.com/slackhq/PanModal.git", from: "1.2.7"),
  40. .package(url: "https://github.com/TimOliver/TOCropViewController.git", from: "2.6.1"),
  41. .package(url: "https://github.com/TwidereProject/MetaTextKit.git", exact: "2.2.5"),
  42. .package(url: "https://github.com/TwidereProject/TabBarPager.git", from: "0.1.0"),
  43. .package(url: "https://github.com/uias/Tabman", from: "2.13.0"),
  44. .package(url: "https://github.com/vtourraine/ThirdPartyMailer.git", from: "2.1.0"),
  45. .package(url: "https://github.com/woxtu/UIHostingConfigurationBackport.git", from: "0.1.0"),
  46. .package(url: "https://github.com/SDWebImage/SDWebImage.git", from: "5.12.0"),
  47. .package(url: "https://github.com/eneko/Stripes.git", from: "0.2.0"),
  48. .package(url: "https://github.com/onevcat/Kingfisher.git", from: "7.4.1"),
  49. .package(url: "https://github.com/NextLevel/NextLevelSessionExporter.git", from: "0.4.6"),
  50. ],
  51. targets: [
  52. // Targets are the basic building blocks of a package. A target can define a module or a test suite.
  53. // Targets can depend on other targets in this package, and on products in packages this package depends on.
  54. .target(
  55. name: "CoreDataStack",
  56. dependencies: [
  57. "MastodonCommon",
  58. ],
  59. exclude: [
  60. "Template/Stencil"
  61. ]
  62. ),
  63. .target(
  64. name: "MastodonAsset",
  65. dependencies: [],
  66. resources: [
  67. .process("Font"),
  68. ]
  69. ),
  70. .target(
  71. name: "MastodonCommon",
  72. dependencies: [
  73. "MastodonExtension",
  74. ]
  75. ),
  76. .target(
  77. name: "MastodonCore",
  78. dependencies: [
  79. "CoreDataStack",
  80. "MastodonAsset",
  81. "MastodonCommon",
  82. "MastodonLocalization",
  83. "MastodonSDK",
  84. .product(name: "Alamofire", package: "Alamofire"),
  85. .product(name: "AlamofireImage", package: "AlamofireImage"),
  86. .product(name: "CommonOSLog", package: "CommonOSLog"),
  87. .product(name: "ArkanaKeys", package: "ArkanaKeys"),
  88. .product(name: "KeychainAccess", package: "KeychainAccess"),
  89. .product(name: "MetaTextKit", package: "MetaTextKit")
  90. ]
  91. ),
  92. .target(
  93. name: "MastodonExtension",
  94. dependencies: []
  95. ),
  96. .target(
  97. name: "MastodonLocalization",
  98. dependencies: []
  99. ),
  100. .target(
  101. name: "MastodonSDK",
  102. dependencies: [
  103. .product(name: "NIOHTTP1", package: "swift-nio"),
  104. ]
  105. ),
  106. .target(
  107. name: "MastodonUI",
  108. dependencies: [
  109. "MastodonCore",
  110. .product(name: "FLAnimatedImage", package: "FLAnimatedImage"),
  111. .product(name: "FaviconFinder", package: "FaviconFinder"),
  112. .product(name: "Nuke", package: "Nuke"),
  113. .product(name: "Introspect", package: "SwiftUI-Introspect"),
  114. .product(name: "UITextView+Placeholder", package: "UITextView-Placeholder"),
  115. .product(name: "UIHostingConfigurationBackport", package: "UIHostingConfigurationBackport"),
  116. .product(name: "TabBarPager", package: "TabBarPager"),
  117. .product(name: "ThirdPartyMailer", package: "ThirdPartyMailer"),
  118. .product(name: "OrderedCollections", package: "swift-collections"),
  119. .product(name: "Tabman", package: "Tabman"),
  120. .product(name: "MetaTextKit", package: "MetaTextKit"),
  121. .product(name: "CropViewController", package: "TOCropViewController"),
  122. .product(name: "PanModal", package: "PanModal"),
  123. .product(name: "Stripes", package: "Stripes"),
  124. .product(name: "Kingfisher", package: "Kingfisher"),
  125. .product(name: "NextLevelSessionExporter", package: "NextLevelSessionExporter"),
  126. ]
  127. ),
  128. .testTarget(
  129. name: "MastodonSDKTests",
  130. dependencies: ["MastodonSDK"]
  131. ),
  132. ]
  133. )