let rustOverlay = import ( builtins.fetchTarball { url = "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"; sha256 = "0qgrkgc695a7gja83dngxrcx4gdg9056gvg5325i5yyjxg0ni6c9"; } ); pkgsDefault = import { overlays = [ rustOverlay ]; }; rustToolchain = pkgsDefault.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; rustPlatformDefault = pkgsDefault.makeRustPlatform { cargo = rustToolchain; rustc = rustToolchain; }; in { pkgs ? pkgsDefault, pileRustPlatform ? rustPlatformDefault, }: pileRustPlatform.buildRustPackage { pname = "pile"; version = "0.0.1"; src = ./.; cargoLock.lockFile = ./Cargo.lock; PDFIUM_LIB_DIR = "${pkgs.pdfium-binaries}/lib"; buildInputs = [ pkgs.pdfium-binaries pkgs.openssl ] ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [ pkgs.darwin.apple_sdk.frameworks.Security pkgs.darwin.apple_sdk.frameworks.SystemConfiguration ]; nativeBuildInputs = [ pkgs.pkg-config pkgs.makeWrapper ]; postInstall = '' wrapProgram $out/bin/pile \ --prefix LD_LIBRARY_PATH : ${pkgs.lib.makeLibraryPath [ pkgs.pdfium-binaries ]} ''; meta = { description = "pile - flexible file indexing"; mainProgram = "pile"; }; }