fix: reduced app size by a good margin
This commit is contained in:
@@ -39,12 +39,15 @@ winresource = "0.1"
|
||||
product-name = "Blogging Desktop Server"
|
||||
identifier = "de.rfc1437.ruds"
|
||||
description = "A desktop application for writing and publishing static blogs."
|
||||
before-packaging-command = "cargo build --release -p bds-ui -p bds-cli -p bds-mcp -p bds-server"
|
||||
before-packaging-command = "cargo run --quiet -p bds-package-runtime"
|
||||
before-each-package-command = "cargo run --quiet -p bds-package-runtime -- sign-app-for-dmg"
|
||||
binaries = [
|
||||
{ path = "bds-ui", main = true },
|
||||
{ path = "bds-cli" },
|
||||
{ path = "bds-mcp" },
|
||||
{ path = "bds-server" },
|
||||
]
|
||||
resources = [
|
||||
{ src = "../../target/release/bds-runtime/*", target = "." },
|
||||
]
|
||||
deep-link-protocols = [{ schemes = ["ruds"] }]
|
||||
icons = [
|
||||
@@ -54,8 +57,7 @@ icons = [
|
||||
]
|
||||
|
||||
[package.metadata.packager.macos]
|
||||
minimum-system-version = "13.0"
|
||||
signing-identity = "-"
|
||||
minimum-system-version = "26.0"
|
||||
|
||||
[package.metadata.packager.nsis]
|
||||
installer-icon = "assets/app-icons/bds.ico"
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
fn main() {
|
||||
println!("cargo:rerun-if-changed=assets/app-icons/bds.ico");
|
||||
|
||||
// Wry and bds-core both reach objc2's native exception helper across
|
||||
// separate Rust dylibs, so retain the static helper on the UI link line.
|
||||
if std::env::var("CARGO_CFG_TARGET_OS").as_deref() == Ok("macos") {
|
||||
println!("cargo:rustc-link-arg=-lobjc2_exception_helper_0_1");
|
||||
}
|
||||
|
||||
if std::env::var("CARGO_CFG_TARGET_OS").as_deref() == Ok("windows") {
|
||||
winresource::WindowsResource::new()
|
||||
.set_icon("assets/app-icons/bds.ico")
|
||||
|
||||
@@ -24,22 +24,55 @@ fn desktop_packages_have_native_icons_and_cargo_commands() {
|
||||
"assets/app-icons/bds.icns",
|
||||
"identifier = \"de.rfc1437.ruds\"",
|
||||
"deep-link-protocols = [{ schemes = [\"ruds\"] }]",
|
||||
"signing-identity = \"-\"",
|
||||
"cargo build --release -p bds-ui -p bds-cli -p bds-mcp",
|
||||
"minimum-system-version = \"26.0\"",
|
||||
"../../target/release/bds-runtime/*",
|
||||
"cargo run --quiet -p bds-package-runtime",
|
||||
"cargo run --quiet -p bds-package-runtime -- sign-app-for-dmg",
|
||||
"{ path = \"bds-mcp\" }",
|
||||
] {
|
||||
assert!(manifest.contains(required), "missing {required}");
|
||||
}
|
||||
assert!(!manifest.contains("signing-identity"));
|
||||
|
||||
let cargo_config = fs::read_to_string(Path::new(CRATE_DIR).join("../../.cargo/config.toml"))
|
||||
.expect("Cargo packaging aliases");
|
||||
for alias in ["bundle-macos", "bundle-windows", "bundle-linux"] {
|
||||
assert!(cargo_config.contains(alias), "missing cargo {alias}");
|
||||
}
|
||||
assert!(cargo_config.contains("prefer-dynamic"));
|
||||
assert!(cargo_config.contains("-mmacosx-version-min=26.0"));
|
||||
assert!(cargo_config.contains("@executable_path/../Resources"));
|
||||
assert!(cargo_config.contains("$ORIGIN/../lib/bds-ui"));
|
||||
|
||||
let main = fs::read_to_string(Path::new(CRATE_DIR).join("src/main.rs")).unwrap();
|
||||
assert!(main.contains("assets/app-icons/bds.png"));
|
||||
|
||||
let build = fs::read_to_string(Path::new(CRATE_DIR).join("build.rs")).unwrap();
|
||||
assert!(build.contains("set_icon(\"assets/app-icons/bds.ico\")"));
|
||||
|
||||
let workspace_manifest =
|
||||
fs::read_to_string(Path::new(CRATE_DIR).join("../../Cargo.toml")).unwrap();
|
||||
assert!(workspace_manifest.contains("strip = \"symbols\""));
|
||||
assert!(workspace_manifest.contains("ort-download-binaries-rustls-tls"));
|
||||
|
||||
let core_manifest =
|
||||
fs::read_to_string(Path::new(CRATE_DIR).join("../bds-core/Cargo.toml")).unwrap();
|
||||
assert!(core_manifest.contains("crate-type = [\"dylib\"]"));
|
||||
let server_manifest =
|
||||
fs::read_to_string(Path::new(CRATE_DIR).join("../bds-server/Cargo.toml")).unwrap();
|
||||
assert!(server_manifest.contains("crate-type = [\"dylib\"]"));
|
||||
assert!(!manifest.contains("{ path = \"bds-server\" }"));
|
||||
assert!(!manifest.contains("-p bds-server"));
|
||||
assert!(
|
||||
!Path::new(CRATE_DIR)
|
||||
.join("../bds-server/src/main.rs")
|
||||
.exists()
|
||||
);
|
||||
|
||||
let packager =
|
||||
fs::read_to_string(Path::new(CRATE_DIR).join("../bds-package-runtime/src/main.rs"))
|
||||
.unwrap();
|
||||
assert!(packager.contains("Command::new(\"codesign\")"));
|
||||
assert!(packager.contains("CARGO_PACKAGER_FORMAT"));
|
||||
assert!(!packager.contains("--options"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user