@@ -202,8 +202,20 @@ let package = Package(
202202 type : . dynamic ,
203203 targets : [ " ExampleSwiftLibrary " ]
204204 ) ,
205+ ] ,
206+ traits : [
207+ // guards dependencies pulled by the swift-java tool (source generator)
208+ . trait ( name : " _SwiftJavaToolDependencyGuardTrait " , enabledTraits : [ ] ) ,
209+
210+ // guards dependencies pulled by the SwiftJava target to support `@Java...` macros
211+ . trait ( name : " _SwiftJavaMacrosDependencyGuardTrait " , enabledTraits : [ ] ) ,
205212
213+ . default ( enabledTraits : [
214+ " _SwiftJavaToolDependencyGuardTrait " ,
215+ " _SwiftJavaMacrosDependencyGuardTrait " ,
216+ ] )
206217 ] ,
218+
207219 dependencies : [
208220 . package ( url : " https://github.com/swiftlang/swift-syntax " , from : " 602.0.0 " ) ,
209221 . package ( url : " https://github.com/apple/swift-argument-parser " , from : " 1.5.0 " ) ,
@@ -231,8 +243,16 @@ let package = Package(
231243 . macro (
232244 name : " SwiftJavaMacros " ,
233245 dependencies : [
234- . product ( name : " SwiftSyntaxMacros " , package : " swift-syntax " ) ,
235- . product ( name : " SwiftCompilerPlugin " , package : " swift-syntax " ) ,
246+ . product (
247+ name : " SwiftSyntaxMacros " ,
248+ package : " swift-syntax " ,
249+ condition : . when ( traits : [ " _SwiftJavaMacrosDependencyGuardTrait " ] )
250+ ) ,
251+ . product (
252+ name : " SwiftCompilerPlugin " ,
253+ package : " swift-syntax " ,
254+ condition : . when ( traits : [ " _SwiftJavaMacrosDependencyGuardTrait " ] )
255+ ) ,
236256 ] ,
237257 swiftSettings : [
238258 . swiftLanguageMode ( . v5 )
@@ -403,11 +423,26 @@ let package = Package(
403423 . target (
404424 name : " SwiftJavaToolLib " ,
405425 dependencies : [
406- . product ( name : " Logging " , package : " swift-log " ) ,
407- . product ( name : " OrderedCollections " , package : " swift-collections " ) ,
408- . product ( name : " SwiftBasicFormat " , package : " swift-syntax " ) ,
409- . product ( name : " SwiftSyntax " , package : " swift-syntax " ) ,
410- . product ( name : " SwiftSyntaxBuilder " , package : " swift-syntax " ) ,
426+ . product (
427+ name : " Logging " , package : " swift-log " ,
428+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
429+ ) ,
430+ . product (
431+ name : " OrderedCollections " , package : " swift-collections " ,
432+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
433+ ) ,
434+ . product (
435+ name : " SwiftBasicFormat " , package : " swift-syntax " ,
436+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
437+ ) ,
438+ . product (
439+ name : " SwiftSyntax " , package : " swift-syntax " ,
440+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
441+ ) ,
442+ . product (
443+ name : " SwiftSyntaxBuilder " , package : " swift-syntax " ,
444+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
445+ ) ,
411446 " SwiftJava " ,
412447 " JavaUtilJar " ,
413448 " JavaLangReflect " ,
@@ -428,11 +463,26 @@ let package = Package(
428463 . executableTarget (
429464 name : " SwiftJavaTool " ,
430465 dependencies : [
431- . product ( name : " SwiftBasicFormat " , package : " swift-syntax " ) ,
432- . product ( name : " SwiftSyntax " , package : " swift-syntax " ) ,
433- . product ( name : " SwiftSyntaxBuilder " , package : " swift-syntax " ) ,
434- . product ( name : " ArgumentParser " , package : " swift-argument-parser " ) ,
435- . product ( name : " SystemPackage " , package : " swift-system " ) ,
466+ . product (
467+ name : " SwiftBasicFormat " , package : " swift-syntax " ,
468+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
469+ ) ,
470+ . product (
471+ name : " SwiftSyntax " , package : " swift-syntax " ,
472+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
473+ ) ,
474+ . product (
475+ name : " SwiftSyntaxBuilder " , package : " swift-syntax " ,
476+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
477+ ) ,
478+ . product (
479+ name : " ArgumentParser " , package : " swift-argument-parser " ,
480+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
481+ ) ,
482+ . product (
483+ name : " SystemPackage " , package : " swift-system " ,
484+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
485+ ) ,
436486 " SwiftJava " ,
437487 " JavaUtilJar " ,
438488 " JavaNet " ,
@@ -455,11 +505,26 @@ let package = Package(
455505 . target (
456506 name : " JExtractSwiftLib " ,
457507 dependencies : [
458- . product ( name : " SwiftBasicFormat " , package : " swift-syntax " ) ,
459- . product ( name : " SwiftLexicalLookup " , package : " swift-syntax " ) ,
460- . product ( name : " SwiftSyntax " , package : " swift-syntax " ) ,
461- . product ( name : " SwiftSyntaxBuilder " , package : " swift-syntax " ) ,
462- . product ( name : " ArgumentParser " , package : " swift-argument-parser " ) ,
508+ . product (
509+ name : " SwiftBasicFormat " , package : " swift-syntax " ,
510+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
511+ ) ,
512+ . product (
513+ name : " SwiftLexicalLookup " , package : " swift-syntax " ,
514+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
515+ ) ,
516+ . product (
517+ name : " SwiftSyntax " , package : " swift-syntax " ,
518+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
519+ ) ,
520+ . product (
521+ name : " SwiftSyntaxBuilder " , package : " swift-syntax " ,
522+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] )
523+ ) ,
524+ . product (
525+ name : " ArgumentParser " , package : " swift-argument-parser " ,
526+ condition : . when ( traits : [ " _SwiftJavaToolDependencyGuardTrait " ] ) ,
527+ ) ,
463528 " JavaTypes " ,
464529 " SwiftJavaShared " ,
465530 " SwiftJavaConfigurationShared " ,
0 commit comments