{ inputs = { naersk.url = "github:nix-community/naersk/master"; nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, utils, naersk }: utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; naersk-lib = pkgs.callPackage naersk { }; # Needed at compile time (on build system) nativeBuildInputs = with pkgs; [ gtk4 cairo glib pkg-config poppler wrapGAppsHook ]; # Needed at runtime (on run system) buildInputs = with pkgs; [ ]; in rec { defaultPackage = naersk-lib.buildPackage { src = ./.; inherit buildInputs; inherit nativeBuildInputs; }; devShell = with pkgs; mkShell { buildInputs = [ cargo rustc rustfmt pre-commit rustPackages.clippy ]; # Without inheriting nativeBuildinputs, cargo build will fail but that is good since we want to use only nix build # inherit nativeBuildInputs; RUST_SRC_PATH = rustPlatform.rustLibSrc; }; }); }