-
Notifications
You must be signed in to change notification settings - Fork 0
66 lines (64 loc) · 1.58 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
// swift-tools-version: 5.7
import PackageDescription
let name = "clutch"
let clatch = "clatch"
let clutchArgParser = "ClutchAP"
func apple(
_ package: String,
_ version: String
) -> PackageDescription.Package.Dependency {
.package(
url: "https://github.com/apple/\(package)",
from: Version(stringLiteral: version)
)
}
let package = Package(
name: name,
platforms: [ .macOS(.v12) ],
products: [
.executable(name: name, targets: [name]),
.executable(name: clatch, targets: [clatch]),
.executable(name: clutchArgParser, targets: [clutchArgParser]),
],
dependencies: [
apple("swift-atomics", "1.2.0"),
apple("swift-system", "1.2.2"),
apple("swift-argument-parser", "1.5.0"),
],
targets: [
.target(
name: "\(name)Lib",
dependencies: [
.product(name: "SystemPackage", package: "swift-system"),
],
path: "Sources/\(name)"
),
.executableTarget( // RUN:clutch
name: name,
dependencies: [ .target(name: "\(name)Lib") ],
path: "Sources/\(name)-tool"
),
.executableTarget(
name: clutchArgParser,
dependencies: [
.target(name: "\(name)Lib"),
.product(
name: "ArgumentParser",
package: "swift-argument-parser"),
]
),
.executableTarget(
name: clatch,
dependencies: [
.product(name: "SystemPackage", package: "swift-system"),
]
),
.testTarget(
name: "\(name)Tests",
dependencies: [
.target(name: "\(name)Lib"),
.product(name: "Atomics", package: "swift-atomics")
]
),
]
)