aboutsummaryrefslogtreecommitdiff
path: root/build.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-05-23 17:34:01 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-05-23 17:42:49 +0300
commitec2924d0d1f21417802c3efd0ed46b9db2c00582 (patch)
tree00432d4dbb46bb82328dfb583e36293c1603bc81 /build.rs
parent0d2c20a46235ae2535d4fdef59b9529e44faa98f (diff)
feat: add optional nix flake support
refs #208 refs #221 refs #264
Diffstat (limited to 'build.rs')
-rw-r--r--build.rs16
1 files changed, 14 insertions, 2 deletions
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");