fix(desktop): compile the Liquid Glass icon via task and pass Tauri a prebuilt Assets.car

This commit is contained in:
Anthony Stirling
2026-08-23 17:44:09 +01:00
parent 9a07c10780
commit a2b4770935
5 changed files with 36 additions and 23 deletions
+1 -22
View File
@@ -86,7 +86,7 @@ jobs:
# ARM64: NSIS only (WiX MSI has no arm64 support in Tauri) and no JPDFium
# natives yet - flip jpdfium_platforms to windows-arm64 once JPDFium ships it.
WINDOWS_ARM64='{"platform":"windows-11-arm","args":"--target aarch64-pc-windows-msvc --bundles nsis","name":"windows-arm64","jpdfium_platforms":"none"}'
MACOS='{"platform":"macos-26","args":"--target universal-apple-darwin --verbose","name":"macos-universal","jpdfium_platforms":"darwin-arm64,darwin-x64"}'
MACOS='{"platform":"macos-26","args":"--target universal-apple-darwin","name":"macos-universal","jpdfium_platforms":"darwin-arm64,darwin-x64"}'
LINUX='{"platform":"ubuntu-22.04","args":"","name":"linux-x86_64","jpdfium_platforms":"linux-x64"}'
case "$PLATFORM" in
@@ -178,27 +178,6 @@ jobs:
xcodebuild -version
command -v actool
# TEMPORARY DIAGNOSTIC - hidden vs visible parent directory.
# Tauri compiles from tempfile::tempdir(), which defaults to a ".tmp"
# prefix. If actool skips hidden paths, that is an upstream bug.
- name: PROBE hidden parent directory
if: runner.os == 'macOS'
continue-on-error: true
shell: bash
run: |
try_dir() {
local dir="$1" label="$2"
rm -rf "$dir"; mkdir -p "$dir/out"
cp -R frontend/editor/src-tauri/icons/macos/app.icon "$dir/Icon.icon"
echo "########## $label -> $dir"
actool "$dir/Icon.icon" --compile "$dir/out" --output-format human-readable-text --notices --warnings --output-partial-info-plist "$dir/out/assetcatalog_generated_info.plist" --app-icon Icon --include-all-app-icons --accent-color AccentColor --enable-on-demand-resources NO --development-region en --target-device mac --minimum-deployment-target 26.0 --platform macosx 2>&1 | tail -6
echo "########## $label exit=${PIPESTATUS[0]} car=$(ls -1 "$dir/out/Assets.car" 2>/dev/null || echo NONE)"
}
T="${TMPDIR%/}"
try_dir "$T/visible-parent" VISIBLE
try_dir "$T/.tmpHIDDEN1" HIDDEN
try_dir "$T/.hidden-parent/nested" HIDDEN-ANCESTOR
- name: Setup Rust
uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
with:
+3
View File
@@ -305,3 +305,6 @@ docs/type3/signatures/
# Local screenshot artifacts from *-screenshots.spec.ts
frontend/editor/screenshots/
# Compiled by `task desktop:assets-car` from icons/macos/app.icon
frontend/editor/src-tauri/icons/macos/Assets.car
+23
View File
@@ -35,6 +35,29 @@ tasks:
- task: ":frontend:prepare"
vars: { MODE: desktop }
- provisioner
- assets-car
assets-car:
desc: "Compile the macOS Liquid Glass app icon"
platforms: [darwin]
cmds:
# Tauri can compile icons/macos/app.icon itself, but its own actool call
# fails inside the bundler; compiling here and handing it the finished
# Assets.car takes the supported prebuilt-.car path instead.
- cmd: |
set -eu
ICONS=frontend/editor/src-tauri/icons/macos
WORK=$(mktemp -d)/build
mkdir -p "$WORK/out"
cp -R "$ICONS/app.icon" "$WORK/Icon.icon"
actool "$WORK/Icon.icon" --compile "$WORK/out" \
--output-format human-readable-text --notices --warnings \
--output-partial-info-plist "$WORK/out/assetcatalog_generated_info.plist" \
--app-icon Icon --include-all-app-icons \
--enable-on-demand-resources NO --development-region en \
--target-device mac --minimum-deployment-target 26.0 --platform macosx
cp "$WORK/out/Assets.car" "$ICONS/Assets.car"
echo "Compiled $ICONS/Assets.car ($(wc -c < "$ICONS/Assets.car") bytes)"
provisioner:
desc: "Build installer provisioner"
@@ -31,7 +31,6 @@
"icon": [
"icons/windows/app.ico",
"icons/macos/app.icns",
"icons/macos/app.icon",
"icons/macos/app-512.png"
],
"resources": ["libs/*.jar", "runtime/jre/**/*"],
@@ -0,0 +1,9 @@
{
"bundle": {
"icon": [
"icons/macos/app.icns",
"icons/macos/app-512.png",
"icons/macos/Assets.car"
]
}
}