diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore index 869df07..1edb211 100755 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ /target -Cargo.lock \ No newline at end of file +/.direnv \ No newline at end of file diff --git a/flake.lock b/flake.lock index c0638ca..426d108 100644 --- a/flake.lock +++ b/flake.lock @@ -1,44 +1,53 @@ { "nodes": { - "naersk": { + "fenix": { "inputs": { - "nixpkgs": "nixpkgs" + "nixpkgs": [ + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1659610603, - "narHash": "sha256-LYgASYSPYo7O71WfeUOaEUzYfzuXm8c8eavJcel+pfI=", + "lastModified": 1662533965, + "narHash": "sha256-56td0N02VeIOuzyesNWLCwTcoVwP0wuQauUbzh6RpMg=", "owner": "nix-community", - "repo": "naersk", - "rev": "c6a45e4277fa58abd524681466d3450f896dc094", + "repo": "fenix", + "rev": "b5b70debeb3c2f93186eaed7de13674b9783b9d2", "type": "github" }, "original": { "owner": "nix-community", - "repo": "naersk", + "repo": "fenix", "type": "github" } }, - "nixpkgs": { + "naersk": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, "locked": { - "lastModified": 1660551188, - "narHash": "sha256-a1LARMMYQ8DPx1BgoI/UN4bXe12hhZkCNqdxNi6uS0g=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "441dc5d512153039f19ef198e662e4f3dbb9fd65", + "lastModified": 1662220400, + "narHash": "sha256-9o2OGQqu4xyLZP9K6kNe1pTHnyPz0Wr3raGYnr9AIgY=", + "owner": "nix-community", + "repo": "naersk", + "rev": "6944160c19cb591eb85bbf9b2f2768a935623ed3", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "nix-community", + "repo": "naersk", + "type": "github" } }, - "nixpkgs_2": { + "nixpkgs": { "locked": { - "lastModified": 1660566196, - "narHash": "sha256-mjObRMshcxAyK7J5ZJ5/nP0uEu8Ym5trrVsj1253nUc=", + "lastModified": 1662410893, + "narHash": "sha256-jmZjdA/n92OpUdaEjU7QJNsa1np+u+JWDj300x3K3XY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "07a564964c0dfb1fa15f9be701b2fba55b252a9d", + "rev": "680818a51b7fb6886db8900e2fb1582305b45f77", "type": "github" }, "original": { @@ -49,11 +58,29 @@ }, "root": { "inputs": { + "fenix": "fenix", "naersk": "naersk", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs", "utils": "utils" } }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1662377094, + "narHash": "sha256-0bvOQxEe8nzk/VlhHBrUn/Mz3DlE92Us7JqveVjTe0A=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "6dfd8aebdfa1ee1824446f01daf5bdb229b32f92", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, "utils": { "locked": { "lastModified": 1659877975, diff --git a/flake.nix b/flake.nix index e7601f6..f332f15 100644 --- a/flake.nix +++ b/flake.nix @@ -2,46 +2,66 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs"; utils.url = "github:numtide/flake-utils"; - naersk.url = "github:nix-community/naersk"; + naersk = { + url = "github:nix-community/naersk"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + fenix = { + url = "github:nix-community/fenix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = { self, nixpkgs, utils, naersk }: - utils.lib.eachDefaultSystem (system: - let - pkgs = nixpkgs.legacyPackages."${system}"; - naersk-lib = naersk.lib."${system}"; - in rec - { - packages.amethyst = naersk-lib.buildPackage { - pname = "ame"; - root = ./.; - nativeBuildInputs = with pkgs; [ - openssl - sqlite - pkg-config - ]; - }; - - packages.default = packages.amethyst; + outputs = { + self, + nixpkgs, + utils, + naersk, + fenix, + ... + }: + utils.lib.eachDefaultSystem (system: let + pkgs = nixpkgs.legacyPackages."${system}"; + toolchain = with fenix.packages."${system}"; + combine [ + latest.rustc + latest.cargo + latest.clippy + latest.rustfmt + latest.rust-analyzer + latest.rust-src + ]; + naersk-lib = naersk.lib."${system}".override { + cargo = toolchain; + rustc = toolchain; + clippy = toolchain; + rustfmt = toolchain; + rust-analyzer = toolchain; + rust-src = toolchain; + }; + in rec + { + packages.jade = naersk-lib.buildPackage { + pname = "Jade"; + root = ./.; + }; - apps.amethyst = utils.lib.mkApp { - drv = packages.amethyst; - }; - - apps.default = apps.amethyst; + packages.default = packages.jade; - devShells.default = pkgs.mkShell { - nativeBuildInputs = with pkgs; [ - rustc - cargo - rustfmt - cargo-audit - clippy - openssl - sqlite - pkg-config - ]; - }; - }); -} + apps.jade = utils.lib.mkApp { + drv = packages.jade; + }; + + apps.default = apps.jade; + devShells.default = pkgs.mkShell { + nativeBuildInputs = [ + toolchain + ]; + # For rust-analyzer + RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}"; + }; + + formatter = pkgs.alejandra; + }); +}