From 448babe8090c2bcf177c23efd2257a926a1d07f7 Mon Sep 17 00:00:00 2001 From: Cody Date: Tue, 25 Apr 2023 19:37:44 -0500 Subject: Added Nix package --- flake.nix | 70 ++++++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 47 insertions(+), 23 deletions(-) diff --git a/flake.nix b/flake.nix index 77fc725..ce3b001 100644 --- a/flake.nix +++ b/flake.nix @@ -1,4 +1,6 @@ { + description = "slothlang"; + inputs = { nixpkgs.url = "github:nixos/nixpkgs/master"; flake-utils.url = "github:numtide/flake-utils"; @@ -10,29 +12,51 @@ }; outputs = { self, nixpkgs, flake-utils, rust-overlay, ... }: - flake-utils.lib.eachSystem - [ "x86_64-linux" ] - (system: - let - overlays = [ (import rust-overlay) ]; - pkgs = import nixpkgs { - inherit system overlays; - }; - in - rec - { - devShell = pkgs.mkShell rec { - buildInputs = with pkgs; [ - (rust-bin.nightly."2023-02-10".default.override { - extensions = [ "rust-src" "rust-analyzer" ]; - targets = [ "wasm32-unknown-unknown" ]; - }) + flake-utils.lib.eachDefaultSystem (system: + let + overlays = [ (import rust-overlay) ]; + pkgs = import nixpkgs { + inherit system overlays; + }; + + rustStable = pkgs.rust-bin.stable.latest.default; + rustNightly = pkgs.rust-bin.nightly."2023-02-10".default; + + rustPlatform = pkgs.makeRustPlatform { + cargo = rustStable; + rustc = rustStable; + }; + in + with pkgs; + { + packages.default = rustPlatform.buildRustPackage rec { + pname = "sloth"; + version = "0.1.0"; + src = ./.; + + # FIXME: Tests do not run in release mode + checkType = "debug"; + cargoLock = { + lockFile = ./Cargo.lock; + }; - cargo-deny - cargo-release - ]; + meta = with lib; { + description = "The Sloth programming language"; + homepage = "https://slothlang.tech"; + license = with licenses; [ mit asl20 ]; + }; + }; + devShells.default = mkShell { + buildInputs = [ + (rustNightly.override { + extensions = [ "rust-src" "rust-analyzer" ]; + targets = [ "wasm32-unknown-unknown" ]; + }) - LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs; - }; - }); + cargo-deny + cargo-release + ]; + }; + } + ); } -- cgit v1.2.3