From ec2924d0d1f21417802c3efd0ed46b9db2c00582 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Sat, 23 May 2026 17:34:01 +0300 Subject: feat: add optional nix flake support refs #208 refs #221 refs #264 --- build.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'build.rs') diff --git a/build.rs b/build.rs index c68d420a..cda19840 100644 --- a/build.rs +++ b/build.rs @@ -32,9 +32,14 @@ fn main() { println!("cargo:rerun-if-changed=vendor/libghostty-vt.vendor.json"); println!("cargo:rerun-if-changed=vendor/libghostty-vt/build.zig"); println!("cargo:rerun-if-changed=vendor/libghostty-vt/build.zig.zon"); + println!("cargo:rerun-if-changed=vendor/libghostty-vt/include"); + println!("cargo:rerun-if-changed=vendor/libghostty-vt/pkg"); + println!("cargo:rerun-if-changed=vendor/libghostty-vt/src"); println!("cargo:rerun-if-changed=vendor/libghostty-vt/VERSION"); println!("cargo:rerun-if-env-changed=LIBGHOSTTY_VT_OPTIMIZE"); println!("cargo:rerun-if-env-changed=LIBGHOSTTY_VT_SIMD"); + println!("cargo:rerun-if-env-changed=LIBGHOSTTY_VT_ZIG_SYSTEM_DIR"); + println!("cargo:rerun-if-env-changed=ZIG"); let manifest_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR")); let vendored_dir = manifest_dir.join("vendor/libghostty-vt"); @@ -47,13 +52,20 @@ fn main() { .trim() .to_string(); - let status = Command::new("zig") + let zig = env::var("ZIG").unwrap_or_else(|_| "zig".into()); + let mut command = Command::new(zig); + command .arg("build") .arg("-Demit-lib-vt") .arg(format!("-Doptimize={optimize}")) .arg(format!("-Dsimd={simd}")) .arg(format!("-Dtarget={zig_target}")) - .arg(format!("-Dversion-string={version_string}")) + .arg(format!("-Dversion-string={version_string}")); + if let Ok(system_dir) = env::var("LIBGHOSTTY_VT_ZIG_SYSTEM_DIR") { + command.arg("--system").arg(system_dir); + } + + let status = command .current_dir(&vendored_dir) .status() .expect("failed to execute zig build for vendored libghostty-vt"); -- cgit v1.2.3