@@ -47,22 +47,22 @@ let package = Package(
4747
4848    . target( 
4949      name:  " SwiftFormat " , 
50-       dependencies:  [ 
50+       dependencies:  omittingExternalDependenciesIfNecessary ( [ 
5151        . product( name:  " Markdown " ,  package :  " swift-markdown " ) , 
5252        . product( name:  " SwiftSyntax " ,  package :  " swift-syntax " ) , 
5353        . product( name:  " SwiftSyntaxBuilder " ,  package :  " swift-syntax " ) , 
5454        . product( name:  " SwiftOperators " ,  package :  " swift-syntax " ) , 
5555        . product( name:  " SwiftParser " ,  package :  " swift-syntax " ) , 
5656        . product( name:  " SwiftParserDiagnostics " ,  package :  " swift-syntax " ) , 
57-       ] , 
57+       ] ) , 
5858      exclude:  [ " CMakeLists.txt " ] 
5959    ) , 
6060    . target( 
6161      name:  " _SwiftFormatTestSupport " , 
62-       dependencies:  [ 
62+       dependencies:  omittingExternalDependenciesIfNecessary ( [ 
6363        " SwiftFormat " , 
6464        . product( name:  " SwiftOperators " ,  package :  " swift-syntax " ) , 
65-       ] 
65+       ] ) 
6666    ) , 
6767    . plugin( 
6868      name:  " Format Source Code " , 
@@ -93,44 +93,42 @@ let package = Package(
9393    . executableTarget( 
9494      name:  " generate-swift-format " , 
9595      dependencies:  [ 
96-         " SwiftFormat " , 
97-         . product( name:  " SwiftSyntax " ,  package :  " swift-syntax " ) , 
98-         . product( name:  " SwiftParser " ,  package :  " swift-syntax " ) , 
96+         " SwiftFormat " 
9997      ] 
10098    ) , 
10199    . executableTarget( 
102100      name:  " swift-format " , 
103-       dependencies:  [ 
101+       dependencies:  omittingExternalDependenciesIfNecessary ( [ 
104102        " _SwiftFormatInstructionCounter " , 
105103        " SwiftFormat " , 
106104        . product( name:  " ArgumentParser " ,  package :  " swift-argument-parser " ) , 
107105        . product( name:  " SwiftSyntax " ,  package :  " swift-syntax " ) , 
108106        . product( name:  " SwiftParser " ,  package :  " swift-syntax " ) , 
109-       ] , 
107+       ] ) , 
110108      exclude:  [ " CMakeLists.txt " ] , 
111109      linkerSettings:  swiftformatLinkSettings
112110    ) , 
113111
114112    . testTarget( 
115113      name:  " SwiftFormatPerformanceTests " , 
116-       dependencies:  [ 
114+       dependencies:  omittingExternalDependenciesIfNecessary ( [ 
117115        " SwiftFormat " , 
118116        " _SwiftFormatTestSupport " , 
119117        . product( name:  " SwiftSyntax " ,  package :  " swift-syntax " ) , 
120118        . product( name:  " SwiftParser " ,  package :  " swift-syntax " ) , 
121-       ] 
119+       ] ) 
122120    ) , 
123121    . testTarget( 
124122      name:  " SwiftFormatTests " , 
125-       dependencies:  [ 
123+       dependencies:  omittingExternalDependenciesIfNecessary ( [ 
126124        " SwiftFormat " , 
127125        " _SwiftFormatTestSupport " , 
128126        . product( name:  " Markdown " ,  package :  " swift-markdown " ) , 
129127        . product( name:  " SwiftOperators " ,  package :  " swift-syntax " ) , 
130128        . product( name:  " SwiftParser " ,  package :  " swift-syntax " ) , 
131129        . product( name:  " SwiftSyntax " ,  package :  " swift-syntax " ) , 
132130        . product( name:  " SwiftSyntaxBuilder " ,  package :  " swift-syntax " ) , 
133-       ] 
131+       ] ) 
134132    ) , 
135133  ] 
136134) 
@@ -149,20 +147,36 @@ var installAction: Bool { hasEnvironmentVariable("SWIFTFORMAT_CI_INSTALL") }
149147/// remote dependency.
150148var  useLocalDependencies :  Bool  {  hasEnvironmentVariable ( " SWIFTCI_USE_LOCAL_DEPS " )  } 
151149
150+ var  omitExternalDependencies :  Bool  {  hasEnvironmentVariable ( " SWIFTFORMAT_OMIT_EXTERNAL_DEPENDENCIES " )  } 
151+ 
152+ func  omittingExternalDependenciesIfNecessary( 
153+   _ dependencies:  [ Target . Dependency ] 
154+ )  ->  [ Target . Dependency ]  { 
155+   guard  omitExternalDependencies else  { 
156+     return  dependencies
157+   } 
158+   return  dependencies. filter  {  dependency in 
159+     if  case . productItem( _,  let  package ,  _,  _)  =  dependency { 
160+       return  package  ==  nil 
161+     } 
162+     return  true 
163+   } 
164+ } 
165+ 
152166// MARK: - Dependencies
153167
154168var  dependencies :  [ Package . Dependency ]  { 
155-   if  useLocalDependencies { 
169+   if  omitExternalDependencies { 
170+     return  [ ] 
171+   }  else  if  useLocalDependencies { 
156172    return  [ 
157173      . package ( path:  " ../swift-argument-parser " ) , 
158174      . package ( path:  " ../swift-markdown " ) , 
159-       . package ( path:  " ../swift-syntax " ) , 
160175    ] 
161176  }  else  { 
162177    return  [ 
163178      . package ( url:  " https://github.com/apple/swift-argument-parser.git " ,  from:  " 1.2.2 " ) , 
164179      . 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 " ) , 
166180    ] 
167181  } 
168182} 
0 commit comments