diff --git a/Package.swift b/Package.swift index a65264d..89e9408 100644 --- a/Package.swift +++ b/Package.swift @@ -2,6 +2,16 @@ import PackageDescription import CompilerPluginSupport +var Cryptography: String { "Cryptography" } + +var enabledTraits: Set + +#if os(Linux) +enabledTraits = [Cryptography] +#else +enabledTraits = [] +#endif + let package: Package = .init( name: "swift-github", platforms: [.macOS(.v15), .iOS(.v18), .tvOS(.v18), .watchOS(.v11), .visionOS(.v2)], @@ -11,6 +21,10 @@ let package: Package = .init( .library(name: "GitHubRSA", targets: ["GitHubRSA"]), .library(name: "SHA1_JSON", targets: ["SHA1_JSON"]), ], + traits: [ + .trait(name: Cryptography), + .default(enabledTraits: enabledTraits), + ], dependencies: [ .package(url: "https://github.com/ordo-one/dollup", from: "1.0.1"), @@ -44,10 +58,14 @@ let package: Package = .init( name: "GitHubRSA", dependencies: [ .target(name: "GitHubAPI"), - - .product(name: "Cryptography", package: "swift-cryptography"), + .product( + name: "Cryptography", + package: "swift-cryptography", + condition: .when(traits: [Cryptography]) + ), .product(name: "JWT", package: "swift-jwt"), - ] + ], + ), .target( diff --git a/Sources/GitHubRSA/RSA.PrivateKey (ext).swift b/Sources/GitHubRSA/RSA.PrivateKey (ext).swift index dc34d60..facd1ec 100644 --- a/Sources/GitHubRSA/RSA.PrivateKey (ext).swift +++ b/Sources/GitHubRSA/RSA.PrivateKey (ext).swift @@ -1,3 +1,4 @@ +#if canImport(Cryptography) public import GitHubAPI public import Cryptography import JSON @@ -10,3 +11,4 @@ extension RSA.PrivateKey { } } } +#endif