Files
ICCery-CPU/VENDOR.md
Local Admin 43bff18101
Build macOS Packages / Build macOS (Intel) (push) Failing after 10s
Build macOS Packages / Build macOS (Apple Silicon) (push) Failing after 10s
Build macOS Packages / Build macOS (Universal) (push) Skipped
removed cruft and restructured.
2026-09-07 05:21:44 -07:00

37 lines
1.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Vendoring TargetPrint into ICCery
CI (`.gitea/workflows/build-macos.yml`) publishes `TargetPrint_<tag>-<sha>-vendor-iccery.zip`:
```
vendor-iccery/
macos-x86_64/TargetPrint.app # Intel
macos-aarch64/TargetPrint.app # Apple Silicon
macos-universal/TargetPrint.app # Universal 2 (x86_64 + arm64)
```
Copy that tree to ICCery as `src-tauri/targetprint/` (directory names match ICCerys existing `macos-x86_64` / `macos-aarch64` sidecar layout).
Launch fire-and-forget (SPEC §16). TargetPrint owns its run loop and the native print panel; do not `wait()`.
```rust
use std::env;
use std::fs;
use std::process::Command;
let json = serde_json::to_string_pretty(&job)?;
let mut path = env::temp_dir();
path.push(format!("iccery_job_{}.json", uuid::Uuid::new_v4()));
fs::write(&path, json)?;
Command::new(targetprint_executable()) // …/TargetPrint.app/Contents/MacOS/TargetPrint
.arg("--job")
.arg(&path)
.spawn()?;
```
Pick `macos-x86_64` or `macos-aarch64` for the ICCery slice being built, or ship `macos-universal` in every macOS build.
TargetPrint is **not** App Sandboxed (it calls `cupsGetPPD`). Hardened Runtime stays on.
End users who are not bundling ICCery should use the `.dmg` for the same tag (app + Applications shortcut).