summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix113
1 files changed, 74 insertions, 39 deletions
diff --git a/flake.nix b/flake.nix
index 899547c..3b14a24 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,34 +1,86 @@
{
inputs = {
flake-utils.url = "github:numtide/flake-utils";
- nixpkgs.url = "github:nix-ocaml/nix-overlays";
+ nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+ ocaml.url = "github:nix-ocaml/nix-overlays";
+ ocaml.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = {
self,
nixpkgs,
+ ocaml,
flake-utils,
}:
flake-utils.lib.eachDefaultSystem (system: let
- pkgs = nixpkgs.legacyPackages.${system}.appendOverlays [
- (self: super: {
- ocamlPackages =
- super.ocaml-ng.ocamlPackages_5_1.overrideScope'
- (oself: osuper: {
- pg_query = osuper.pg_query.overrideAttrs (prev: {
- propagatedBuildInputs =
- prev.propagatedBuildInputs
- ++ [osuper.cmdliner];
- });
- });
- })
- ];
+ pkgs = import nixpkgs {
+ inherit system;
- combattant = pkgs.ocamlPackages.buildDunePackage {
- pname = "combattant";
- version = "0.0.1";
- src = ./.;
- buildInputs = with pkgs.ocamlPackages; [
+ overlays = [ocaml.overlays.default];
+ };
+
+ quickjs = pkgs.ocamlPackages.buildDunePackage {
+ name = "quickjs";
+ pname = "quickjs";
+ version = "0.1.2";
+ src = pkgs.fetchFromGitHub {
+ fetchSubmodules = true;
+ owner = "ml-in-barcelona";
+ repo = "quickjs.ml";
+ rev = "5c4aa494acdf0f7b83a7b135b4ecd5d086cc1c64";
+ sha256 = "2rHyfc4Ru5fjuQY5xueJRSXBcVofVvPDagN0sFL7/nY=";
+ };
+ buildInputs = [pkgs.git];
+ propagatedBuildInputs = [
+ pkgs.git
+ pkgs.ocamlPackages.alcotest
+ pkgs.ocamlPackages.integers
+ pkgs.ocamlPackages.ctypes
+ ];
+ };
+ server-reason-react = pkgs.ocamlPackages.buildDunePackage {
+ pname = "server-reason-react";
+ version = "0.4.0";
+ src = pkgs.fetchFromGitHub {
+ owner = "polwex";
+ repo = "server-reason-react";
+ rev = "d5dd436b0a447ff0a82f9a8d7a02f102139299a9";
+ sha256 = "PsrOqZgdFIy5tGoLpS+hf9uz42vKJZbSvdWRW8MX604=";
+ };
+
+ propagatedBuildInputs = with pkgs.ocamlPackages; [
+ melange
+ ppxlib
+ ocaml_pcre
+ lwt
+ lwt_ppx
+ uri
+ quickjs
+ #
+ yojson
+ uucp
+ ];
+ nativeBuildInputs = with pkgs.ocamlPackages; [
+ reason
+ melange
+ # reason-native.refmett
+ ];
+ };
+ in {
+ devShells.default = pkgs.mkShell rec {
+ buildInputs =
+ nativeBuildInputs
+ ++ (with pkgs.ocamlPackages; [utop]);
+ nativeBuildInputs = with pkgs.ocamlPackages; [
+ pkgs.openjdk17
+ pkgs.nodejs
+ pkgs.sqlite
+ pkgs.dune_3
+ pkgs.ocaml
+ findlib
+ ocaml-lsp
+ ocamlformat
+ melange-json-native
ppx_rapper
ppx_rapper_eio
yojson
@@ -38,29 +90,12 @@
caqti-dynload
caqti-driver-postgresql
caqti-driver-sqlite3
- pkgs.sqlite
ppx_expect
-
logs
+ #
+ reason
+ server-reason-react
];
};
- in {
- devShells.default = pkgs.mkShell rec {
- nativeBuildInputs = with pkgs.ocamlPackages; [
- dune_3
- findlib
- ocaml
- ocaml-lsp
- ocamlformat
- pkgs.openjdk17
- pkgs.sqlite
- ];
-
- buildInputs =
- combattant.buildInputs
- ++ (with pkgs.ocamlPackages; [utop]);
- };
-
- packages.default = combattant;
});
}