git.iko.soy/rowtype-yoga/purescm
on update help sign in
57 lines 1.6 kB history raw
1{
2 description = "Chez Scheme backend for PureScript";
4 inputs = {
5 nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
7 flake-compat = {
8 url = "github:edolstra/flake-compat";
9 flake = false;
10 };
12 purescript-overlay.url = "github:thomashoneyman/purescript-overlay";
13 purescript-overlay.inputs.nixpkgs.follows = "nixpkgs";
14 };
16 outputs = { self, nixpkgs, ... }@inputs:
17 let
18 supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
20 forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
22 nixpkgsFor = forAllSystems (system: import nixpkgs {
23 inherit system;
24 overlays = builtins.attrValues self.overlays;
25 });
26 in
27 {
28 overlays = {
29 purescript = inputs.purescript-overlay.overlays.default;
30 };
32 devShells = forAllSystems (system:
33 let pkgs = nixpkgsFor.${system};
34 in {
35 default = pkgs.mkShell {
36 name = "purescm";
37 packages = [
38 pkgs.purescript-language-server
39 pkgs.purs-backend-es
40 pkgs.purs-bin.purs-0_15_10
41 pkgs.purs-tidy
42 pkgs.spago-unstable
43 pkgs.nodejs-slim
44 pkgs.esbuild
45 pkgs.pkg-config
46 pkgs.icu
47 pkgs.chez
48 ];
50 CHEZ_DYLD_LIBRARY_PATH="${pkgs.pcre2.out}/lib:${pkgs.icu.out}/lib";
51 LD_LIBRARY_PATH = "${pkgs.pcre2.out}/lib:${pkgs.icu.out}/lib";
52 };
53 });
55 formatter = forAllSystems (system: nixpkgsFor.${system}.nixpkgs-fmt);
56 };