Skip to content

Rebuild native renderer binaries - #990

Merged
SimonCropp merged 1 commit into
tray-macfrom
native-binaries-tray-mac
Oct 28, 2026
Merged

SimonCropp merged 1 commit into
tray-macfrom
native-binaries-tray-mac

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Rebuilt diffengine_viewer from native for the runtime identifiers that load one.
Windows is not among them: that head renders with WinForms.

Produced by the build-native workflow from d0ed68f.

@SimonCropp
SimonCropp merged commit 6052c09 into tray-mac Oct 28, 2026
1 check passed
@SimonCropp
SimonCropp deleted the native-binaries-tray-mac branch October 28, 2026 22:38
SimonCropp added a commit that referenced this pull request Oct 29, 2026
* Add the tray's macOS head

src/DiffEngineTray.Mac is the tray on macOS: the core's tracker and
inline queue, with a status bar item from a native library of its own,
diffengine_tray (decision G), so a tray change never moves the viewer's
ABI version. It is PlatformHeadsMac's StatusItem behind
native/include/detray.h, a second product of native/swift, which
build-native collects into the head's runtimes through PlatformHeads
0.8.0's mac-libraries.

The menu crosses the ABI as one array, each item with its parent by
index, and the Swift side makes it a tree again. The managed half,
Detray and MacTray, is in the core, as ProcessEx's native calls are, so
MacTrayTests hands the library a menu and reads back what it rebuilt on
the macOS job.

AppKit is driven from the main thread only, so the head runs
TrayLoop.RunPumped on the thread Main starts on, with the library's pump
as its wait. The app is an accessory with no Dock icon, App Nap is off,
and a logout is TerminateGuard's, ending the loop as Exit does.

The pictures and the login item move to the core for both heads off
Windows. Every PlatformHeads pin moves to 0.8.0.

* Rebuild native renderer binaries (#990)

Co-authored-by: SimonCropp <122666+SimonCropp@users.noreply.github.com>

* Test the tray's library from source and as committed

The macOS jobs treat the tray's dylib as they treat the viewer's. The
unix job copies the freshly built libdiffengine_tray.dylib into the
head's runtimes before testing, so MacTrayTests hands its menu to the
Swift as it is now, not as it was at the last build-native rebuild. The
native job checks both committed dylibs for both slices, and on
osx-arm64 runs DiffEngineTray.Core.Tests against the committed one.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: SimonCropp <122666+SimonCropp@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant