{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; rust-overlay.url = "github:oxalica/rust-overlay"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils, rust-overlay , ...}: let overlays = [ (import rust-overlay ) ]; in { packages."x86_64-linux".default = let pkgs = import nixpkgs { system = "x86_64-linux"; inherit overlays; }; native-deps = with pkgs; [ pkg-config pipewire lld clang libclang alsa-lib openssl zlib libxkbcommon libGL wayland mangohud ]; in pkgs.mkShell { buildInputs = with pkgs; [ (rust-bin.stable.latest.default.override { extensions = [ "rust-src" ]; targets = ["x86_64-unknown-linux-gnu" "x86_64-pc-windows-gnu"]; }) cargo-bloat pkgs.pkgsCross.mingwW64.buildPackages.gcc ] ++ native-deps; LD_LIBRARY_PATH = (pkgs.lib.makeLibraryPath native-deps); CARGO_TARGET_X86_64_PC_WINDOWS_GNU_RUSTFLAGS = "-L native=${pkgs.pkgsCross.mingwW64.windows.pthreads}/lib"; }; packages."aarch64-darwin".default = let pkgs = import nixpkgs { system = "aarch64-darwin"; inherit overlays; }; native-deps = with pkgs; []; in pkgs.mkShell { buildInputs = with pkgs; [ (rust-bin.stable.latest.default.override { extensions = [ "rust-src" ]; targets = ["aarch64-apple-darwin" ]; }) cargo-bloat ] ++ native-deps; }; }; # flake-utils.lib.eachDefaultSystem (system: # let # overlays = [ (import rust-overlay) ]; # pkgs = import nixpkgs { # inherit system overlays; # }; # native-deps = with pkgs; [ # pkg-config pipewire lld clang libclang alsa-lib openssl zlib libxkbcommon libGL wayland mangohud # ]; # in # with pkgs; # { # devShells.default = mkShell { # buildInputs = with pkgs; [ # (rust-bin.stable.latest.default.override { # extensions = [ "rust-src" ]; # targets = ["x86_64-unknown-linux-gnu" "x86_64-pc-windows-gnu"]; # }) # cargo-bloat # pkgs.pkgsCross.mingwW64.buildPackages.gcc # ] ++ native-deps; # LD_LIBRARY_PATH = (lib.makeLibraryPath native-deps); # CARGO_TARGET_X86_64_PC_WINDOWS_GNU_RUSTFLAGS = "-L native=${pkgs.pkgsCross.mingwW64.windows.pthreads}/lib"; # }; # } # ); }