passepartout-apple/Packages/PassepartoutKit-Framework/Package.swift
Davide 1942b82ebb
Rework App+Kit as monorepository (#1055)
Simplify development and maintenance immensely by making this a
monorepository:

- Convert PassepartoutKit and VPN bindings to local packages
  - OpenVPN/OpenSSL
  - WireGuard/Go
- Make PassepartoutKit available via
  - Source submodule for production (private)
- [Binary XCFramework for
development](https://github.com/passepartoutvpn/passepartoutkit)
 - Add PassepartoutKit Demo in root
   - Deploy package later
2025-01-13 12:26:53 +01:00

70 lines
1.8 KiB
Swift

// swift-tools-version: 6.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let environment: Environment
//environment = .production
environment = .onlineDevelopment
enum Environment {
case localDevelopment
case onlineDevelopment
case production
var dependencies: [Package.Dependency] {
switch self {
case .localDevelopment, .onlineDevelopment:
return []
case .production:
return [.package(path: "../PassepartoutKit")]
}
}
var targets: [Target] {
var targets: [Target] = []
switch self {
case .localDevelopment:
targets.append(.binaryTarget(
name: "Target",
path: "PassepartoutKit.xcframework.zip"
))
case .onlineDevelopment:
targets.append(.binaryTarget(
name: "Target",
url: "https://github.com/passepartoutvpn/passepartoutkit/releases/download/0.99.0/PassepartoutKit.xcframework.zip",
checksum: "9b75b289e6043de0044b691b1518a595bd7a7dba0b40be3125ca82d3e528a8e4"
))
case .production:
targets.append(.target(
name: "Target",
dependencies: ["PassepartoutKit"]
))
}
targets.append(.testTarget(
name: "TargetTests",
dependencies: ["Target"]
))
return targets
}
}
let package = Package(
name: "PassepartoutKit-Framework",
platforms: [
.iOS(.v15),
.macOS(.v12),
.tvOS(.v17)
],
products: [
.library(
name: "PassepartoutKit-Framework",
targets: ["Target"]
)
],
dependencies: environment.dependencies,
targets: environment.targets
)