From b136c7988ef9e65038ced50bba10afb06b0174b7 Mon Sep 17 00:00:00 2001 From: Nathan McCarty Date: Sat, 30 Nov 2024 09:02:46 +0000 Subject: [PATCH] Add rust devshell Add sccache Add clang so rust can actually build --- devshells/rust.nix | 29 ++++++++++++++++++++++ flake.lock | 61 ++++++++++++++++++++++++++++++++++++---------- flake.nix | 7 +++--- 3 files changed, 80 insertions(+), 17 deletions(-) create mode 100644 devshells/rust.nix diff --git a/devshells/rust.nix b/devshells/rust.nix new file mode 100644 index 0000000..7a8160a --- /dev/null +++ b/devshells/rust.nix @@ -0,0 +1,29 @@ +{ withSystem, inputs, ... }: +{ + perSystem = + { config, pkgs, ... }: + { + devshells.rust = { + env = [ + { + name = "RUSTC_WRAPPER"; + value = "${pkgs.sccache}/bin/sccache"; + } + ]; + commands = [ + # { + # help = "print hello"; + # name = "hello"; + # command = "echo hello"; + # } + ]; + packages = with pkgs; [ + # Rust toolchain + clang + rustup + # Faster builds + sccache + ]; + }; + }; +} diff --git a/flake.lock b/flake.lock index 0096fa9..0d72145 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,23 @@ { "nodes": { + "devshell": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1728330715, + "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=", + "owner": "numtide", + "repo": "devshell", + "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -134,7 +152,7 @@ "narHash": "sha256-DN5/166jhiiAW0Uw6nueXaGTueVxhfZISAkoxasmz/g=", "rev": "f19bd752910bbe3a861c9cad269bd078689d50fe", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/f19bd752910bbe3a861c9cad269bd078689d50fe.tar.gz" + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/f19bd752910bbe3a861c9cad269bd078689d50fe.tar.gz?rev=f19bd752910bbe3a861c9cad269bd078689d50fe" }, "original": { "type": "tarball", @@ -145,7 +163,7 @@ "inputs": { "flake-compat": "flake-compat", "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1731682434, @@ -164,16 +182,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1729973466, - "narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=", + "lastModified": 1722073938, + "narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cd3e8833d70618c4eea8df06f95b364b016d4950", + "rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-24.05", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } @@ -192,11 +210,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1732014248, - "narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=", + "lastModified": 1732758367, + "narHash": "sha256-RzaI1RO0UXqLjydtz3GAXSTzHkpb/lLD1JD8a0W4Wpo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "23e89b7da85c3640bbc2173fe04f4bd114342367", + "rev": "fa42b5a5f401aab8a32bd33c9a4de0738180dc59", "type": "github" }, "original": { @@ -208,11 +226,27 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1732350895, - "narHash": "sha256-GcOQbOgmwlsRhpLGSwZJwLbo3pu9ochMETuRSS1xpz4=", + "lastModified": 1729973466, + "narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0c582677378f2d9ffcb01490af2f2c678dcb29d3", + "rev": "cd3e8833d70618c4eea8df06f95b364b016d4950", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1732824227, + "narHash": "sha256-fYNXgpu1AEeLyd3fQt4Ym0tcVP7cdJ8wRoqJ+CtTRyY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c71ad5c34d51dcbda4c15f44ea4e4aa6bb6ac1e9", "type": "github" }, "original": { @@ -224,11 +258,12 @@ }, "root": { "inputs": { + "devshell": "devshell", "flake-parts": "flake-parts", "home-manager": "home-manager", "lix-module": "lix-module", "nixos-wsl": "nixos-wsl", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", "nixpkgs-unstable": "nixpkgs-unstable" } }, diff --git a/flake.nix b/flake.nix index 5005ccd..4546751 100644 --- a/flake.nix +++ b/flake.nix @@ -14,18 +14,17 @@ url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; + devshell.url = "github:numtide/devshell"; }; outputs = inputs@{ flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } { imports = [ - # To import a flake module - # 1. Add foo to inputs - # 2. Add foo as a parameter to the outputs function - # 3. Add here: foo.flakeModule + inputs.devshell.flakeModule ./nixos/machines/wsl/configuration.nix ./home-manager/machines/wsl/home.nix + ./devshells/rust.nix ]; systems = [ "x86_64-linux"