krz/orgstar

A native macOS editor for org-mode files. editor org-mode swift

Package.swift

16086b4cf2caff5328774b2cd5ae3ffe1ab65ca4
orgstar/Package.swift history · blame · raw

102 lines · 7144 bytes

  1// swift-tools-version: 6.2
  2import PackageDescription
  3
  4/// App extensions start in Foundation's NSExtensionMain.
  5let extensionEntry: [LinkerSetting] = [.unsafeFlags(["-Xlinker", "-e", "-Xlinker", "_NSExtensionMain"])]
  6
  7let package = Package(
  8    name: "Orgstar",
  9    platforms: [.macOS(.v26), .iOS(.v26)],
 10    products: [
 11        .library(name: "OrgCore", targets: ["OrgCore"]),
 12        .library(name: "OrgDocument", targets: ["OrgDocument"]),
 13        .library(name: "OrgIndex", targets: ["OrgIndex"]),
 14        .library(name: "OrgWorkspace", targets: ["OrgWorkspace"]),
 15        .library(name: "OrgPresentation", targets: ["OrgPresentation"]),
 16        .library(name: "OrgEditorAppKit", targets: ["OrgEditorAppKit"]),
 17        .executable(name: "OrgstarSpike", targets: ["OrgstarSpike"]),
 18        .library(name: "OrgApp", targets: ["OrgApp"]),
 19        .library(name: "OrgHighlight", targets: ["OrgHighlight"]),
 20        .executable(name: "Orgstar", targets: ["Orgstar"]),
 21        .executable(name: "OrgstarMobile", targets: ["OrgstarMobile"]),
 22        .executable(name: "OrgstarQuickLook", targets: ["OrgstarQuickLook"]),
 23        .executable(name: "OrgstarSpotlight", targets: ["OrgstarSpotlight"]),
 24        .executable(name: "OrgstarShare", targets: ["OrgstarShare"])
 25    ],
 26    dependencies: [
 27        .package(url: "https://github.com/groue/GRDB.swift", from: "7.11.1"),
 28        .package(url: "https://github.com/tree-sitter/swift-tree-sitter", from: "0.25.0"),
 29        .package(url: "https://github.com/tree-sitter/tree-sitter-bash", exact: "0.25.1"),
 30        .package(url: "https://github.com/tree-sitter/tree-sitter-c", exact: "0.24.2"),
 31        .package(url: "https://github.com/tree-sitter/tree-sitter-cpp", exact: "0.23.4"),
 32        .package(url: "https://github.com/tree-sitter/tree-sitter-go", exact: "0.25.0"),
 33        .package(url: "https://github.com/tree-sitter/tree-sitter-haskell", exact: "0.24.1"),
 34        .package(url: "https://github.com/tree-sitter/tree-sitter-java", exact: "0.23.5"),
 35        .package(url: "https://github.com/tree-sitter/tree-sitter-javascript", exact: "0.25.0"),
 36        .package(url: "https://github.com/tree-sitter/tree-sitter-json", exact: "0.24.8"),
 37        .package(url: "https://github.com/tree-sitter-grammars/tree-sitter-lua", exact: "0.5.0"),
 38        .package(url: "https://github.com/tree-sitter/tree-sitter-python", exact: "0.25.0"),
 39        .package(url: "https://github.com/r-lib/tree-sitter-r", exact: "1.3.0"),
 40        .package(url: "https://github.com/tree-sitter/tree-sitter-ruby", exact: "0.23.1"),
 41        .package(url: "https://github.com/tree-sitter/tree-sitter-rust", exact: "0.24.2"),
 42        .package(url: "https://github.com/6cdh/tree-sitter-scheme", exact: "0.24.7-1"),
 43        .package(url: "https://github.com/tree-sitter-grammars/tree-sitter-toml", exact: "0.7.0"),
 44        .package(url: "https://github.com/tree-sitter-grammars/tree-sitter-yaml", exact: "0.7.2")
 45    ],
 46    targets: [
 47        .target(name: "OrgCore"),
 48        .target(name: "OrgDocument", dependencies: ["OrgCore"]),
 49        .target(name: "OrgIndex", dependencies: ["OrgCore", .product(name: "GRDB", package: "GRDB.swift")]),
 50        .target(name: "OrgWorkspace", dependencies: ["OrgIndex"]),
 51        .target(name: "OrgPresentation", dependencies: ["OrgCore"]),
 52        .target(name: "OrgEditorAppKit", dependencies: ["OrgDocument", "OrgPresentation"]),
 53        .target(name: "TreeSitterElisp", path: "Sources/TreeSitterElisp", sources: ["src/parser.c"], cSettings: [.headerSearchPath("src")]),
 54        .target(name: "TreeSitterClojure", path: "Sources/TreeSitterClojure", sources: ["src/parser.c"], cSettings: [.headerSearchPath("src")]),
 55        .target(
 56            name: "TreeSitterScanners", path: "Sources/TreeSitterScanners",
 57            sources: ["javascript/scanner.c", "lua/scanner.c", "python/scanner.c", "yaml/scanner.c"],
 58            cSettings: [.unsafeFlags(["-Wno-shorten-64-to-32"])]
 59        ),
 60        .target(
 61            name: "OrgHighlight",
 62            dependencies: [
 63                "OrgPresentation", "TreeSitterElisp", "TreeSitterClojure", "TreeSitterScanners",
 64                .product(name: "SwiftTreeSitter", package: "swift-tree-sitter"),
 65                .product(name: "TreeSitterBash", package: "tree-sitter-bash"),
 66                .product(name: "TreeSitterC", package: "tree-sitter-c"),
 67                .product(name: "TreeSitterCPP", package: "tree-sitter-cpp"),
 68                .product(name: "TreeSitterGo", package: "tree-sitter-go"),
 69                .product(name: "TreeSitterHaskell", package: "tree-sitter-haskell"),
 70                .product(name: "TreeSitterJava", package: "tree-sitter-java"),
 71                .product(name: "TreeSitterJavaScript", package: "tree-sitter-javascript"),
 72                .product(name: "TreeSitterJSON", package: "tree-sitter-json"),
 73                .product(name: "TreeSitterLua", package: "tree-sitter-lua"),
 74                .product(name: "TreeSitterPython", package: "tree-sitter-python"),
 75                .product(name: "TreeSitterR", package: "tree-sitter-r"),
 76                .product(name: "TreeSitterRuby", package: "tree-sitter-ruby"),
 77                .product(name: "TreeSitterRust", package: "tree-sitter-rust"),
 78                .product(name: "TreeSitterScheme", package: "tree-sitter-scheme"),
 79                .product(name: "TreeSitterTOML", package: "tree-sitter-toml"),
 80                .product(name: "TreeSitterYAML", package: "tree-sitter-yaml")
 81            ]
 82        ),
 83        .executableTarget(name: "OrgstarSpike", dependencies: ["OrgEditorAppKit"]),
 84        .target(name: "OrgApp", dependencies: ["OrgWorkspace", "OrgDocument", "OrgPresentation"]),
 85        .executableTarget(name: "Orgstar", dependencies: ["OrgApp", "OrgEditorAppKit", "OrgHighlight"]),
 86        // The iOS app, bundled by scripts/build-ios-app.sh.
 87        .executableTarget(name: "OrgstarMobile", dependencies: ["OrgApp", "OrgHighlight"]),
 88        // App extensions, bundled into Orgstar.app by scripts/build-app.sh.
 89        .executableTarget(name: "OrgstarQuickLook", dependencies: ["OrgCore"], linkerSettings: extensionEntry),
 90        .executableTarget(name: "OrgstarSpotlight", dependencies: ["OrgCore"], linkerSettings: extensionEntry),
 91        // The iOS share extension, bundled into the iOS app by scripts/build-ios-app.sh.
 92        .executableTarget(name: "OrgstarShare", dependencies: ["OrgApp"], linkerSettings: extensionEntry),
 93        .testTarget(name: "OrgCoreTests", dependencies: ["OrgCore"], exclude: ["Conformance"]),
 94        .testTarget(name: "OrgDocumentTests", dependencies: ["OrgDocument"]),
 95        .testTarget(name: "OrgIndexTests", dependencies: ["OrgIndex"]),
 96        .testTarget(name: "OrgWorkspaceTests", dependencies: ["OrgWorkspace"]),
 97        .testTarget(name: "OrgPresentationTests", dependencies: ["OrgPresentation"]),
 98        .testTarget(name: "OrgEditorAppKitTests", dependencies: ["OrgEditorAppKit", "OrgApp"]),
 99        .testTarget(name: "OrgAppTests", dependencies: ["OrgApp", "OrgDocument"]),
100        .testTarget(name: "OrgHighlightTests", dependencies: ["OrgHighlight", "OrgCore", "OrgPresentation"])
101    ]
102)