-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPackage.swift
More file actions
78 lines (77 loc) · 3.21 KB
/
Copy pathPackage.swift
File metadata and controls
78 lines (77 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// swift-tools-version: 5.9
import PackageDescription
let package = Package(
name: "Simpleton",
platforms: [.macOS(.v14)],
products: [
.library(name: "SimpletonCore", targets: ["SimpletonCore"]),
.executable(name: "Simpleton", targets: ["Simpleton"]),
],
dependencies: [
.package(url: "https://github.com/migueldeicaza/SwiftTerm", from: "1.0.0"),
.package(url: "https://github.com/sparkle-project/Sparkle", from: "2.6.0"),
.package(url: "https://github.com/vapor/postgres-nio.git", exact: "1.33.1"),
.package(url: "https://github.com/vapor/mysql-nio.git", exact: "1.9.1"),
.package(url: "https://github.com/orlandos-nl/Citadel.git", exact: "0.12.1"),
.package(url: "https://github.com/soto-project/soto.git", exact: "7.15.0"),
],
targets: [
.target(
name: "SimpletonCore",
dependencies: ["SwiftTerm"]
),
// SQL client data layer. Isolates the heavy NIO drivers from SimpletonCore and the app.
.target(
name: "SimpletonSQL",
dependencies: [
"SimpletonCore",
.product(name: "PostgresNIO", package: "postgres-nio"),
.product(name: "MySQLNIO", package: "mysql-nio"),
]
),
// SFTP client data layer. Isolates the SwiftNIO-SSH / Citadel stack from SimpletonCore and the app.
.target(
name: "SimpletonSFTP",
dependencies: [
"SimpletonCore",
.product(name: "Citadel", package: "Citadel"),
]
),
// S3 client data layer. Isolates the Soto AWS SDK (S3 only) from SimpletonCore and the app;
// reuses the swift-nio / async-http-client / swift-crypto tree already vendored by the SQL NIO
// drivers, so no new C runtime is pulled in.
.target(
name: "SimpletonS3",
dependencies: [
"SimpletonCore",
.product(name: "SotoS3", package: "soto"),
]
),
// AMQP (RabbitMQ) management client. Talks to the RabbitMQ Management HTTP API over
// URLSession/Foundation only — no AMQP client library, no third-party dependency.
.target(
name: "SimpletonAMQP",
dependencies: ["SimpletonCore"]
),
.executableTarget(
name: "Simpleton",
dependencies: [
"SimpletonCore", "SimpletonSQL", "SimpletonSFTP", "SimpletonS3", "SimpletonAMQP", "SwiftTerm",
.product(name: "Sparkle", package: "Sparkle"),
],
resources: [.process("Resources")],
linkerSettings: [.linkedFramework("NaturalLanguage")]
),
.testTarget(
name: "SimpletonCoreTests",
dependencies: ["SimpletonCore"]
),
// No-Xcode check runner: XCTest/swift-testing are unavailable on this machine,
// so runnable checks live in a plain executable target (see Tests/CoreChecks).
.executableTarget(
name: "CoreChecks",
dependencies: ["SimpletonCore", "SimpletonSQL", "SimpletonSFTP", "SimpletonS3", "SimpletonAMQP"],
path: "Tests/CoreChecks"
),
]
)