{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; rust-flake.url = "github:juspay/rust-flake"; rust-flake.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = inputs@{ nixpkgs, flake-parts, rust-flake, ... }: flake-parts.lib.mkFlake { inherit inputs; } { imports = [ rust-flake.flakeModules.default rust-flake.flakeModules.nixpkgs ]; systems = nixpkgs.lib.systems.flakeExposed; perSystem = { self', pkgs, ... }: let buildInputs = with pkgs; [ alsa-lib dbus fontconfig freetype libGL libudev-zero libxkbcommon xorg.libxcb xorg.xcbutil pipewire pulseaudio vulkan-headers vulkan-loader wayland wayland-protocols xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr xorg.libXrender ]; nativeBuildInputs = with pkgs; [ ]; in { rust-project.crates.star-studio.crane.args = { inherit buildInputs nativeBuildInputs; }; devShells.default = self'.devShells.rust.overrideAttrs (old: { buildInputs = old.buildInputs ++ buildInputs; nativeBuildInputs = old.nativeBuildInputs ++ nativeBuildInputs; LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath (buildInputs ++ nativeBuildInputs); }); packages.default = self'.packages.star-studio; }; }; }