// SPDX-FileCopyrightText: 2025 The Project Pterodactyl Developers // // SPDX-License-Identifier: MPL-2.0 // swift-tools-version: 6.2 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription let package = Package( name: "Pterodactyl", platforms: [.macOS(.v15)], products: [ // Products define the executables and libraries a package produces, making them visible to other packages. .library( name: "PterodactylKernel", targets: ["PterodactylKernel"] ), .library( name: "PterodactylSyntax", targets: ["PterodactylSyntax"] ), .library( name: "PterodactylBuild", targets: ["PterodactylBuild"] ), .executable( name: "PterodactylLanguageServer", targets: ["PterodactylLanguageServer"] ) ], dependencies: [ .package(url: "https://github.com/ChimeHQ/LanguageServer", branch: "main"), .package(url: "https://github.com/ChimeHQ/LanguageServerProtocol", branch: "main"), .package(url: "https://github.com/apple/swift-llbuild2.git", branch: "main"), .package(url: "https://github.com/apple/swift-algorithms", from: "1.2.0"), .package(url: "https://github.com/apple/swift-log", from: "1.6.0") ], targets: [ // Targets are the basic building blocks of a package, defining a module or a test suite. // Targets can depend on other targets in this package and products from dependencies. .target( name: "PterodactylKernel", ), .target( name: "PterodactylSyntax", dependencies: [ .product(name: "Algorithms", package: "swift-algorithms"), "LanguageServerProtocol" ] ), .target( name: "PterodactylBuild", dependencies: [ "PterodactylSyntax", .product(name: "llbuild2fx", package: "swift-llbuild2") ] ), .executableTarget( name: "PterodactylLanguageServer", dependencies: [ "LanguageServer", .product(name: "llbuild2fx", package: "swift-llbuild2"), .product(name: "Logging", package: "swift-log"), "PterodactylBuild", "PterodactylSyntax" ] ), .testTarget( name: "PterodactylBuildTests", dependencies: [ "PterodactylBuild", "PterodactylSyntax", .product(name: "llbuild2fx", package: "swift-llbuild2") ] ), .testTarget( name: "PterodactylLanguageServerTests", dependencies: [ "PterodactylBuild", "PterodactylSyntax", "PterodactylLanguageServer", .product(name: "llbuild2fx", package: "swift-llbuild2") ] ), .testTarget( name: "PterodactylKernelTests", dependencies: ["PterodactylKernel"] ) ] )