Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
folium-app
GitHub Repository: folium-app/Folium
Path: blob/a-new-beginning/SharedDependencies/Package.swift
2 views
// swift-tools-version: 6.2
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let endpoint: String = "https://github.com/folium-app/SharedDependencies/releases/download"
let version: String = "0.0.5"
let `extension`: String = "xcframework.zip"

func url(_ name: String, _ version: String = "0.0.5") -> String {
    "\(endpoint)/\(version)/\(name).\(`extension`)"
}

let package = Package(
    name: "SharedDependencies",
    platforms: [
        .iOS(.v16),
        .macOS(.v26)
    ],
    products: [
        .library(name: "SharedDependencies", targets: [
            "SharedDependencies"
        ])
    ],
    dependencies: [
        .package(url: "https://github.com/jarrodnorwell/PLzmaSDK", branch: "master"),
        .package(url: "https://github.com/krzyzanowskim/OpenSSL", branch: "main")
    ],
    targets: [
        .target(name: "SharedDependencies", dependencies: [
            "lib_boostcontext",
            "lib_boostiostreams",
            "lib_boostprogramoptions",
            "lib_boostserialization",
            "lib_dynarmic",
            "lib_fmt",
            "lib_mcl",
            "lib_enet",
            "lib_faad2",
            "lib_genericcodegen",
            "lib_glslang",
            "lib_machineindependent",
            "lib_spirv",
            "lib_openal",
            "lib_opus",
            "lib_sdl3",
            "lib_sirit",
            "lib_soundtouch",
            "lib_teakra",
            "cereal",
            "cryptopp",
            "dds_ktx",
            "eventbus",
            "glib",
            "httplib",
            "inih",
            "jwt",
            "libchdr",
            "libslirp",
            "lodepng",
            "magic_enum",
            "metal_cpp",
            "microprofile",
            "miniz",
            "nihstro",
            "nlohmann",
            "oaknut",
            "stb",
            "toml",
            "tsl",
            "xxhash"
        ], cxxSettings: [
            .define("SDL_MAIN_HANDLED")
        ]),
        .target(name: "cereal", publicHeadersPath: "include"),
        .target(name: "cryptopp", publicHeadersPath: "include", cxxSettings: [
            .define("CRYPTOPP_DISABLE_ARM_CRC32"),
            .headerSearchPath("include/cryptopp")
        ]),
        .target(name: "dds_ktx", publicHeadersPath: "include"),
        .target(name: "eventbus", publicHeadersPath: "include"),
        .target(name: "glib", publicHeadersPath: "include"),
        .target(name: "httplib", publicHeadersPath: "include"),
        .target(name: "inih", publicHeadersPath: "include"),
        .target(name: "jwt", dependencies: [
            "OpenSSL"
        ], publicHeadersPath: "include"),
        .target(name: "libchdr", dependencies: [
            "FLAC",
            "ogg",
            .product(name: "PLzmaSDK-Static", package: "PLzmaSDK")
        ], publicHeadersPath: "include"),
        .target(name: "libslirp", dependencies: [
            "glib"
        ], publicHeadersPath: "include", cSettings: [
            .unsafeFlags([
                "-D_NETINET_TCP_VAR_H_",
                "-ffast-math"
            ])
        ]),
        .target(name: "lodepng", publicHeadersPath: "include"),
        .target(name: "magic_enum", publicHeadersPath: "include"),
        .target(name: "metal_cpp", publicHeadersPath: "include"),
        .target(name: "microprofile", publicHeadersPath: "include"),
        .target(name: "miniz", publicHeadersPath: "include"),
        .target(name: "nihstro", sources: [
            "parser_assembly"
        ], publicHeadersPath: "include", cxxSettings: [
            .unsafeFlags([
                "-I/opt/homebrew/include",
                "-I/usr/local/include"
            ])
        ]),
        .target(name: "nlohmann", publicHeadersPath: "include"),
        .target(name: "oaknut", publicHeadersPath: "include"),
        .target(name: "stb", publicHeadersPath: "include"),
        .target(name: "toml", publicHeadersPath: "include"),
        .target(name: "tsl", publicHeadersPath: "include"),
        .target(name: "xxhash", publicHeadersPath: "include"),
        
        .binaryTarget(name: "lib_boostcontext",
                      url: url("lib_boostcontext", "0.0.6"),
                      checksum: "0fdb5520d200b5c2b0b376c396b8271c8bf1627d576884e1a255a5630abddda1"),
        
        .binaryTarget(name: "lib_boostiostreams",
                      url: url("lib_boostiostreams", "0.0.6"),
                      checksum: "496dacfaa036ab2e6287a034f6659dd68e18c6808f00080a6dd546451fd0ae31"),
        
        .binaryTarget(name: "lib_boostprogramoptions",
                      url: url("lib_boostprogramoptions", "0.0.6"),
                      checksum: "a405b06fa63794e25334b6e4fa37ab34c8e541696f2ab9e02edae598d1dbda1a"),
        
        .binaryTarget(name: "lib_boostserialization",
                      url: url("lib_boostserialization", "0.0.6"),
                      checksum: "c1935bdb9c5b3611885399370b6f9a35a005ff0842bf02cd870cf1e150ce1a20"),
        
        .binaryTarget(name: "lib_dynarmic",
                      url: url("lib_dynarmic", "0.0.7"),
                      checksum: "cb5860a2db80f3b433b924b763cd8261cc64470d3480f0db67a764109d039de9"),
        
        .binaryTarget(name: "lib_enet",
                      url: url("lib_enet", "0.0.6"),
                      checksum: "3b26f257c9a7262fb3b41d3b8769b7326a1b57e21ac69c9366e15cc6543c5daa"),
        
        .binaryTarget(name: "lib_faad2",
                      url: url("lib_faad2", "0.0.6"),
                      checksum: "0a9ef946173bb718db2dd92bb99694bc05bdef9655067447c309bf01068fad93"),
        
        .binaryTarget(name: "lib_fmt",
                      url: url("lib_fmt", "0.0.7"),
                      checksum: "251329dee13a24aba30b9a2cf5f1ed769830fc53ac59573da483ebc4e5707cb7"),
        
        .binaryTarget(name: "lib_genericcodegen",
                      url: url("lib_genericcodegen", "0.0.6"),
                      checksum: "e3fc490833ab15667fb138bbc11b8980200f7901b973be70598b80de04369464"),
        
        .binaryTarget(name: "lib_glslang",
                      url: url("lib_glslang", "0.0.6"),
                      checksum: "25990afa3598b854d26cf1584e0ac0cb577d07765a2a7dd3539dfc69d4ed8553"),
        
        .binaryTarget(name: "lib_machineindependent",
                      url: url("lib_machineindependent", "0.0.6"),
                      checksum: "c7e57cc8941f55e8976911fe5e80c273a7f9b9a54dc86e39dede2f68364b7bed"),
        
        .binaryTarget(name: "lib_mcl",
                      url: url("lib_mcl", "0.0.7"),
                      checksum: "2c1245bc505755817d5504eb52ac89974ae5dbc08f1fe48afcb34b2e060bc162"),
        
        .binaryTarget(name: "lib_openal",
                      url: url("lib_openal", "0.0.6"),
                      checksum: "cd3b705180897f46c1568623ef505df5d1e6561204673a83e10d9fe68278daf2"),
        
        .binaryTarget(name: "lib_opus",
                      url: url("lib_opus", "0.0.6"),
                      checksum: "e4eae58d69642d6ff647e89dbf9a3fe360448c1e3e9a818c2514a4ad81a75e56"),
        
        .binaryTarget(name: "lib_sdl3",
                      url: url("lib_sdl3", "0.0.7"),
                      checksum: "157266698caea1dc10eff355d2d500eb15f994f17f52f16e8cee20f15cc99a9b"),
        
        .binaryTarget(name: "lib_sirit",
                      url: url("lib_sirit", "0.0.6"),
                      checksum: "b03a5e4fe9dbda4b9e74d354c43e447e8edfed4fef8578345e6061a3ce6806fe"),
        
        .binaryTarget(name: "lib_soundtouch",
                      url: url("lib_soundtouch", "0.0.6"),
                      checksum: "954cdde14d37cfaec06e0c7580c4c6ab4eb8fb3b5f01967dd33ab026fde19135"),
        
        .binaryTarget(name: "lib_spirv",
                      url: url("lib_spirv", "0.0.6"),
                      checksum: "56d38af6be42a19d7366d94a4021df2be8e9cedd8178917ed702893a04c76e99"),
        
        .binaryTarget(name: "lib_teakra",
                      url: url("lib_teakra", "0.0.7"),
                      checksum: "1acbc735d0ada8aa9111f4c9b928d83bb440039d45d35ae2f3f67429ff8f6bb3"),
        
        .binaryTarget(name: "FLAC",
                      url: "https://github.com/sbooth/flac-binary-xcframework/releases/download/0.2.0/FLAC.xcframework.zip",
                      checksum: "87f1b13fb490867790b96d52fcbeb1a23847b8f45f50cece530d533266c2001e"),
        .binaryTarget(name: "ogg",
                      url: "https://github.com/sbooth/ogg-binary-xcframework/releases/download/0.1.2/ogg.xcframework.zip",
                      checksum: "b6ab2dcf89076ca9488ef32d810d0343a2072fadd9eb94247f498b7b87070e2e")
        
    ],
    cLanguageStandard: .gnu2x,
    cxxLanguageStandard: .gnucxx2b
)