{ description = "A very basic flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # We want to use packages from the binary cache flake-utils.url = "github:numtide/flake-utils"; utils.url = "github:numtide/flake-utils"; flake-compat = { url = "github:edolstra/flake-compat"; flake = false; }; naersk.url = "github:nmattia/naersk/master"; }; outputs = { self, nixpkgs, utils, naersk, ... }: utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; naersk-lib = pkgs.callPackage naersk { }; libPath = with pkgs; lib.makeLibraryPath [ libGL libxkbcommon wayland xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr ]; in { defaultPackage = naersk-lib.buildPackage { src = ./.; doCheck = true; pname = "hai"; nativeBuildInputs = [ pkgs.makeWrapper ]; buildInputs = with pkgs; [ xorg.libxcb ]; postInstall = '' wrapProgram "$out/bin/hai" --prefix LD_LIBRARY_PATH : "${libPath}" ''; }; defaultApp = utils.lib.mkApp { drv = self.defaultPackage."${system}"; }; devShell = with pkgs; mkShell { buildInputs = [ cargo cargo-insta pre-commit rust-analyzer rustPackages.clippy rustc rustfmt tokei xorg.libxcb ]; RUST_SRC_PATH = rustPlatform.rustLibSrc; LD_LIBRARY_PATH = libPath; GIT_EXTERNAL_DIFF = "${difftastic}/bin/difft"; }; }); }