Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ let package = Package(
],
traits: [tracingTrait],
dependencies: [
.package(url: "https://github.com/swiftlang/swift-syntax", "600.0.0"..<"604.0.0")
// SwiftExtract (BridgeJSTool's analysis layer) requires swift-syntax 603+.
.package(url: "https://github.com/swiftlang/swift-syntax", "603.0.0"..<"604.0.0")
],
targets: [
.target(
Expand Down Expand Up @@ -179,9 +180,31 @@ let package = Package(
dependencies: ["BridgeJSTool"],
path: "Plugins/BridgeJS/Sources/BridgeJSCommandPlugin"
),
.target(
name: "SwiftExtractConfigurationShared"
),
.target(
name: "SwiftExtract",
dependencies: [
"SwiftExtractConfigurationShared",
.product(name: "SwiftBasicFormat", package: "swift-syntax"),
.product(name: "SwiftIfConfig", package: "swift-syntax"),
.product(name: "SwiftLexicalLookup", package: "swift-syntax"),
.product(name: "SwiftParser", package: "swift-syntax"),
.product(name: "SwiftSyntax", package: "swift-syntax"),
.product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
],
resources: [
.process("Resources")
],
swiftSettings: [
.swiftLanguageMode(.v5)
]
),
.executableTarget(
name: "BridgeJSTool",
dependencies: [
"SwiftExtract",
.product(name: "SwiftParser", package: "swift-syntax"),
.product(name: "SwiftSyntax", package: "swift-syntax"),
.product(name: "SwiftBasicFormat", package: "swift-syntax"),
Expand Down
33 changes: 32 additions & 1 deletion Plugins/BridgeJS/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
import CompilerPluginSupport
import PackageDescription

let swiftSyntaxVersion = Context.environment["BRIDGEJS_OVERRIDE_SWIFT_SYNTAX_VERSION"] ?? "600.0.1"
// SwiftExtract requires swift-syntax 603+ (SwiftLexicalLookup, SwiftIfConfig).
let swiftSyntaxVersion = Context.environment["BRIDGEJS_OVERRIDE_SWIFT_SYNTAX_VERSION"] ?? "603.0.0"

let package = Package(
name: "BridgeJS",
Expand All @@ -14,6 +15,35 @@ let package = Package(
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.7.0"),
],
targets: [
// SwiftExtract is swift-java's language-neutral Swift API extraction
// layer, symlinked from a sibling swift-java checkout while the
// BridgeJS adoption is developed against it.
.target(
name: "SwiftExtractConfigurationShared",
path: "Sources/SwiftExtractConfigurationShared"
),
.target(
name: "SwiftExtract",
dependencies: [
"SwiftExtractConfigurationShared",
.product(name: "SwiftBasicFormat", package: "swift-syntax"),
.product(name: "SwiftIfConfig", package: "swift-syntax"),
.product(name: "SwiftLexicalLookup", package: "swift-syntax"),
.product(name: "SwiftParser", package: "swift-syntax"),
.product(name: "SwiftSyntax", package: "swift-syntax"),
.product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
],
path: "Sources/SwiftExtract",
resources: [
// Checked-in build configuration for `#if` evaluation. In
// swift-java this file is generated by _StaticBuildConfigPlugin;
// here we ship a static default instead of carrying the plugin.
.process("Resources")
],
swiftSettings: [
.swiftLanguageMode(.v5)
]
),
.target(name: "BridgeJSBuildPlugin"),
.executableTarget(
name: "BridgeJSTool",
Expand All @@ -35,6 +65,7 @@ let package = Package(
dependencies: [
"BridgeJSSkeleton",
"BridgeJSUtilities",
"SwiftExtract",
.product(name: "SwiftParser", package: "swift-syntax"),
.product(name: "SwiftSyntax", package: "swift-syntax"),
.product(name: "SwiftBasicFormat", package: "swift-syntax"),
Expand Down
Loading
Loading