Fountain Coach Gitowner-controlled · read only

swiftcurseskit.git · Package.swift

swiftcurseskit.git / Package.swift

revision c127b877313344f37b1065f74dbb0f4acb8a3a88 · complete file

// swift-tools-version: 6.1
import PackageDescription

let package = Package(
  name: "SwiftCursesKit",
  platforms: [
    .macOS(.v13),
    .tvOS(.v13),
    .iOS(.v16),
    .watchOS(.v9),
    .visionOS(.v1),
  ],
  products: [
    .library(
      name: "SwiftCursesKit",
      targets: ["SwiftCursesKit"]
    )
  ],
  targets: [
    .target(
      name: "SwiftCursesKit",
      dependencies: ["CNCursesSupport"],
      path: "Sources/SwiftCursesKit"
    ),
    .target(
      name: "CNCursesSupport",
      dependencies: ["CNCursesSupportShims"],
      path: "Sources/CNCursesSupport/Swift",
      linkerSettings: [
        .linkedLibrary("ncurses", .when(platforms: [.macOS])),
        .linkedLibrary("ncursesw", .when(platforms: [.linux])),
      ]
    ),
    .systemLibrary(
      name: "CNCursesSupportShims",
      path: "Sources/CNCursesSupport/Shims",
      providers: [
        .apt(["libncursesw5-dev"])
      ]
    ),
    .executableTarget(
      name: "DashboardDemo",
      dependencies: ["SwiftCursesKit"],
      path: "Examples/DashboardDemo"
    ),
    .executableTarget(
      name: "OperationsDemo",
      dependencies: ["SwiftCursesKit"],
      path: "Examples/OperationsDemo"
    ),
    .testTarget(
      name: "SwiftCursesKitTests",
      dependencies: [
        "SwiftCursesKit",
        "CNCursesSupport",
        "DashboardDemo",
        "OperationsDemo",
      ],
      path: "Tests/SwiftCursesKitTests"
    ),
  ]
)