{ description = "My rust development shell"; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = {nixpkgs, ...} @ inputs: let system = "x86_64-linux"; overlays = [(import inputs.rust-overlay)]; pkgs = import nixpkgs { inherit system overlays; }; rustToolchain = pkgs.rust-bin.stable.latest.default; rustPlatform = pkgs.makeRustPlatform { cargo = rustToolchain; rustc = rustToolchain; }; in { packages."${system}" = { default = rustPlatform.buildRustPackage { pname = "floating-calculator"; version = "0.1.0"; src = ./.; cargoLock.lockFile = ./Cargo.lock; nativeBuildInputs = with pkgs; [ pkg-config gcc makeWrapper ]; buildInputs = with pkgs; [ libqalculate ]; postInstall = '' wrapProgram $out/bin/floating-calculator \ --set LD_LIBRARY_PATH ${pkgs.lib.makeLibraryPath [pkgs.wayland pkgs.libxkbcommon]} ''; }; }; devShells."${system}" = { default = pkgs.mkShell { buildInputs = with pkgs; [ gcc gnumake rustToolchain evcxr pkg-config libqalculate ]; LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath (with pkgs; [ wayland ]); }; }; }; }