diff --git a/flake.lock b/flake.lock index 25f68b4c..c0d28580 100644 --- a/flake.lock +++ b/flake.lock @@ -1,12 +1,27 @@ { "nodes": { + "flake-utils": { + "locked": { + "lastModified": 1649676176, + "narHash": "sha256-OWKJratjt2RW151VUlJPRALb7OU2S5s+f0vLj4o1bHM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a4b154ebbdc88c8498a5c7b01589addc9e9cb678", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1651662302, - "narHash": "sha256-utlTjLa1s4ezdQIUvnBtmA9TBYFrPlXpAJnCXEiZFZI=", + "lastModified": 1652020977, + "narHash": "sha256-9hDlNbrxzD/pLlXmoQ6gzxbYiSAKrj7uHYUWNByLFlI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dff5496b12817e3d019983827c4b7ba7beb96580", + "rev": "3c5ae9be1f18c790ea890ef8decbd0946c0b4c04", "type": "github" }, "original": { @@ -18,6 +33,7 @@ }, "root": { "inputs": { + "flake-utils": "flake-utils", "nixpkgs": "nixpkgs" } } diff --git a/flake.nix b/flake.nix index b30d3fa7..b591fbd0 100644 --- a/flake.nix +++ b/flake.nix @@ -1,48 +1,55 @@ { description = "concat"; - inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.11"; }; - outputs = { self, nixpkgs }: - let - pkgs = nixpkgs.legacyPackages.x86_64-linux; + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.11"; + flake-utils.url = "github:numtide/flake-utils"; + }; + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachSystem [ "x86_64-linux" "x86_64-darwin" ] (system: + let + pkgs = import nixpkgs { inherit system; }; - haskellOverlay = self: super: { - "concat-inline" = pkgs.haskell.lib.dontHaddock - (self.callCabal2nix "concat-inline" ./inline { }); - "concat-plugin" = self.callCabal2nix "concat-plugin" ./plugin { }; - "concat-classes" = self.callCabal2nix "concat-classes" ./classes { }; - "concat-satisfy" = self.callCabal2nix "concat-satisfy" ./satisfy { }; - "concat-known" = self.callCabal2nix "concat-known" ./known { }; - #"concat-hardware" = self.callCabal2nix "concat-hardware" ./hardware { }; - "concat-graphics" = self.callCabal2nix "concat-graphics" ./graphics { }; - "concat-examples" = pkgs.haskell.lib.dontHaddock - (self.callCabal2nix "concat-examples" ./examples { }); - }; + haskellOverlay = self: super: { + "concat-inline" = pkgs.haskell.lib.dontHaddock + (self.callCabal2nix "concat-inline" ./inline { }); + "concat-plugin" = self.callCabal2nix "concat-plugin" ./plugin { }; + "concat-classes" = self.callCabal2nix "concat-classes" ./classes { }; + "concat-satisfy" = self.callCabal2nix "concat-satisfy" ./satisfy { }; + "concat-known" = self.callCabal2nix "concat-known" ./known { }; + #"concat-hardware" = self.callCabal2nix "concat-hardware" ./hardware { }; + "concat-graphics" = + self.callCabal2nix "concat-graphics" ./graphics { }; + "concat-examples" = pkgs.haskell.lib.dontHaddock + (self.callCabal2nix "concat-examples" ./examples { }); + }; - newHaskellPackages = - pkgs.haskellPackages.override { overrides = haskellOverlay; }; + newHaskellPackages = + pkgs.haskellPackages.override { overrides = haskellOverlay; }; - in { - packages.x86_64-linux = { - inherit (newHaskellPackages) - concat-inline concat-plugin concat-classes concat-satisfy concat-known - #concat-hardware - concat-graphics concat-examples; - }; + in { + packages = { + inherit (newHaskellPackages) + concat-inline concat-plugin concat-classes concat-satisfy + concat-known + #concat-hardware + concat-graphics concat-examples; + }; - # see these issues and discussions: - # - https://github.com/NixOS/nixpkgs/issues/16394 - # - https://github.com/NixOS/nixpkgs/issues/25887 - # - https://github.com/NixOS/nixpkgs/issues/26561 - # - https://discourse.nixos.org/t/nix-haskell-development-2020/6170 - overlay = final: prev: { - haskellPackages = prev.haskellPackages.override (old: { - overrides = final.lib.composeExtensions (old.overrides or (_: _: { })) - haskellOverlay; - }); - }; + # see these issues and discussions: + # - https://github.com/NixOS/nixpkgs/issues/16394 + # - https://github.com/NixOS/nixpkgs/issues/25887 + # - https://github.com/NixOS/nixpkgs/issues/26561 + # - https://discourse.nixos.org/t/nix-haskell-development-2020/6170 + overlay = final: prev: { + haskellPackages = prev.haskellPackages.override (old: { + overrides = + final.lib.composeExtensions (old.overrides or (_: _: { })) + haskellOverlay; + }); + }; - devShell.x86_64-linux = let - hsenv = pkgs.haskellPackages.ghcWithPackages (p: [ p.cabal-install ]); - in pkgs.mkShell { buildInputs = [ hsenv ]; }; - }; + devShell = let + hsenv = pkgs.haskellPackages.ghcWithPackages (p: [ p.cabal-install ]); + in pkgs.mkShell { buildInputs = [ hsenv ]; }; + }); }