39 lines
1.5 KiB
Swift
39 lines
1.5 KiB
Swift
// swift-tools-version:5.0
|
|
// The swift-tools-version declares the minimum version of Swift required to build this package.
|
|
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "AWSSigner",
|
|
products: [
|
|
.library(name: "AWSSigner", targets: ["AWSSigner"]),
|
|
.library(name: "HTTPClientAWSSigner", targets: ["HTTPClientAWSSigner"]),
|
|
],
|
|
dependencies: [
|
|
.package(url: "https://github.com/apple/swift-nio", .upToNextMajor(from: "2.0.0")),
|
|
.package(url: "https://github.com/swift-server/async-http-client", .upToNextMajor(from: "1.0.0"))
|
|
],
|
|
targets: [
|
|
.target(name: "AWSSigner", dependencies: ["AWSCrypto", "NIO", "NIOHTTP1"]),
|
|
.target(name: "AWSCrypto", dependencies: ["CAWSCrypto"]),
|
|
.target(name: "CAWSCrypto", dependencies: []),
|
|
|
|
.target(name: "HTTPClientAWSSigner", dependencies: ["AWSSigner", "AsyncHTTPClient"]),
|
|
|
|
.testTarget(name: "AWSSignerTests", dependencies: ["AWSSigner", "HTTPClientAWSSigner"]),
|
|
.testTarget(name: "AWSCryptoTests", dependencies: ["AWSCrypto"]),
|
|
]
|
|
)
|
|
|
|
// switch for whether to use CAWSSigner to shim between OpenSSL versions
|
|
#if os(Linux)
|
|
let useOpenSSLShim = true
|
|
#else
|
|
let useOpenSSLShim = false
|
|
#endif
|
|
|
|
// Decide on where we get our SSL support from. Linux usses NIOSSL to provide SSL. Linux also needs CAWSSDKOpenSSL to shim across different OpenSSL versions for the HMAC functions.
|
|
if useOpenSSLShim {
|
|
package.dependencies.append(.package(url: "https://github.com/apple/swift-nio-ssl-support.git", from: "1.0.0"))
|
|
}
|