Skip to content

Commit 756bb7e

Browse files
authored
Merge pull request #2 from ordo-one/swiftsyntax-xcframework
enable xcframework
2 parents 9554ada + 3cf2bd7 commit 756bb7e

File tree

2 files changed

+46
-8
lines changed

2 files changed

+46
-8
lines changed

Package.swift

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,59 @@
11
// swift-tools-version:6.1
22
import CompilerPluginSupport
33
import PackageDescription
4-
import typealias Foundation.ProcessInfo
4+
import class Foundation.ProcessInfo
5+
6+
let useSwiftSyntaxXcf: Bool = ProcessInfo.processInfo.environment["ORDO_USE_SWIFT_SYNTAX_XCF"] ?? "true" == "true"
7+
8+
func makeSwiftSyntaxDependency() -> [Package.Dependency] {
9+
let xcFrameworksRepo: String = "https://github.com/ordo-one/swift-syntax-xcframeworks"
10+
let officialSyntaxRepo: String = "https://github.com/swiftlang/swift-syntax"
11+
12+
let syntaxUrl: String
13+
#if os(iOS)
14+
syntaxUrl = xcFrameworksRepo
15+
#elseif os(Linux)
16+
syntaxUrl = officialSyntaxRepo
17+
#else
18+
syntaxUrl = useSwiftSyntaxXcf ? xcFrameworksRepo : officialSyntaxRepo
19+
#endif
20+
21+
return [.package(url: syntaxUrl, from: "601.0.1")]
22+
}
23+
24+
func makeSwiftSyntaxTargetDependencies() -> [Target.Dependency] {
25+
let xcFrameworkDependencies: [Target.Dependency] = [
26+
.product(name: "SwiftSyntaxWrapper", package: "swift-syntax-xcframeworks")
27+
]
28+
29+
let standardSyntaxDependencies: [Target.Dependency] = [
30+
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
31+
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
32+
]
33+
34+
#if os(iOS)
35+
return xcFrameworkDependencies
36+
#elseif os(Linux)
37+
return standardSyntaxDependencies
38+
#else
39+
if useSwiftSyntaxXcf {
40+
return xcFrameworkDependencies
41+
}
42+
return standardSyntaxDependencies
43+
#endif
44+
}
545

646
let package: Package = .init(
747
name: "bijection",
848
platforms: [.macOS(.v15), .iOS(.v18), .tvOS(.v18), .visionOS(.v2), .watchOS(.v11)],
949
products: [
1050
.library(name: "Bijection", targets: ["Bijection"]),
1151
],
12-
dependencies: [
13-
.package(url: "https://github.com/swiftlang/swift-syntax", from: "601.0.0"),
14-
],
52+
dependencies: makeSwiftSyntaxDependency(),
1553
targets: [
1654
.macro(
1755
name: "BijectionMacro",
18-
dependencies: [
19-
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
20-
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
21-
]
56+
dependencies: makeSwiftSyntaxTargetDependencies(),
2257
),
2358
.target(
2459
name: "Bijection",

Sources/BijectionMacro/BijectionMacro.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ public struct BijectionMacro: PeerMacro {
3333
}
3434
}
3535

36+
context[.error, accessors] = "accessor list contains no getter"
37+
return []
38+
@unknown default:
3639
context[.error, accessors] = "accessor list contains no getter"
3740
return []
3841
}

0 commit comments

Comments
 (0)