diff --git a/crates/pile-value/build.rs b/crates/pile-value/build.rs index c15a285..06351f9 100644 --- a/crates/pile-value/build.rs +++ b/crates/pile-value/build.rs @@ -23,6 +23,13 @@ fn main() { .expect("unexpected OUT_DIR structure") .to_path_buf(); + // If PDFIUM_LIB_DIR is set (e.g. by Nix), use the pre-installed library directly. + if let Ok(lib_dir) = env::var("PDFIUM_LIB_DIR") { + println!("cargo:rustc-link-search=native={lib_dir}"); + println!("cargo:rustc-link-lib=dylib=pdfium"); + return; + } + let lib_path = profile_dir.join("libpdfium.so"); if !lib_path.exists() { diff --git a/default.nix b/default.nix index 5afc1fc..58e6270 100644 --- a/default.nix +++ b/default.nix @@ -24,6 +24,8 @@ pileRustPlatform.buildRustPackage { cargoLock.lockFile = ./Cargo.lock; + PDFIUM_LIB_DIR = "${pkgs.pdfium-binaries}/lib"; + buildInputs = [ pkgs.pdfium-binaries pkgs.openssl