Internal
Public Access
macOS: build a proper .app bundle with an embedded icon
Same root cause as the earlier Windows exe icon fix: add_executable() never set MACOSX_BUNDLE, so on macOS this produced a bare Mach-O binary rather than a proper .app bundle -- and without a bundle there's no Info.plist/.icns mechanism for Finder to show a custom icon at all. Added packaging/macos/orbithub.icns, rendered at up to 1024px directly from the same createOrbitHubAppIcon() logic used at runtime (via a one-off export tool, not committed) so it matches what the app actually looks like. CMake's MACOSX_BUNDLE keyword and MACOSX_BUNDLE_ICON_FILE wire it into an auto-generated Info.plist; both keywords are no-ops on other platforms. The profile database uses QStandardPaths::AppDataLocation, not the executable's own path, so this doesn't affect where existing profiles are found. Build output on macOS changes from build/orbithub to build/orbithub.app (launch with `open build/orbithub.app`); docs/BUILDING.md updated to match. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+13
-1
@@ -115,7 +115,19 @@ if(WIN32)
|
|||||||
list(APPEND ORBITHUB_SOURCES packaging/windows/orbithub.rc)
|
list(APPEND ORBITHUB_SOURCES packaging/windows/orbithub.rc)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_executable(orbithub WIN32 ${ORBITHUB_SOURCES})
|
if(APPLE)
|
||||||
|
list(APPEND ORBITHUB_SOURCES packaging/macos/orbithub.icns)
|
||||||
|
set_source_files_properties(packaging/macos/orbithub.icns PROPERTIES
|
||||||
|
MACOSX_PACKAGE_LOCATION "Resources"
|
||||||
|
)
|
||||||
|
set(MACOSX_BUNDLE_ICON_FILE orbithub.icns)
|
||||||
|
set(MACOSX_BUNDLE_BUNDLE_NAME "OrbitHub")
|
||||||
|
set(MACOSX_BUNDLE_GUI_IDENTIFIER "io.orbithub.OrbitHub")
|
||||||
|
set(MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION}")
|
||||||
|
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_executable(orbithub WIN32 MACOSX_BUNDLE ${ORBITHUB_SOURCES})
|
||||||
|
|
||||||
target_link_libraries(orbithub PRIVATE Qt6::Widgets Qt6::Sql)
|
target_link_libraries(orbithub PRIVATE Qt6::Widgets Qt6::Sql)
|
||||||
target_link_libraries(orbithub PRIVATE KodoTerm::KodoTerm)
|
target_link_libraries(orbithub PRIVATE KodoTerm::KodoTerm)
|
||||||
|
|||||||
+3
-2
@@ -35,7 +35,7 @@ cmake -S . -B build -G Ninja \
|
|||||||
-DCMAKE_BUILD_TYPE=Release \
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_PREFIX_PATH="$(brew --prefix qt@6);$(brew --prefix openssl@3)"
|
-DCMAKE_PREFIX_PATH="$(brew --prefix qt@6);$(brew --prefix openssl@3)"
|
||||||
cmake --build build
|
cmake --build build
|
||||||
./build/orbithub
|
open build/orbithub.app
|
||||||
```
|
```
|
||||||
|
|
||||||
## Windows 11 (PowerShell + MSVC + vcpkg)
|
## Windows 11 (PowerShell + MSVC + vcpkg)
|
||||||
@@ -82,7 +82,8 @@ If you already have `Qt 6` from the Qt installer and do not want vcpkg Qt, you c
|
|||||||
- OrbitHub builds vendored `KodoTerm`, `libvterm`, and `FreeRDP` from `third_party/`.
|
- OrbitHub builds vendored `KodoTerm`, `libvterm`, and `FreeRDP` from `third_party/`.
|
||||||
- If Qt is installed in a custom location, pass `-DCMAKE_PREFIX_PATH=/path/to/Qt/6.x.x/<toolchain>` to CMake.
|
- If Qt is installed in a custom location, pass `-DCMAKE_PREFIX_PATH=/path/to/Qt/6.x.x/<toolchain>` to CMake.
|
||||||
- Build output executable:
|
- Build output executable:
|
||||||
- Linux/macOS: `build/orbithub`
|
- Linux: `build/orbithub`
|
||||||
|
- macOS: `build/orbithub.app` (a proper app bundle, launch with `open build/orbithub.app`)
|
||||||
- Windows: `build\\orbithub.exe`
|
- Windows: `build\\orbithub.exe`
|
||||||
|
|
||||||
## Linux Packaging
|
## Linux Packaging
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user