Feat: trying to improve bundling and compilation

This commit is contained in:
2026-02-06 00:46:40 +01:00
parent 66ee2e28ff
commit 0f9d750069
5 changed files with 17 additions and 2 deletions

View File

@@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file.
## [0.0.8] - 2026-06-05
### Added
- Proper desktop app icon and metadata across all platforms: moved icon to `assets/Cagire.png`, added Windows `.exe` icon and file properties embedding via `winres` build script, added PNG to cargo-bundle icon list for Linux `.deb` packaging.
- Universal macOS `.pkg` installer in CI: combines Intel and Apple Silicon builds into fat binaries via `lipo`, then packages `Cagire.app` and CLI into a single `.pkg` installer. Releases now include `cagire-macos-universal`, `cagire-macos-universal-desktop.app.zip`, and `Cagire-<version>-universal.pkg`.
- New themes: **Eden** (dark forest — black background with green-only palette, terminal aesthetic) and **Georges** (Commodore 64 palette on pure black background).
- `bounce` word: ping-pong cycle through n items by step runs (e.g., `60 64 67 72 4 bounce` → 60 64 67 72 67 64 60 64...).

View File

@@ -80,6 +80,9 @@ soft_ratatui = { version = "0.1.3", features = ["unicodefonts"], optional = true
image = { version = "0.25", default-features = false, features = ["png"], optional = true }
[target.'cfg(windows)'.build-dependencies]
winres = "0.1"
[profile.release]
opt-level = 3
lto = "fat"
@@ -90,7 +93,7 @@ strip = true
[package.metadata.bundle.bin.cagire-desktop]
name = "Cagire"
identifier = "com.sova.cagire"
icon = ["assets/Cagire.icns", "assets/Cagire.ico"]
icon = ["assets/Cagire.icns", "assets/Cagire.ico", "assets/Cagire.png"]
copyright = "Copyright (c) 2025 Raphaël Forment"
category = "Music"
short_description = "Forth-based music sequencer"

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

11
build.rs Normal file
View File

@@ -0,0 +1,11 @@
fn main() {
#[cfg(windows)]
{
let mut res = winres::WindowsResource::new();
res.set_icon("assets/Cagire.ico")
.set("ProductName", "Cagire")
.set("FileDescription", "Forth-based music sequencer")
.set("LegalCopyright", "Copyright (c) 2025 Raphaël Forment");
res.compile().expect("Failed to compile Windows resources");
}
}

View File

@@ -458,7 +458,7 @@ impl eframe::App for CagireDesktop {
}
fn load_icon() -> egui::IconData {
const ICON_BYTES: &[u8] = include_bytes!("../../cagire_pixel.png");
const ICON_BYTES: &[u8] = include_bytes!("../../assets/Cagire.png");
let img = image::load_from_memory(ICON_BYTES)
.expect("Failed to load embedded icon")