-
Notifications
You must be signed in to change notification settings - Fork 1
/
Package.swift
135 lines (133 loc) · 5.39 KB
/
Package.swift
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// swift-tools-version: 6.0
import CompilerPluginSupport
import PackageDescription
let package = Package(
name: "zyphy",
platforms: [
.macOS(.v10_15),
.iOS(.v13),
.watchOS(.v6),
.tvOS(.v13),
.macCatalyst(.v13),
.visionOS(.v1),
],
products: [
.library(name: "Tokenizer", targets: ["Tokenizer"]),
.library(name: "TreeConstructor", targets: ["TreeConstructor"]),
],
dependencies: [
.package(url: "https://github.com/swiftlang/swift-syntax", "509.0.0"..<"601.0.0"),
.package(url: "https://github.com/apple/swift-collections", from: "1.1.0"),
],
targets: [
.target(
name: "Tokenizer",
dependencies: [
"TokenizerMacros",
"HTMLEntities",
.product(name: "DequeModule", package: "swift-collections"),
],
swiftSettings: [
.unsafeFlags(["-Xfrontend", "-warn-long-function-bodies=100"], .when(configuration: .debug)),
.unsafeFlags(["-Xfrontend", "-warn-long-expression-type-checking=100"], .when(configuration: .debug)),
.unsafeFlags(["-cross-module-optimization"], .when(configuration: .release)),
.enableExperimentalFeature("CodeItemMacros"),
.enableUpcomingFeature("ExistentialAny"),
.enableUpcomingFeature("InternalImportsByDefault"),
]
),
.target(
name: "TreeConstructor",
dependencies: [
"Tokenizer"
],
swiftSettings: [
.unsafeFlags(["-Xfrontend", "-warn-long-function-bodies=100"], .when(configuration: .debug)),
.unsafeFlags(["-Xfrontend", "-warn-long-expression-type-checking=100"], .when(configuration: .debug)),
.unsafeFlags(["-cross-module-optimization"], .when(configuration: .release)),
.enableUpcomingFeature("ExistentialAny"),
.enableUpcomingFeature("InternalImportsByDefault"),
]
),
.macro(
name: "TokenizerMacros",
dependencies: [
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
],
swiftSettings: [
.enableUpcomingFeature("ExistentialAny"),
.enableUpcomingFeature("InternalImportsByDefault"),
]
),
.target(
name: "HTMLEntities",
dependencies: [
"Str"
],
swiftSettings: [
.enableUpcomingFeature("ExistentialAny"),
.enableUpcomingFeature("InternalImportsByDefault"),
]
),
.target(
name: "Str",
swiftSettings: [
.enableUpcomingFeature("ExistentialAny"),
.enableUpcomingFeature("InternalImportsByDefault"),
]
),
.testTarget(
name: "TokenizerTests",
dependencies: [
"TokenizerMacros",
"Tokenizer",
],
exclude: [
"Resources/html5lib-tests/encoding",
"Resources/html5lib-tests/lint_lib",
"Resources/html5lib-tests/serializer",
"Resources/html5lib-tests/tokenizer/README.md",
"Resources/html5lib-tests/tokenizer/unicodeCharsProblematic.test",
"Resources/html5lib-tests/tokenizer/xmlViolation.test",
"Resources/html5lib-tests/tree-construction",
"Resources/html5lib-tests/AUTHORS.rst",
"Resources/html5lib-tests/LICENSE",
"Resources/html5lib-tests/lint",
"Resources/html5lib-tests/pyproject.toml",
],
resources: [
.process("Resources/html5lib-tests/tokenizer/test1.test"),
.process("Resources/html5lib-tests/tokenizer/test2.test"),
.process("Resources/html5lib-tests/tokenizer/test3.test"),
.process("Resources/html5lib-tests/tokenizer/test4.test"),
.process("Resources/html5lib-tests/tokenizer/unicodeChars.test"),
.process("Resources/html5lib-tests/tokenizer/entities.test"),
.process("Resources/html5lib-tests/tokenizer/namedEntities.test"),
.process("Resources/html5lib-tests/tokenizer/numericEntities.test"),
.process("Resources/html5lib-tests/tokenizer/pendingSpecChanges.test"),
.process("Resources/html5lib-tests/tokenizer/contentModelFlags.test"),
.process("Resources/html5lib-tests/tokenizer/escapeFlag.test"),
.process("Resources/html5lib-tests/tokenizer/domjs.test"),
],
swiftSettings: [
.enableUpcomingFeature("ExistentialAny"),
.enableUpcomingFeature("InternalImportsByDefault"),
]
),
.testTarget(
name: "HTMLEntitiesTests",
dependencies: [
"HTMLEntities"
],
resources: [
.process("Resources")
],
swiftSettings: [
.enableUpcomingFeature("ExistentialAny"),
.enableUpcomingFeature("InternalImportsByDefault"),
]
),
],
swiftLanguageModes: [.v6]
)