diff --git a/assets/plugins/status-bar.wasm b/assets/plugins/status-bar.wasm index 646ad3b5..fee109dd 100644 Binary files a/assets/plugins/status-bar.wasm and b/assets/plugins/status-bar.wasm differ diff --git a/assets/plugins/strider.wasm b/assets/plugins/strider.wasm index 77b07b01..a31d8e15 100644 Binary files a/assets/plugins/strider.wasm and b/assets/plugins/strider.wasm differ diff --git a/build-optimised.sh b/build-optimised.sh deleted file mode 100755 index 4e6cf764..00000000 --- a/build-optimised.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -# Build a release WASM from Rust with lto on -cargo build --release -# Further optimise for speed (and size) -wasm-opt -O target/wasm32-wasi/release/status-bar.wasm -o target/status-bar.wasm \ No newline at end of file diff --git a/build.rs b/build.rs index ad479159..6d1b1420 100644 --- a/build.rs +++ b/build.rs @@ -35,21 +35,50 @@ fn main() { "" }; let starting_dir = current_dir().unwrap(); + let alt_target = manifest_dir.join("target/tiles"); for project in members { let path = manifest_dir.join(project.as_str().unwrap()); set_current_dir(&path); + // FIXME: This is soul-crushingly terrible, but I can't keep the values alive long enough if var("PROFILE").unwrap() == "release" { - panic!("no"); - Command::new("cargo").arg("build").arg("--release").status(); + Command::new("cargo".to_string()) + .arg("build") + .arg("--target-dir") + .arg(&alt_target.as_os_str()) + .arg("--release") + .status() + .unwrap(); } else { - Command::new("cargo").arg("build").status(); + Command::new("cargo") + .arg("build") + .arg("--target-dir") + .arg(&alt_target.as_os_str()) + .status() + .unwrap(); } - - eprintln!("{:?}", &path); } set_current_dir(&starting_dir); + // FIXME: Deduplicate this with the initial walk all .rs pattern + for entry in fs::read_dir(alt_target.join("wasm32-wasi/release/")).unwrap() { + let entry = entry.unwrap().path(); + let ext = entry.extension(); + if ext.is_some() && ext.unwrap() == "wasm" { + dbg!(&entry); + Command::new("wasm-opt") + .arg("-O") + .arg(entry.as_os_str()) + .arg("-o") + .arg(format!( + "assets/plugins/{}", + entry.file_name().unwrap().to_string_lossy() + )) + .status() + .unwrap(); + } + } + // Generate Shell Completions let mut clap_app = CliArgs::clap(); println!("cargo:rerun-if-changed=src/cli.rs"); @@ -77,7 +106,6 @@ fn main() { fs::create_dir_all(data_dir.join("plugins")).unwrap(); fs::create_dir_all(data_dir.join("layouts")).unwrap(); for asset in assets { - println!("cargo:rerun-if-changed=assets/{}", asset); fs::copy(Path::new("assets/").join(asset), data_dir.join(asset)) .expect("Failed to copy asset files"); } diff --git a/default-tiles/strider/build-optimised.sh b/default-tiles/strider/build-optimised.sh deleted file mode 100755 index e0654d89..00000000 --- a/default-tiles/strider/build-optimised.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -# Build a release WASM from Rust with lto on -cargo build --release -# Further optimise for speed (and size) -wasm-opt -O target/wasm32-wasi/release/module.wasm -o target/strider.wasm \ No newline at end of file