From 2bc6cae2458ba5f9573985791536618a00cbed8a Mon Sep 17 00:00:00 2001 From: Malte Voos Date: Sun, 11 Feb 2024 18:21:52 +0100 Subject: init --- flake.nix | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 flake.nix (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..fa15c13 --- /dev/null +++ b/flake.nix @@ -0,0 +1,45 @@ +{ + inputs = { + opam-repository = { + url = "github:ocaml/opam-repository"; + flake = false; + }; + opam-nix.url = "github:tweag/opam-nix"; + opam-nix.inputs.opam-repository.follows = "opam-repository"; + flake-utils.url = "github:numtide/flake-utils"; + nixpkgs.follows = "opam-nix/nixpkgs"; + }; + + outputs = { flake-utils, opam-nix, nixpkgs, ... }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + on = opam-nix.lib.${system}; + localPackagesQuery = builtins.mapAttrs (_: pkgs.lib.last) + (on.listRepo (on.makeOpamRepo ./.)); + devPackagesQuery = { + ocaml-lsp-server = "*"; + ocamlformat = "*"; + }; + query = devPackagesQuery // { + ocaml-base-compiler = "*"; + }; + scope = on.buildDuneProject { } "toytt" ./. query; + devPackages = builtins.attrValues + (pkgs.lib.getAttrs (builtins.attrNames devPackagesQuery) scope); + packages = + pkgs.lib.getAttrs (builtins.attrNames localPackagesQuery) scope; + in + { + legacyPackages = scope; + + packages = packages // { default = packages.toytt; }; + + devShells.default = pkgs.mkShell { + inputsFrom = builtins.attrValues packages; + buildInputs = devPackages ++ [ + # Add additional packages from nixpkgs here + ]; + }; + }); +} -- cgit 1.4.1