-
Notifications
You must be signed in to change notification settings - Fork 182
Expand file tree
/
Copy pathPackage.swift
More file actions
58 lines (56 loc) · 1.76 KB
/
Package.swift
File metadata and controls
58 lines (56 loc) · 1.76 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
// swift-tools-version: 6.3
import PackageDescription
let package = Package(
name: "apfel",
platforms: [.macOS(.v26)],
products: [
.executable(name: "apfel", targets: ["apfel"])
],
dependencies: [
.package(url: "https://github.com/hummingbird-project/hummingbird.git", from: "2.0.0"),
],
targets: [
.systemLibrary(
name: "CReadline",
path: "Sources/CReadline"
),
// Pure-logic library — no FoundationModels, testable
.target(
name: "ApfelCore",
dependencies: [],
path: "Sources/Core"
),
// CLI argument parsing — depends on ApfelCore for ContextStrategy
.target(
name: "ApfelCLI",
dependencies: ["ApfelCore"],
path: "Sources/CLI"
),
// Main executable — depends on ApfelCore + ApfelCLI + Hummingbird + FoundationModels
.executableTarget(
name: "apfel",
dependencies: [
.product(name: "Hummingbird", package: "hummingbird"),
"ApfelCore",
"ApfelCLI",
"CReadline",
],
path: "Sources",
exclude: ["Core", "CLI"],
linkerSettings: [
.unsafeFlags([
"-Xlinker", "-sectcreate",
"-Xlinker", "__TEXT",
"-Xlinker", "__info_plist",
"-Xlinker", "./Info.plist",
])
]
),
// Test runner — pure Swift, no XCTest/Testing (Command Line Tools only)
.executableTarget(
name: "apfel-tests",
dependencies: ["ApfelCore", "ApfelCLI"],
path: "Tests/apfelTests"
),
]
)