Init
This commit is contained in:
		
							
								
								
									
										70
									
								
								flake.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								flake.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
{
 | 
			
		||||
  description = "Minimal Rust development environment for Bevy project";
 | 
			
		||||
 | 
			
		||||
  inputs = {
 | 
			
		||||
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
 | 
			
		||||
    rust-overlay.url = "github:oxalica/rust-overlay";
 | 
			
		||||
    flake-utils.url = "github:numtide/flake-utils";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs =
 | 
			
		||||
    {
 | 
			
		||||
      nixpkgs,
 | 
			
		||||
      rust-overlay,
 | 
			
		||||
      flake-utils,
 | 
			
		||||
      ...
 | 
			
		||||
    }:
 | 
			
		||||
    flake-utils.lib.eachDefaultSystem (
 | 
			
		||||
      system:
 | 
			
		||||
      let
 | 
			
		||||
        overlays = [ (import rust-overlay) ];
 | 
			
		||||
        pkgs = import nixpkgs { inherit system overlays; };
 | 
			
		||||
        rustToolchain = pkgs.rust-bin.stable.latest.default.override {
 | 
			
		||||
          extensions = [
 | 
			
		||||
            "rust-src"
 | 
			
		||||
            "rust-analyzer"
 | 
			
		||||
            "clippy"
 | 
			
		||||
          ];
 | 
			
		||||
        };
 | 
			
		||||
      in
 | 
			
		||||
      {
 | 
			
		||||
        devShells.default = pkgs.mkShell {
 | 
			
		||||
          nativeBuildInputs = with pkgs; [ pkg-config ];
 | 
			
		||||
          buildInputs = with pkgs; [
 | 
			
		||||
            rustup
 | 
			
		||||
            rustToolchain
 | 
			
		||||
            clang
 | 
			
		||||
            llvmPackages_latest.bintools
 | 
			
		||||
            udev
 | 
			
		||||
            alsa-lib
 | 
			
		||||
            vulkan-loader
 | 
			
		||||
            xorg.libX11
 | 
			
		||||
            xorg.libXcursor
 | 
			
		||||
            xorg.libXi
 | 
			
		||||
            xorg.libXrandr
 | 
			
		||||
            libxkbcommon
 | 
			
		||||
            wayland
 | 
			
		||||
            glibc.dev
 | 
			
		||||
            glib.dev
 | 
			
		||||
          ];
 | 
			
		||||
 | 
			
		||||
          shellHook = ''
 | 
			
		||||
            export PATH=$PATH:''${CARGO_HOME:-~/.cargo}/bin
 | 
			
		||||
            export LD_LIBRARY_PATH=${
 | 
			
		||||
              pkgs.lib.makeLibraryPath [
 | 
			
		||||
                pkgs.vulkan-loader
 | 
			
		||||
                pkgs.libxkbcommon
 | 
			
		||||
                pkgs.wayland
 | 
			
		||||
                pkgs.alsa-lib
 | 
			
		||||
                pkgs.udev
 | 
			
		||||
              ]
 | 
			
		||||
            }:$LD_LIBRARY_PATH
 | 
			
		||||
            export LIBCLANG_PATH="${pkgs.llvmPackages_latest.libclang.lib}/lib"
 | 
			
		||||
            export BINDGEN_EXTRA_CLANG_ARGS="-I${pkgs.glibc.dev}/include -I${pkgs.llvmPackages_latest.libclang.lib}/lib/clang/${pkgs.llvmPackages_latest.libclang.version}/include -I${pkgs.glib.dev}/include/glib-2.0 -I${pkgs.glib.out}/lib/glib-2.0/include/"
 | 
			
		||||
            export RUSTFLAGS="-C link-arg=-fuse-ld=lld"
 | 
			
		||||
            echo "Bevy development environment loaded!"
 | 
			
		||||
          '';
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user