-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPackage.swift
More file actions
120 lines (118 loc) · 4.21 KB
/
Package.swift
File metadata and controls
120 lines (118 loc) · 4.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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
// swift-tools-version: 5.9
import PackageDescription
let package = Package(
name: "NotepadNext",
platforms: [
.macOS(.v13)
],
products: [
.executable(name: "NotepadNext", targets: ["NotepadNext"]),
.library(name: "TextCore", targets: ["TextCore"]),
.library(name: "EditorKit", targets: ["EditorKit"]),
.library(name: "FileKit", targets: ["FileKit"]),
.library(name: "TabKit", targets: ["TabKit"]),
.library(name: "SearchKit", targets: ["SearchKit"]),
.library(name: "SyntaxKit", targets: ["SyntaxKit"]),
.library(name: "ThemeKit", targets: ["ThemeKit"]),
.library(name: "MarkdownKit", targets: ["MarkdownKit"]),
.library(name: "CommonKit", targets: ["CommonKit"]),
.library(name: "NotepadNextCore", targets: ["NotepadNextCore"]),
.library(name: "PanelKit", targets: ["PanelKit"]),
],
targets: [
// App core library (testable logic extracted from the executable)
.target(
name: "NotepadNextCore",
dependencies: ["CommonKit"],
path: "Sources/NotepadNextCore"
),
// App
.executableTarget(
name: "NotepadNext",
dependencies: [
"NotepadNextCore",
"TextCore", "EditorKit", "FileKit", "TabKit",
"SearchKit", "SyntaxKit", "ThemeKit", "MarkdownKit", "CommonKit",
"PanelKit"
],
path: "Sources/NotepadNext"
),
// Core text engine
.target(
name: "TextCore",
dependencies: ["CommonKit"],
path: "Sources/TextCore"
),
// Syntax highlighting engine
.target(
name: "SyntaxKit",
dependencies: ["TextCore", "CommonKit"],
path: "Sources/SyntaxKit"
),
// Theme management
.target(
name: "ThemeKit",
dependencies: ["CommonKit"],
path: "Sources/ThemeKit"
),
// Markdown preview
.target(
name: "MarkdownKit",
dependencies: ["CommonKit"],
path: "Sources/MarkdownKit"
),
// Editor view components
.target(
name: "EditorKit",
dependencies: ["TextCore", "SyntaxKit", "ThemeKit", "CommonKit"],
path: "Sources/EditorKit"
),
// File I/O, encoding, file watching
.target(
name: "FileKit",
dependencies: ["TextCore", "CommonKit"],
path: "Sources/FileKit"
),
// Tab bar and tab management
.target(
name: "TabKit",
dependencies: ["CommonKit"],
path: "Sources/TabKit"
),
// Search and replace engine
.target(
name: "SearchKit",
dependencies: ["TextCore", "CommonKit"],
path: "Sources/SearchKit"
),
// Shared utilities and extensions
.target(
name: "CommonKit",
path: "Sources/CommonKit"
),
// Dockable panel framework
.target(
name: "PanelKit",
dependencies: [],
path: "Sources/PanelKit"
),
// Tests
.testTarget(
name: "TextCoreTests",
dependencies: ["TextCore", "CommonKit"]
),
.testTarget(
name: "SearchKitTests",
dependencies: ["SearchKit", "TextCore", "CommonKit"]
),
.testTarget(name: "FileKitTests", dependencies: ["FileKit", "CommonKit"]),
.testTarget(name: "SyntaxKitTests", dependencies: ["SyntaxKit", "CommonKit"]),
.testTarget(name: "ThemeKitTests", dependencies: ["ThemeKit", "CommonKit"]),
.testTarget(name: "EditorKitTests", dependencies: ["EditorKit", "TextCore", "CommonKit"]),
.testTarget(name: "MarkdownKitTests", dependencies: ["MarkdownKit", "CommonKit"]),
.testTarget(name: "CommonKitTests", dependencies: ["CommonKit"]),
.testTarget(name: "TabKitTests", dependencies: ["TabKit", "CommonKit"]),
.testTarget(name: "PanelKitTests", dependencies: ["PanelKit"]),
.testTarget(name: "NotepadNextTests", dependencies: ["NotepadNextCore", "CommonKit"]),
]
)