From e4400c98eeb71affac09a402df1e75526022a1f2 Mon Sep 17 00:00:00 2001 From: "John C. Burnham" Date: Wed, 6 Nov 2024 12:09:19 -0500 Subject: [PATCH] add flake.nix --- .envrc | 1 + flake.nix | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 .envrc create mode 100644 flake.nix diff --git a/.envrc b/.envrc new file mode 100644 index 00000000..3550a30f --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/flake.nix b/flake.nix new file mode 100644 index 00000000..78265480 --- /dev/null +++ b/flake.nix @@ -0,0 +1,50 @@ +{ + inputs = { + nixpkgs.url = "nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + naersk = { + url = "github:nix-community/naersk"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + fenix = { + url = "github:nix-community/fenix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { self, nixpkgs, flake-utils, naersk, fenix }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = (import nixpkgs) { + inherit system; + }; + + toolchain = with fenix.packages.${system}; fromToolchainFile { + file = ./rust-toolchain.toml; # alternatively, dir = ./.; + sha256 = "sha256-2MdP0kK9F6DbEwcQyDZ5Qq1yBkBSLYl2vJtbZHzXNR0="; + }; + + in rec { + defaultPackage = (naersk.lib.${system}.override { + # For `nix build` & `nix run`: + cargo = toolchain; + rustc = toolchain; + }).buildPackage { + src = ./.; + }; + + # For `nix develop` or `direnv allow`: + devShell = pkgs.mkShell { + buildInputs = with pkgs; [ + pkg-config + openssl + gcc + ocl-icd + toolchain + rust-analyzer + clang + ]; + }; + } + ); +}