@@ -5,7 +5,7 @@ import Foundation
5
5
6
6
/// If we are in a controlled CI environment, we can use internal compiler flags
7
7
/// to speed up the build or improve it.
8
- let swiftSyntaxSwiftSettings : [ SwiftSetting ]
8
+ let swiftSyntaxSwiftSettings : [ SwiftSetting ]
9
9
if ProcessInfo . processInfo. environment [ " SWIFT_BUILD_SCRIPT_ENVIRONMENT " ] != nil {
10
10
let groupFile = URL ( fileURLWithPath: #file)
11
11
. deletingLastPathComponent ( )
@@ -19,7 +19,20 @@ if ProcessInfo.processInfo.environment["SWIFT_BUILD_SCRIPT_ENVIRONMENT"] != nil
19
19
" -enforce-exclusivity=unchecked " ,
20
20
] ) ]
21
21
} else {
22
- swiftSyntaxSwiftSettings = [ ]
22
+ swiftSyntaxSwiftSettings = [ ]
23
+ }
24
+
25
+ /// If the `lib_InternalSwiftSyntaxParser.dylib` is not in the standard search
26
+ /// paths (which is the standard case on macOS),
27
+ /// `SWIFT_SYNTAX_PARSER_LIB_SEARCH_PATH` can be used to add a rpath at which
28
+ /// the parser lib should be searched.
29
+ let swiftSyntaxParserLinkerSettings : [ LinkerSetting ]
30
+ if let parserLibSearchPath = ProcessInfo . processInfo. environment [ " SWIFT_SYNTAX_PARSER_LIB_SEARCH_PATH " ] {
31
+ swiftSyntaxParserLinkerSettings = [ . unsafeFlags( [
32
+ " -Xlinker " , " -rpath " , " -Xlinker " , parserLibSearchPath
33
+ ] ) ]
34
+ } else {
35
+ swiftSyntaxParserLinkerSettings = [ ]
23
36
}
24
37
25
38
let package = Package (
@@ -72,9 +85,14 @@ let package = Package(
72
85
" TokenSyntax.swift.gyb " ,
73
86
]
74
87
) ,
75
- . target( name: " SwiftSyntaxParser " , dependencies: [ " SwiftSyntax " ] , exclude: [
76
- " NodeDeclarationHash.swift.gyb "
77
- ] ) ,
88
+ . target(
89
+ name: " SwiftSyntaxParser " ,
90
+ dependencies: [ " SwiftSyntax " ] ,
91
+ exclude: [
92
+ " NodeDeclarationHash.swift.gyb "
93
+ ] ,
94
+ linkerSettings: swiftSyntaxParserLinkerSettings
95
+ ) ,
78
96
. target(
79
97
name: " lit-test-helper " ,
80
98
dependencies: [ " SwiftSyntax " , " SwiftSyntaxParser " ]
0 commit comments