diff --git a/flake.lock b/flake.lock index 17a805f..f848e63 100644 --- a/flake.lock +++ b/flake.lock @@ -1,22 +1,144 @@ { "nodes": { - "nixpkgs": { + "crane": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ], + "rust-overlay": "rust-overlay" + }, "locked": { - "lastModified": 1676790509, - "narHash": "sha256-W9uWAWokgS8US8rJf79qBLS2M+ZgIscfoz+KsNE7VGQ=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a1291d0d020a200c7ce3c48e96090bfa4890a475", + "lastModified": 1676846788, + "narHash": "sha256-XLsHLgXyMdliMeAXuzdGP+TXBaV44kG1RPTUHNOs6Jk=", + "owner": "ipetkov", + "repo": "crane", + "rev": "953b70da2813fb882c39890f2514e7db76fc8843", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1676283394, + "narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "locked": { + "lastModified": 1676283394, + "narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1676721149, + "narHash": "sha256-mN2EpTGxxVNnFZLoLWRwh6f7UWhXy4qE+wO2CZyrXps=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5f4e07deb7c44f27d498f8df9c5f34750acf52d2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" } }, "root": { "inputs": { - "nixpkgs": "nixpkgs" + "crane": "crane", + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay_2" + } + }, + "rust-overlay": { + "inputs": { + "flake-utils": [ + "crane", + "flake-utils" + ], + "nixpkgs": [ + "crane", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1676437770, + "narHash": "sha256-mhJye91Bn0jJIE7NnEywGty/U5qdELfsT8S+FBjTdG4=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "a619538647bd03e3ee1d7b947f7c11ff289b376e", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_2": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1676860326, + "narHash": "sha256-Rsvi4Zl6N7phhC7RMoh05gAHSwTzWG+c+iR+/X0RqWU=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "98f11700e398cf2ae6da905df56badc17e265021", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index 8dc688c..f12c65e 100644 --- a/flake.nix +++ b/flake.nix @@ -1,21 +1,45 @@ { description = "Doggo flake"; + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + crane = { + url = "github:ipetkov/crane"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + flake-utils.url = "github:numtide/flake-utils"; + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs = { + nixpkgs.follows = "nixpkgs"; + flake-utils.follows = "flake-utils"; + }; + }; + }; - outputs = { self, nixpkgs }: - let pkgs = nixpkgs.legacyPackages.x86_64-linux; - in { - # packages.x86_64-linux.hello = pkgs.hello; - # packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello; - # defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello; + outputs = { self, nixpkgs, crane, flake-utils, rust-overlay }: + flake-utils.lib.eachSystem [ flake-utils.lib.system.x86_64-linux ] (system: + let + pkgs = import nixpkgs { + system = system; + overlays = [ (import rust-overlay) ]; + }; + + rustToolchain = pkgs.pkgsBuildHost.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; + craneLib = crane.lib.${system}.overrideToolchain rustToolchain; + in { + packages.default = craneLib.buildPackage { + src = craneLib.cleanCargoSource ./.; - devShell.x86_64-linux = with pkgs; - mkShell { - buildInputs = [ + # Add extra inputs here or any other derivation settings + buildInputs = with pkgs; [ + libxkbcommon + ]; + + nativeBuildInputs = with pkgs; [ just - cargo - rustup rust-analyzer ]; }; - }; + } + ); }