diff --git a/desktop/bundle/src/common.rs b/desktop/bundle/src/common.rs index 61efefbc5..3e0523b87 100644 --- a/desktop/bundle/src/common.rs +++ b/desktop/bundle/src/common.rs @@ -4,6 +4,7 @@ use std::path::{Path, PathBuf}; use std::process::{Command, Stdio}; pub(crate) const APP_NAME: &str = "Graphite"; +pub(crate) const APP_BIN: &str = "graphite"; pub(crate) fn workspace_path() -> PathBuf { PathBuf::from(env!("CARGO_WORKSPACE_DIR")) @@ -34,7 +35,7 @@ pub(crate) fn build_bin(package: &str, bin: Option<&str>) -> Result Result<(), Box> { - let app_bin = build_bin(PACKAGE, None)?; + let app_bin = build_bin("graphite-desktop-platform-linux", None)?; // TODO: Implement bundling for linux diff --git a/desktop/bundle/src/mac.rs b/desktop/bundle/src/mac.rs index d19368b59..a3b74d015 100644 --- a/desktop/bundle/src/mac.rs +++ b/desktop/bundle/src/mac.rs @@ -7,9 +7,6 @@ use crate::common::*; const APP_ID: &str = "art.graphite.Graphite"; -const PACKAGE: &str = "graphite-desktop-platform-mac"; -const HELPER_BIN: &str = "graphite-desktop-platform-mac-helper"; - const ICONS_FILE_NAME: &str = "graphite.icns"; const EXEC_PATH: &str = "Contents/MacOS"; @@ -18,8 +15,8 @@ const RESOURCES_PATH: &str = "Contents/Resources"; const CEF_FRAMEWORK: &str = "Chromium Embedded Framework.framework"; pub fn main() -> Result<(), Box> { - let app_bin = build_bin(PACKAGE, None)?; - let helper_bin = build_bin(PACKAGE, Some(HELPER_BIN))?; + let app_bin = build_bin("graphite-desktop-platform-mac", None)?; + let helper_bin = build_bin("graphite-desktop-platform-mac", Some("helper"))?; let profile_path = profile_path(); let app_dir = bundle(&profile_path, &app_bin, &helper_bin); diff --git a/desktop/bundle/src/win.rs b/desktop/bundle/src/win.rs index d3e159e41..78867d185 100644 --- a/desktop/bundle/src/win.rs +++ b/desktop/bundle/src/win.rs @@ -4,11 +4,10 @@ use std::path::{Path, PathBuf}; use crate::common::*; -const PACKAGE: &str = "graphite-desktop-platform-win"; -const EXECUTABLE: &str = "graphite.exe"; +const EXECUTABLE: &str = "Graphite.exe"; pub fn main() -> Result<(), Box> { - let app_bin = build_bin(PACKAGE, None)?; + let app_bin = build_bin("graphite-desktop-platform-win", None)?; let executable = bundle(&profile_path(), &app_bin); diff --git a/desktop/platform/linux/Cargo.toml b/desktop/platform/linux/Cargo.toml index beba3026c..ed50d6a6d 100644 --- a/desktop/platform/linux/Cargo.toml +++ b/desktop/platform/linux/Cargo.toml @@ -8,5 +8,9 @@ repository = "" edition = "2024" rust-version = "1.87" +[[bin]] +name = "graphite" +path = "src/main.rs" + [dependencies] graphite-desktop = { path = "../.." } diff --git a/desktop/platform/mac/Cargo.toml b/desktop/platform/mac/Cargo.toml index ccb021ae1..06ea41312 100644 --- a/desktop/platform/mac/Cargo.toml +++ b/desktop/platform/mac/Cargo.toml @@ -9,7 +9,11 @@ edition = "2024" rust-version = "1.87" [[bin]] -name = "graphite-desktop-platform-mac-helper" +name = "graphite" +path = "src/main.rs" + +[[bin]] +name = "helper" path = "src/helper.rs" [dependencies] diff --git a/desktop/platform/win/Cargo.toml b/desktop/platform/win/Cargo.toml index 459ac8907..e268622cc 100644 --- a/desktop/platform/win/Cargo.toml +++ b/desktop/platform/win/Cargo.toml @@ -8,6 +8,10 @@ repository = "" edition = "2024" rust-version = "1.87" +[[bin]] +name = "graphite" +path = "src/main.rs" + [dependencies] graphite-desktop = { path = "../.." } diff --git a/desktop/platform/win/build.rs b/desktop/platform/win/build.rs index dc979a126..73d8a2fd5 100644 --- a/desktop/platform/win/build.rs +++ b/desktop/platform/win/build.rs @@ -2,7 +2,30 @@ fn main() { #[cfg(target_os = "windows")] { let mut res = winres::WindowsResource::new(); + res.set_icon("../../../branding/app-icons/graphite.ico"); + + res.set_language(0x0409); // English (US) + + // TODO: Replace with actual version + res.set_version_info(winres::VersionInfo::FILEVERSION, { + const MAJOR: u64 = 0; + const MINOR: u64 = 999; + const PATCH: u64 = 0; + const RELEASE: u64 = 0; + (MAJOR << 48) | (MINOR << 32) | (PATCH << 16) | RELEASE + }); + res.set("FileVersion", "0.999.0.0"); + res.set("ProductVersion", "0.999.0.0"); + + res.set("OriginalFilename", "Graphite.exe"); + + res.set("FileDescription", "Graphite"); + res.set("ProductName", "Graphite"); + + res.set("LegalCopyright", "Copyright © 2025 Graphite Labs, LLC"); + res.set("CompanyName", "Graphite Labs, LLC"); + res.compile().expect("Failed to compile Windows resources"); } }