// swift-tools-version:5.8 import PackageDescription let package = Package( name: "MPVKit", platforms: [.macOS(.v11), .iOS(.v14), .tvOS(.v14)], products: [ .library( name: "MPVKit", targets: ["_MPVKit"] ), .library( name: "DesktopMPVBridge", type: .dynamic, targets: ["DesktopMPVBridge"] ), .library( name: "MPVKit-GPL", targets: ["_MPVKit-GPL"] ), ], targets: [ .target( name: "DesktopMPVBridge", dependencies: [ "Libmpv", "_MPVKit", ], path: "Sources/DesktopMPVBridge", linkerSettings: [ .linkedFramework("Foundation"), .linkedFramework("AppKit"), .linkedFramework("SwiftUI"), .linkedFramework("OpenGL"), ] ), .target( name: "_MPVKit", dependencies: [ "Libmpv", "_FFmpeg", "Libuchardet", "Libbluray", .target(name: "Libluajit", condition: .when(platforms: [.macOS])), ], path: "Sources/_MPVKit", linkerSettings: [ .linkedFramework("AVFoundation"), .linkedFramework("CoreAudio"), ] ), .target( name: "_FFmpeg", dependencies: [ "Libavcodec", "Libavdevice", "Libavfilter", "Libavformat", "Libavutil", "Libswresample", "Libswscale", "Libssl", "Libcrypto", "Libass", "Libfreetype", "Libfribidi", "Libharfbuzz", "MoltenVK", "Libshaderc_combined", "lcms2", "Libplacebo", "Libdovi", "Libunibreak", "gmp", "nettle", "hogweed", "gnutls", "Libdav1d", "Libuavs3d" ], path: "Sources/_FFmpeg", linkerSettings: [ .linkedFramework("AudioToolbox"), .linkedFramework("CoreVideo"), .linkedFramework("CoreFoundation"), .linkedFramework("CoreMedia"), .linkedFramework("Metal"), .linkedFramework("VideoToolbox"), .linkedLibrary("bz2"), .linkedLibrary("iconv"), .linkedLibrary("expat"), .linkedLibrary("resolv"), .linkedLibrary("xml2"), .linkedLibrary("z"), .linkedLibrary("c++"), ] ), .target( name: "_MPVKit-GPL", dependencies: [ "Libmpv-GPL", "_FFmpeg-GPL", "Libuchardet", "Libbluray", .target(name: "Libluajit", condition: .when(platforms: [.macOS])), ], path: "Sources/_MPVKit-GPL", linkerSettings: [ .linkedFramework("AVFoundation"), .linkedFramework("CoreAudio"), ] ), .target( name: "_FFmpeg-GPL", dependencies: [ "Libavcodec-GPL", "Libavdevice-GPL", "Libavfilter-GPL", "Libavformat-GPL", "Libavutil-GPL", "Libswresample-GPL", "Libswscale-GPL", "Libssl", "Libcrypto", "Libass", "Libfreetype", "Libfribidi", "Libharfbuzz", "MoltenVK", "Libshaderc_combined", "lcms2", "Libplacebo", "Libdovi", "Libunibreak", "Libsmbclient", "gmp", "nettle", "hogweed", "gnutls", "Libdav1d", "Libuavs3d" ], path: "Sources/_FFmpeg-GPL", linkerSettings: [ .linkedFramework("AudioToolbox"), .linkedFramework("CoreVideo"), .linkedFramework("CoreFoundation"), .linkedFramework("CoreMedia"), .linkedFramework("Metal"), .linkedFramework("VideoToolbox"), .linkedLibrary("bz2"), .linkedLibrary("iconv"), .linkedLibrary("expat"), .linkedLibrary("resolv"), .linkedLibrary("xml2"), .linkedLibrary("z"), .linkedLibrary("c++"), ] ), .binaryTarget( name: "Libmpv-GPL", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libmpv-GPL.xcframework.zip", checksum: "f766f158562f7d036bce01f2d22f4c6b94b3a9bc71e7b853daa1ada72245f1d8" ), .binaryTarget( name: "Libavcodec-GPL", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libavcodec-GPL.xcframework.zip", checksum: "41955b57c7303678ae563489d452ba202a279f42c909b6bf2fa3aa08df5e9b44" ), .binaryTarget( name: "Libavdevice-GPL", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libavdevice-GPL.xcframework.zip", checksum: "ac7ce10c8fc2cec8a684c7d0bca3658bb01292f7624108653bee887db80917f7" ), .binaryTarget( name: "Libavformat-GPL", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libavformat-GPL.xcframework.zip", checksum: "2a9b0d93ba3c89fe7bffd49967817117338911667a81f70ec8d69f2a87ff0eac" ), .binaryTarget( name: "Libavfilter-GPL", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libavfilter-GPL.xcframework.zip", checksum: "2f3a3978387e5a3800f56566001d45bd8e9dbd6e3e59e09150534bea0c7b11fc" ), .binaryTarget( name: "Libavutil-GPL", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libavutil-GPL.xcframework.zip", checksum: "e1fd23295c77a5ecdfe4d2f640f71762bba1c72db18c3ac1e16fd3d075b611b2" ), .binaryTarget( name: "Libswresample-GPL", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libswresample-GPL.xcframework.zip", checksum: "1b6ea15454dfa29536d86912de97973693bd6fe6495f7a10b571df9eb533da0b" ), .binaryTarget( name: "Libswscale-GPL", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libswscale-GPL.xcframework.zip", checksum: "0744713463132e5f5df0e9f2624eb764a4275887f04b6ac46b5d7eb3fe144743" ), //AUTO_GENERATE_TARGETS_BEGIN// .binaryTarget( name: "Libcrypto", url: "https://github.com/mpvkit/openssl-build/releases/download/3.3.5/Libcrypto.xcframework.zip", checksum: "593283be2a90f7fd66f6e6ed331b2f099cf403e0926fe3b4ac09a7062b793965" ), .binaryTarget( name: "Libssl", url: "https://github.com/mpvkit/openssl-build/releases/download/3.3.5/Libssl.xcframework.zip", checksum: "ff5ffd43d015d7285fd37e4a3145b25cbd8d2842740bd629a711c299a20e226a" ), .binaryTarget( name: "gmp", url: "https://github.com/mpvkit/gnutls-build/releases/download/3.8.11/gmp.xcframework.zip", checksum: "ad33c7a08f4cdcb9924c8f0e6d9a054dad33d7794b97667bf8b6fb2b236ae585" ), .binaryTarget( name: "nettle", url: "https://github.com/mpvkit/gnutls-build/releases/download/3.8.11/nettle.xcframework.zip", checksum: "0fdf3ebf8bd7b8bc8eee837cf27261cb4c52ae520b6576a2f468656aa1691e02" ), .binaryTarget( name: "hogweed", url: "https://github.com/mpvkit/gnutls-build/releases/download/3.8.11/hogweed.xcframework.zip", checksum: "25727c9fa67287fa0a4f4722f88bb8be669b23cd7e837e2d00870eb8a25d3f27" ), .binaryTarget( name: "gnutls", url: "https://github.com/mpvkit/gnutls-build/releases/download/3.8.11/gnutls.xcframework.zip", checksum: "3dbec5809339189bf9679e218c6cff387ebf8fb72745927835afc2678f5c9f4d" ), .binaryTarget( name: "Libunibreak", url: "https://github.com/mpvkit/libass-build/releases/download/0.17.4/Libunibreak.xcframework.zip", checksum: "001087c0e927ae00f604422b539898b81eb77230ea7700597b70393cd51e946c" ), .binaryTarget( name: "Libfreetype", url: "https://github.com/mpvkit/libass-build/releases/download/0.17.4/Libfreetype.xcframework.zip", checksum: "f2840aba1ce35e51c0595557eee82c908dac8e32108ecc0661301c06061e051c" ), .binaryTarget( name: "Libfribidi", url: "https://github.com/mpvkit/libass-build/releases/download/0.17.4/Libfribidi.xcframework.zip", checksum: "4a55513792ef7a17893875f74cc84c56f3657e8768c07a7a96f563a11dc4b743" ), .binaryTarget( name: "Libharfbuzz", url: "https://github.com/mpvkit/libass-build/releases/download/0.17.4/Libharfbuzz.xcframework.zip", checksum: "91558d8497d9d97bc11eeef8b744d104315893bfee8f17483d8002e14565f84b" ), .binaryTarget( name: "Libass", url: "https://github.com/mpvkit/libass-build/releases/download/0.17.4/Libass.xcframework.zip", checksum: "1e41f5a69c74f6c6407aab84a65ccd0b34e73fa44465f488f99bf22bd61b070d" ), .binaryTarget( name: "Libsmbclient", url: "https://github.com/mpvkit/libsmbclient-build/releases/download/4.15.13-2512/Libsmbclient.xcframework.zip", checksum: "3a53375fab11bc888cc553664ea5dd902208d04f0cc21ec746302bf356246b6f" ), .binaryTarget( name: "Libbluray", url: "https://github.com/mpvkit/libbluray-build/releases/download/1.4.0/Libbluray.xcframework.zip", checksum: "bc037d34e2b0b5ab7f202fb371f5fb298136cc66fdf406c2172185d06f53f18d" ), .binaryTarget( name: "Libuavs3d", url: "https://github.com/mpvkit/libuavs3d-build/releases/download/1.2.1-xcode/Libuavs3d.xcframework.zip", checksum: "1e69250279be9334cd2f6849abdc884c8e4bb29212467b6f071fdc1ac2010b6b" ), .binaryTarget( name: "Libdovi", url: "https://github.com/mpvkit/libdovi-build/releases/download/3.3.2/Libdovi.xcframework.zip", checksum: "e693e239808350868e79c5448ef9f02e2716bc822dd8632a41a368a1eae5ca7d" ), .binaryTarget( name: "MoltenVK", url: "https://github.com/mpvkit/moltenvk-build/releases/download/1.4.1/MoltenVK.xcframework.zip", checksum: "9bd1ca1e4563bacd25d6e55d37b10341d50b2601bc2684bc332188e79daa2b79" ), .binaryTarget( name: "Libshaderc_combined", url: "https://github.com/mpvkit/libshaderc-build/releases/download/2025.5.0/Libshaderc_combined.xcframework.zip", checksum: "758047b615708575b580eb960a2d083f760a29dc462d6eaa360416c946ce433b" ), .binaryTarget( name: "lcms2", url: "https://github.com/mpvkit/lcms2-build/releases/download/2.17.0/lcms2.xcframework.zip", checksum: "dc0dce0606f6ab6841a8ec5a6bd4448e2f3ef00661a050460f806c9393dc6982" ), .binaryTarget( name: "Libplacebo", url: "https://github.com/mpvkit/libplacebo-build/releases/download/7.351.0-2512/Libplacebo.xcframework.zip", checksum: "3b2bd57b82549566963effadf0891a141448d9f89c7d48fca0b8f823b854bac6" ), .binaryTarget( name: "Libdav1d", url: "https://github.com/mpvkit/libdav1d-build/releases/download/1.5.2-xcode/Libdav1d.xcframework.zip", checksum: "8a8b78e23e28ecc213232805f3c1936141fc9befe113e87234f4f897f430a532" ), .binaryTarget( name: "Libavcodec", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libavcodec.xcframework.zip", checksum: "6ccb6b5cf8fc05665f2ee4958f640b328755414946e9541adda40c536568ec43" ), .binaryTarget( name: "Libavdevice", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libavdevice.xcframework.zip", checksum: "f571fbdef20e8d94ce6c8692eeee1fdff627e691cfcd2de5f9f294655c8cc405" ), .binaryTarget( name: "Libavformat", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libavformat.xcframework.zip", checksum: "7ff0af2e5ee5a1f5d278caedb96a395c7c29f563f09cdf977b6670bc9724cb7d" ), .binaryTarget( name: "Libavfilter", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libavfilter.xcframework.zip", checksum: "965d1271c37181b1fe23d34d0c7c1cb7626a080d5925d3bdb1d1f84afd7b3d7d" ), .binaryTarget( name: "Libavutil", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libavutil.xcframework.zip", checksum: "7a8716f9ac793e2da895b9f87c37b56a9a2065f2c1f31b60f3d3589bea6c50a1" ), .binaryTarget( name: "Libswresample", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libswresample.xcframework.zip", checksum: "7beb6e337b69882771c58281d42a449d8810e836e7ce07c6f91827267ab4fabd" ), .binaryTarget( name: "Libswscale", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libswscale.xcframework.zip", checksum: "e9d660dc6eb27d20a25aa5659a966f07cf1a97ed9049ec19e8a06b3f2aec6b41" ), .binaryTarget( name: "Libuchardet", url: "https://github.com/mpvkit/libuchardet-build/releases/download/0.0.8-xcode/Libuchardet.xcframework.zip", checksum: "503202caa0dafb6996b2443f53408a713b49f6c2d4a26d7856fd6143513a50d7" ), .binaryTarget( name: "Libluajit", url: "https://github.com/mpvkit/libluajit-build/releases/download/2.1.0-xcode/Libluajit.xcframework.zip", checksum: "8e76f267ee100ff5f3bbde7641b2240566df722241cdf8e135be7ef3d29e237a" ), .binaryTarget( name: "Libmpv", url: "https://github.com/mpvkit/MPVKit/releases/download/0.41.0/Libmpv.xcframework.zip", checksum: "9ff5077d675a1e12bec98db167a49f46eb57dba567f40558b7758d4f12fb3ae7" ), //AUTO_GENERATE_TARGETS_END// ] )