Files
gp4/Package.swift
T
Will Hawkins b9ff228362
Continuous Integration / Grammar Tests (push) Successful in 3m54s
Continuous Integration / Library Format Tests (push) Failing after 4m49s
Continuous Integration / Library Tests (push) Successful in 7m40s
Start Rewrite
Signed-off-by: Will Hawkins <hawkinsw@obs.cr>
2026-06-12 06:24:53 -04:00

88 lines
3.0 KiB
Swift

// swift-tools-version: 6.2
// The swift-tools-version declares the minimum version of Swift required to build this package.
import CompilerPluginSupport
import PackageDescription
let package = Package(
name: "p4ce",
platforms: [.iOS(.v17), .macOS(.v13)],
products: [
// Products define the executables and libraries a package produces, making them visible to other packages.
.library(
name: "P4Compiler",
targets: ["P4Compiler"]
),
.library(
name: "Common",
targets: ["Common"]
),
.library(
name: "P4CodeGen",
targets: ["P4CodeGen"]
),
],
dependencies: [
.package(path: "./tree-sitter-p4"),
.package(url: "https://github.com/tree-sitter/swift-tree-sitter", revision: "main"),
.package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"),
.package(url: "https://github.com/swiftlang/swift-syntax", from: "602.0.0"),
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.0.0"),
.package(url: "https://github.com/apple/swift-system", from: "1.6.1"),
//.package(url: "https://github.com/apple/swift-protobuf.git", from: "1.27.0"),
],
targets: [
.macro(
name: "Macros",
dependencies: [
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
],
swiftSettings: [.enableExperimentalFeature("CodeItemMacros")]),
.target(
name: "P4Compiler",
dependencies: [
.product(name: "SwiftTreeSitter", package: "swift-tree-sitter"),
.product(name: "SwiftTreeSitterLayer", package: "swift-tree-sitter"),
.product(name: "TreeSitterP4", package: "tree-sitter-p4"),
.target(name: "TreeSitterExtensions"),
.target(name: "Common"),
],
swiftSettings: [.enableExperimentalFeature("CodeItemMacros")],
),
.target(
name: "TreeSitterExtensions",
dependencies: [
.product(name: "SwiftTreeSitter", package: "swift-tree-sitter"),
.product(name: "SwiftTreeSitterLayer", package: "swift-tree-sitter"),
],
),
.target(
name: "Common",
dependencies: [
"Macros",
.product(name: "SystemPackage", package: "swift-system"),
.product(name: "SwiftTreeSitter", package: "swift-tree-sitter"),
],
swiftSettings: [.enableExperimentalFeature("CodeItemMacros")],
),
.target(
name: "P4CodeGen",
dependencies: [
"P4Compiler", "Common",
//.product(name: "SwiftProtobuf", package: "swift-protobuf"),
]
),
.testTarget(
name: "Tests",
dependencies: [
"P4Compiler", "P4CodeGen", "Macros", "TreeSitterExtensions", "Common",
.product(name: "SystemPackage", package: "swift-system"),
],
//swiftSettings: [.enableExperimentalFeature("CodeItemMacros"), .unsafeFlags(["-Xfrontend", "-dump-macro-expansions"])],
swiftSettings: [.enableExperimentalFeature("CodeItemMacros")],
),
],
)