From 9702e67599cdebb9ef0cdb03e80c27e89cdd8f4f Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Fri, 3 Apr 2026 13:55:58 +0300 Subject: [PATCH] build: get rid of the overzealous build script; leave symlinking to packagers Signed-off-by: NotAShelf Change-Id: I39c590f0a703ab71d3cb5a8df9b095a46a6a6964 --- build.rs | 65 ------------------------------------------------- nix/package.nix | 3 ++- 2 files changed, 2 insertions(+), 66 deletions(-) delete mode 100644 build.rs diff --git a/build.rs b/build.rs deleted file mode 100644 index b511acb..0000000 --- a/build.rs +++ /dev/null @@ -1,65 +0,0 @@ -use std::{env, fs, path::Path}; - -/// List of multicall symlinks to create (name, target) -const MULTICALL_LINKS: &[&str] = - &["stash-copy", "stash-paste", "wl-copy", "wl-paste"]; - -/// Wayland-specific symlinks that can be disabled separately -const WAYLAND_LINKS: &[&str] = &["wl-copy", "wl-paste"]; - -fn main() { - // OUT_DIR is something like .../target/debug/build//out - // We want .../target/debug or .../target/release - let out_dir = env::var("OUT_DIR").expect("OUT_DIR not set"); - let bin_dir = Path::new(&out_dir) - .ancestors() - .nth(3) - .expect("Failed to find binary dir"); - - // Path to the main stash binary - let stash_bin = bin_dir.join("stash"); - - // Check for environment variables to disable symlinking - let disable_all_symlinks = env::var("STASH_NO_SYMLINKS").is_ok(); - let disable_wayland_symlinks = env::var("STASH_NO_WL_SYMLINKS").is_ok(); - - // Create symlinks for each multicall binary - for link in MULTICALL_LINKS { - if disable_all_symlinks { - println!("cargo:warning=Skipping symlink {link} (all symlinks disabled)"); - continue; - } - - if disable_wayland_symlinks && WAYLAND_LINKS.contains(link) { - println!( - "cargo:warning=Skipping symlink {link} (wayland symlinks disabled)" - ); - continue; - } - - let link_path = bin_dir.join(link); - // Remove existing symlink or file if present - let _ = fs::remove_file(&link_path); - #[cfg(unix)] - { - use std::os::unix::fs::symlink; - match symlink(&stash_bin, &link_path) { - Ok(()) => { - println!( - "cargo:warning=Created symlink: {} -> {}", - link_path.display(), - stash_bin.display() - ); - }, - Err(e) => { - println!( - "cargo:warning=Failed to create symlink {} -> {}: {}", - link_path.display(), - stash_bin.display(), - e - ); - }, - } - } - } -} diff --git a/nix/package.nix b/nix/package.nix index b068d4a..ba9573d 100644 --- a/nix/package.nix +++ b/nix/package.nix @@ -4,6 +4,7 @@ stdenv, mold, versionCheckHook, + useMold ? stdenv.isLinux, createSymlinks ? true, }: let pname = "stash"; @@ -55,7 +56,7 @@ in done ''; - env = lib.optionalAttrs (stdenv.isLinux && !stdenv.hostPlatform.isAarch) { + env = lib.optionalAttrs useMold { CARGO_LINKER = "clang"; CARGO_RUSTFLAGS = "-Clink-arg=-fuse-ld=${mold}/bin/mold"; };