fancy new browser
1// swift-tools-version: 5.10
2import PackageDescription
3
4let package = Package(
5 name: "Mere",
6 platforms: [.macOS("26.0")],
7 products: [
8 .library(name: "MereKit", targets: ["MereKit"]),
9 .library(name: "WebKitEngine", targets: ["WebKitEngine"]),
10 .library(name: "ChromiumEngine", targets: ["ChromiumEngine"]),
11 .library(name: "MereCore", targets: ["MereCore"]),
12 .library(name: "MereUI", targets: ["MereUI"]),
13 ],
14 targets: [
15 // Core protocols + shared models — no engine dependency
16 .target(
17 name: "MereKit",
18 path: "Sources/MereKit"
19 ),
20
21 // WebKit implementation — depends only on MereKit + system WebKit
22 .target(
23 name: "WebKitEngine",
24 dependencies: ["MereKit"],
25 path: "Sources/WebKitEngine"
26 ),
27
28 // Chromium/CEF stub — wire in CEF.swift here when ready
29 .target(
30 name: "ChromiumEngine",
31 dependencies: ["MereKit"],
32 path: "Sources/ChromiumEngine"
33 // When adding CEF:
34 // dependencies: ["MereKit", .product(name: "CEF", package: "CEF.swift")],
35 // and add the CEF package to `dependencies:` above
36 ),
37
38 // Engine-agnostic controllers: Tab, WindowViewModel, CookieSyncController
39 .target(
40 name: "MereCore",
41 dependencies: ["MereKit", "WebKitEngine", "ChromiumEngine"],
42 path: "Sources/MereCore"
43 ),
44
45 // SwiftUI views — depends on MereCore, not on specific engines
46 .target(
47 name: "MereUI",
48 dependencies: ["MereCore", "MereKit"],
49 path: "Sources/MereUI"
50 ),
51
52 // Tests
53 .testTarget(
54 name: "MereKitTests",
55 dependencies: ["MereKit", "MereCore"],
56 path: "Tests/BrowserKitTests"
57 ),
58 ]
59)