// swift-tools-version:5.7 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription let publicLibraryTargets = [ "CoreDataStack", "MastodonAsset", "MastodonCommon", "MastodonCore", "MastodonExtension", "MastodonLocalization", "MastodonSDK", "MastodonUI", ] let package = Package( name: "MastodonSDK", defaultLocalization: "en", platforms: [ .iOS(.v16), ], products: [ // Static Library .library( name: "MastodonSDK", targets: publicLibraryTargets ), // Dynamic Library .library( name: "MastodonSDKDynamic", type: .dynamic, targets: publicLibraryTargets ) ], dependencies: [ .package(name: "ArkanaKeys", path: "../dependencies/ArkanaKeys"), .package(url: "https://github.com/will-lumley/FaviconFinder.git", from: "4.5.0"), .package(url: "https://github.com/MainasuK/UITextView-Placeholder.git", from: "1.4.1"), .package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.4.0"), .package(url: "https://github.com/Alamofire/AlamofireImage.git", from: "4.1.0"), .package(url: "https://github.com/apple/swift-collections.git", from: "1.0.3"), .package(url: "https://github.com/apple/swift-nio.git", from: "2.0.0"), .package(url: "https://github.com/Flipboard/FLAnimatedImage.git", from: "1.0.0"), .package(url: "https://github.com/kean/Nuke.git", from: "10.3.1"), .package(url: "https://github.com/kishikawakatsumi/KeychainAccess.git", from: "4.2.2"), .package(url: "https://github.com/TimOliver/TOCropViewController.git", from: "2.6.1"), .package(url: "https://github.com/mastodon/MetaTextKit.git", branch: "2.2.5-xcode16"), .package(url: "https://github.com/TwidereProject/TabBarPager.git", from: "0.1.0"), .package(url: "https://github.com/uias/Tabman", from: "2.13.0"), .package(url: "https://github.com/woxtu/UIHostingConfigurationBackport.git", from: "0.1.0"), .package(url: "https://github.com/SDWebImage/SDWebImage.git", from: "5.12.0"), .package(url: "https://github.com/eneko/Stripes.git", from: "0.2.0"), .package(url: "https://github.com/NextLevel/NextLevelSessionExporter.git", from: "0.4.6"), .package(url: "https://github.com/xmartlabs/XLPagerTabStrip.git", from: "9.1.0"), ], targets: [ // Targets are the basic building blocks of a package. A target can define a module or a test suite. // Targets can depend on other targets in this package, and on products in packages this package depends on. .target( name: "CoreDataStack", dependencies: [ "MastodonCommon", ], exclude: [ "Template/Stencil" ] ), .target( name: "MastodonAsset", dependencies: [], resources: [ .process("Font"), ] ), .target( name: "MastodonCommon", dependencies: [ "MastodonExtension", ] ), .target( name: "MastodonCore", dependencies: [ "CoreDataStack", "MastodonAsset", "MastodonCommon", "MastodonLocalization", "MastodonSDK", .product(name: "Alamofire", package: "Alamofire"), .product(name: "AlamofireImage", package: "AlamofireImage"), .product(name: "ArkanaKeys", package: "ArkanaKeys"), .product(name: "KeychainAccess", package: "KeychainAccess"), .product(name: "MetaTextKit", package: "MetaTextKit") ] ), .target( name: "MastodonExtension", dependencies: [] ), .target( name: "MastodonLocalization", dependencies: [] ), .target( name: "MastodonSDK", dependencies: [ .product(name: "NIOHTTP1", package: "swift-nio"), "MastodonCommon" ] ), .target( name: "MastodonUI", dependencies: [ "MastodonCore", .product(name: "FLAnimatedImage", package: "FLAnimatedImage"), .product(name: "FaviconFinder", package: "FaviconFinder"), .product(name: "Nuke", package: "Nuke"), .product(name: "UITextView+Placeholder", package: "UITextView-Placeholder"), .product(name: "UIHostingConfigurationBackport", package: "UIHostingConfigurationBackport"), .product(name: "TabBarPager", package: "TabBarPager"), .product(name: "OrderedCollections", package: "swift-collections"), .product(name: "Tabman", package: "Tabman"), .product(name: "MetaTextKit", package: "MetaTextKit"), .product(name: "CropViewController", package: "TOCropViewController"), .product(name: "Stripes", package: "Stripes"), .product(name: "NextLevelSessionExporter", package: "NextLevelSessionExporter"), .product(name: "SDWebImage", package: "SDWebImage"), .product(name: "XLPagerTabStrip", package: "XLPagerTabStrip"), ] ), .testTarget( name: "MastodonSDKTests", dependencies: ["MastodonSDK"] ), ] )