Add macOS Cocoa port and CEF helper support

Introduce a macOS Cocoa-based UI and CEF helper subprocess support. CMake: enable OBJCXX on Apple, treat mac sources as .mm, set -fobjc-arc, link Cocoa frameworks, and generate helper app targets using a mac Info.plist template; keep libcef logical target off macOS. Implementation: add Objective-C++ implementations for browser_host and nebula_window, convert startup to ObjC++ (prepare NSApplication), add process_helper_mac (CEF helper entry) and load CEF library from main/main_bigpicture on mac. Tooling/docs: add .clangd fallback flags, compile_commands symlink helper, update cross-platform docs for mac status. Misc: add menu-popup UI page, define UNREFERENCED_PARAMETER in platform/types.h, small code cleanups (use (void)layout, include platform/types.h) and update .gitignore.
This commit is contained in:
2026-05-19 12:57:26 +12:00
parent 8cf9b50690
commit 29908646ea
19 changed files with 623 additions and 146 deletions
+28
View File
@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nebula Menu</title>
<link rel="stylesheet" href="../css/menu-popup.css">
</head>
<body>
<main id="menu-popup" role="menu" aria-label="Nebula browser menu">
<button type="button" role="menuitem" data-cmd="open-settings">Settings</button>
<button type="button" role="menuitem" data-cmd="gpu-diagnostics">GPU diagnostics</button>
<button type="button" role="menuitem" data-cmd="big-picture">Big Picture mode</button>
<button type="button" role="menuitem" data-cmd="toggle-devtools">Developer tools</button>
<div class="zoom-controls" aria-label="Page zoom">
<button type="button" data-cmd="zoom-out" aria-label="Zoom out">-</button>
<span id="zoom-percent">100%</span>
<button type="button" data-cmd="zoom-in" aria-label="Zoom in">+</button>
</div>
<button type="button" role="menuitem" data-cmd="hard-reload">Hard reload</button>
<button type="button" role="menuitem" data-cmd="fresh-reload">Fresh reload</button>
</main>
<script src="../js/menu-popup.js"></script>
</body>
</html>