Add rust devshell

This commit is contained in:
SebastianStork 2025-10-04 20:04:50 +02:00
parent e1c719a75f
commit cf1df57e6f
3 changed files with 54 additions and 16 deletions

1
.gitignore vendored
View file

@ -2,3 +2,4 @@
*.pro.user* *.pro.user*
.idea/ .idea/
.direnv/ .direnv/
**/target

23
flake.lock generated
View file

@ -18,7 +18,28 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1759544920,
"narHash": "sha256-yQwP0JOHi3Icq09GG5ufGuGrq2zIijglVFj3kkF2MHA=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "bd3a63bbff2c4cb3cd48e9d49f54c2ccad457f70",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
} }
} }
}, },

View file

@ -1,29 +1,45 @@
{ {
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = outputs =
{ self, nixpkgs }: { nixpkgs, rust-overlay, ... }:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
in in
{ {
devShells.${system} = { devShells.${system} = {
cpp = cpp = pkgs.mkShell.override { stdenv = pkgs.clangStdenv; } {
pkgs.mkShell.override packages = with pkgs; [
{ gdb
stdenv = pkgs.clangStdenv; clang-tools
} qt6.full
{ ];
packages = with pkgs; [ };
gdb
clang-tools go = pkgs.mkShellNoCC {
qt6.full
];
};
go = pkgs.mkShell {
packages = with pkgs; [ go ]; packages = with pkgs; [ go ];
}; };
rust =
let
pkgs = import nixpkgs {
inherit system;
overlays = [ rust-overlay.overlays.default ];
};
rust-toolchain = pkgs.rust-bin.stable.latest.default.override { extensions = [ "rust-src" ]; };
in
pkgs.mkShellNoCC {
packages = [ rust-toolchain ];
RUST_SRC_PATH = "${rust-toolchain}/lib/rustlib/src/rust/library";
};
}; };
formatter.${system} = pkgs.nixfmt-tree; formatter.${system} = pkgs.nixfmt-tree;