wayland_panel/flake.nix

65 lines
1.5 KiB
Nix

{
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.override {
extensions = ["rust-analyzer" "rust-src"];
};
runtimeLibs = with pkgs; [
wayland
libxkbcommon
glib
vulkan-loader
mesa
libGL
];
rustPlatform = pkgs.makeRustPlatform {
cargo = rustToolchain;
rustc = rustToolchain;
};
in {
packages."${system}" = {
default = rustPlatform.buildRustPackage {
pname = "wayland_panel";
version = "0.1.0";
src = ./.;
cargoLock.lockFile = ./Cargo.lock;
nativeBuildInputs = [pkgs.makeWrapper];
postInstall = ''
wrapProgram $out/bin/wayland_panel \
--set LD_LIBRARY_PATH ${pkgs.lib.makeLibraryPath runtimeLibs}
'';
};
};
devShells."${system}".default = pkgs.mkShell {
buildInputs = with pkgs;
[
gcc
gnumake
rustToolchain
evcxr
]
++ runtimeLibs;
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath runtimeLibs;
VK_ICD_FILENAMES = "${pkgs.mesa}/share/vulkan/icd.d/intel_icd.x86_64.json";
};
};
}