@@ -47,22 +47,22 @@ let package = Package(
47
47
48
48
. target(
49
49
name: " SwiftFormat " ,
50
- dependencies: [
50
+ dependencies: omittingExternalDependenciesIfNecessary ( [
51
51
. product( name: " Markdown " , package : " swift-markdown " ) ,
52
52
. product( name: " SwiftSyntax " , package : " swift-syntax " ) ,
53
53
. product( name: " SwiftSyntaxBuilder " , package : " swift-syntax " ) ,
54
54
. product( name: " SwiftOperators " , package : " swift-syntax " ) ,
55
55
. product( name: " SwiftParser " , package : " swift-syntax " ) ,
56
56
. product( name: " SwiftParserDiagnostics " , package : " swift-syntax " ) ,
57
- ] ,
57
+ ] ) ,
58
58
exclude: [ " CMakeLists.txt " ]
59
59
) ,
60
60
. target(
61
61
name: " _SwiftFormatTestSupport " ,
62
- dependencies: [
62
+ dependencies: omittingExternalDependenciesIfNecessary ( [
63
63
" SwiftFormat " ,
64
64
. product( name: " SwiftOperators " , package : " swift-syntax " ) ,
65
- ]
65
+ ] )
66
66
) ,
67
67
. plugin(
68
68
name: " Format Source Code " ,
@@ -93,44 +93,42 @@ let package = Package(
93
93
. executableTarget(
94
94
name: " generate-swift-format " ,
95
95
dependencies: [
96
- " SwiftFormat " ,
97
- . product( name: " SwiftSyntax " , package : " swift-syntax " ) ,
98
- . product( name: " SwiftParser " , package : " swift-syntax " ) ,
96
+ " SwiftFormat "
99
97
]
100
98
) ,
101
99
. executableTarget(
102
100
name: " swift-format " ,
103
- dependencies: [
101
+ dependencies: omittingExternalDependenciesIfNecessary ( [
104
102
" _SwiftFormatInstructionCounter " ,
105
103
" SwiftFormat " ,
106
104
. product( name: " ArgumentParser " , package : " swift-argument-parser " ) ,
107
105
. product( name: " SwiftSyntax " , package : " swift-syntax " ) ,
108
106
. product( name: " SwiftParser " , package : " swift-syntax " ) ,
109
- ] ,
107
+ ] ) ,
110
108
exclude: [ " CMakeLists.txt " ] ,
111
109
linkerSettings: swiftformatLinkSettings
112
110
) ,
113
111
114
112
. testTarget(
115
113
name: " SwiftFormatPerformanceTests " ,
116
- dependencies: [
114
+ dependencies: omittingExternalDependenciesIfNecessary ( [
117
115
" SwiftFormat " ,
118
116
" _SwiftFormatTestSupport " ,
119
117
. product( name: " SwiftSyntax " , package : " swift-syntax " ) ,
120
118
. product( name: " SwiftParser " , package : " swift-syntax " ) ,
121
- ]
119
+ ] )
122
120
) ,
123
121
. testTarget(
124
122
name: " SwiftFormatTests " ,
125
- dependencies: [
123
+ dependencies: omittingExternalDependenciesIfNecessary ( [
126
124
" SwiftFormat " ,
127
125
" _SwiftFormatTestSupport " ,
128
126
. product( name: " Markdown " , package : " swift-markdown " ) ,
129
127
. product( name: " SwiftOperators " , package : " swift-syntax " ) ,
130
128
. product( name: " SwiftParser " , package : " swift-syntax " ) ,
131
129
. product( name: " SwiftSyntax " , package : " swift-syntax " ) ,
132
130
. product( name: " SwiftSyntaxBuilder " , package : " swift-syntax " ) ,
133
- ]
131
+ ] )
134
132
) ,
135
133
]
136
134
)
@@ -149,20 +147,38 @@ var installAction: Bool { hasEnvironmentVariable("SWIFTFORMAT_CI_INSTALL") }
149
147
/// remote dependency.
150
148
var useLocalDependencies : Bool { hasEnvironmentVariable ( " SWIFTCI_USE_LOCAL_DEPS " ) }
151
149
150
+ var omitExternalDependencies : Bool {
151
+ hasEnvironmentVariable ( " SWIFTFORMAT_OMIT_EXTERNAL_DEPENDENCIES " )
152
+ }
153
+
154
+ func omittingExternalDependenciesIfNecessary(
155
+ _ dependencies: [ Target . Dependency ]
156
+ ) -> [ Target . Dependency ] {
157
+ guard omitExternalDependencies else {
158
+ return dependencies
159
+ }
160
+ return dependencies. filter { dependency in
161
+ if case . productItem( _, let package , _, _) = dependency {
162
+ return package == nil
163
+ }
164
+ return true
165
+ }
166
+ }
167
+
152
168
// MARK: - Dependencies
153
169
154
170
var dependencies : [ Package . Dependency ] {
155
- if useLocalDependencies {
171
+ if omitExternalDependencies {
172
+ return [ ]
173
+ } else if useLocalDependencies {
156
174
return [
157
175
. package ( path: " ../swift-argument-parser " ) ,
158
176
. package ( path: " ../swift-markdown " ) ,
159
- . package ( path: " ../swift-syntax " ) ,
160
177
]
161
178
} else {
162
179
return [
163
180
. package ( url: " https://github.com/apple/swift-argument-parser.git " , from: " 1.2.2 " ) ,
164
181
. package ( url: " https://github.com/apple/swift-markdown.git " , from: " 0.2.0 " ) ,
165
- . package ( url: " https://github.com/swiftlang/swift-syntax.git " , branch: " main " ) ,
166
182
]
167
183
}
168
184
}
0 commit comments