mirror of
https://github.com/dredx/prole.git
synced 2026-09-24 17:44:33 +00:00
- Replaced all IRCKit (0.16) usage with NozeIO `swift-nio-irc-client` (SwiftPM). - Enabled IRC window with new client: connects and joins `#prole` (plain TCP for now; SSL checkbox displays a notice). - Enabled RoyalVNC and removed all optional/flag-based handling. Integrated RoyalVNC via SwiftPM (`royalvnc` on `main`). - Updated VNC UI to current RoyalVNC API: `VNCConnection` + `VNCCAFramebufferView` with a strong delegate reference. - Simplified build to use SwiftPM for both IRC and RoyalVNC. - Fixed runtime embedding and loader issues: - Copy SwiftPM-built `.dylib` products (e.g., `libRoyalVNCKit.dylib`) into `Contents/Frameworks` and codesign them. - Added `@executable_path/../Frameworks` to app rpaths with `install_name_tool`. - Removed manual RoyalVNCKit `.xcframework` building/embedding and any IRCKit traces. #### Key changes - `prole-app/build.sh`: - Build app via SwiftPM; removed IRCKit and manual RoyalVNC build logic. - Embed SwiftPM `.dylib` outputs into `Contents/Frameworks` and set app rpath. - Cleaned usage text; dependencies now handled by SwiftPM. - `prole-app/Package.swift`: - Add `swift-nio-irc-client` (NozeIO) dependency. - Add RoyalVNC via SwiftPM: `https://github.com/royalapplications/royalvnc` on `main`. - `prole-app/Sources/IRCWindowController.swift`: - Migrate to NozeIO `IRC` package API; re-enable Connect; join `#prole`. - Import AppKit; provide convenience init for transcript view. - `prole-app/Sources/WorkstationWindowController.swift`: - Import `RoyalVNCKit`; use `VNCConnection` + `VNCCAFramebufferView`. - Implement `VNCConnectionDelegate` and keep a strong reference to the delegate. - `prole-app/debug.sh`: - Removed IRCKit logs section; kept RoyalVNC logs earlier; then removed manual RoyalVNC altogether. This build now launches successfully (no dyld errors), opens the Workstation window (RoyalVNC), and the IRC window connects via the new client. ### Suggested follow-ups - If TLS is required for IRC, add `NIOSSL` integration and wire SSL checkbox to TLS connection. - Optionally remove leftover Vendor references if any local cache remains.
37 lines
1.1 KiB
Swift
37 lines
1.1 KiB
Swift
// swift-tools-version: 5.9
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "ProleApp",
|
|
platforms: [
|
|
.macOS(.v12)
|
|
],
|
|
products: [
|
|
.executable(name: "Prole", targets: ["Prole"]) // App binary name
|
|
],
|
|
dependencies: [
|
|
// NozeIO SwiftNIO IRC Client
|
|
.package(url: "https://github.com/NozeIO/swift-nio-irc-client", branch: "main"),
|
|
// RoyalVNCKit via SwiftPM instead of local xcframework
|
|
.package(url: "https://github.com/royalapplications/royalvnc", branch: "main")
|
|
],
|
|
targets: [
|
|
.executableTarget(
|
|
name: "Prole",
|
|
dependencies: [
|
|
.product(name: "IRC", package: "swift-nio-irc-client"),
|
|
.product(name: "RoyalVNCKit", package: "royalvnc")
|
|
],
|
|
path: "Sources",
|
|
resources: [
|
|
// The build script separately copies resources into the app bundle; no SPM resources here.
|
|
],
|
|
linkerSettings: [
|
|
.linkedFramework("AppKit"),
|
|
.linkedFramework("Carbon"),
|
|
.linkedFramework("Network")
|
|
]
|
|
)
|
|
]
|
|
)
|