aboutsummaryrefslogtreecommitdiffstats
path: root/deps
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2026-03-05 23:42:15 -0300
committerMarcos Magueta <maguetamarcos@gmail.com>2026-03-05 23:42:15 -0300
commit8c640a262969ef44cd8bc0e0abe95e2a54f4c3f5 (patch)
tree84f9ddd9e41236fb7a6f540aab07e65db9bc93cb /deps
parent295c6a5a1f2b0db9d756ffe7bf413553a0c02737 (diff)
downloadSakura-8c640a262969ef44cd8bc0e0abe95e2a54f4c3f5.tar.gz
Sakura-8c640a262969ef44cd8bc0e0abe95e2a54f4c3f5.zip
ocaml re-migration
Diffstat (limited to 'deps')
-rw-r--r--deps/libressl.nix13
-rw-r--r--deps/merklecpp.nix19
-rw-r--r--deps/ppx_protocol_conv.nix27
-rw-r--r--deps/ppx_protocol_conv_xml_light.nix27
-rw-r--r--deps/relational_engine_lib.nix28
5 files changed, 114 insertions, 0 deletions
diff --git a/deps/libressl.nix b/deps/libressl.nix
new file mode 100644
index 0000000..a517dab
--- /dev/null
+++ b/deps/libressl.nix
@@ -0,0 +1,13 @@
+{ pkgs, ... }:
+pkgs.stdenv.mkDerivation {
+ name = "libressl-lib";
+ src = ./.;
+ buildInputs = with pkgs; [ libressl.dev pkg-config ];
+ installPhase = ''
+ mkdir -p $out/lib
+ mkdir -p $out/include
+ libressl_path=$(${pkgs.pkg-config}/bin/pkg-config --libs ${pkgs.libressl.dev}/lib/pkgconfig/libssl.pc | awk '{sub(/^-L/, ""); sub(/ -lssl$/, ""); print}')
+ cp -r $libressl_path/* $out/lib
+ cp -r ${pkgs.libressl.dev}/include/* $out/include
+ '';
+}
diff --git a/deps/merklecpp.nix b/deps/merklecpp.nix
new file mode 100644
index 0000000..d130be6
--- /dev/null
+++ b/deps/merklecpp.nix
@@ -0,0 +1,19 @@
+{ pkgs, ... }:
+pkgs.stdenv.mkDerivation rec {
+ name = "merklecpp";
+
+ src = pkgs.fetchFromGitHub {
+ owner = "microsoft";
+ repo = "merklecpp";
+ rev = "master";
+ sha256 = "jJJ6FEn+AkMknqun0GkXh5DSXsJnFbdE7U8BQ7Dd/Fw=";
+ };
+
+ prePatch = "";
+ configurePhase = "";
+ buildPhase = "";
+ installPhase = ''
+ mkdir -p $out/include
+ mv merklecpp.h $out/include/merklecpp.h
+ '';
+}
diff --git a/deps/ppx_protocol_conv.nix b/deps/ppx_protocol_conv.nix
new file mode 100644
index 0000000..856904e
--- /dev/null
+++ b/deps/ppx_protocol_conv.nix
@@ -0,0 +1,27 @@
+{ lib, ocamlPackages, fetchFromGitHub, defaultVersion ? "5.2.3" }:
+ocamlPackages.buildDunePackage {
+ duneVersion = "3";
+
+ pname = "ppx_protocol_conv";
+ version = defaultVersion;
+
+ minimalOCamlVersion = "4.07";
+
+ src = fetchFromGitHub {
+ owner = "andersfugmann";
+ repo = "ppx_protocol_conv";
+ rev = "425a7a1a26c26fcb740e5574e252043fd03eff46";
+ sha256 = "sha256-G6zMgHioPUCh2i50cjQ6talN8CYO6UhEaWgi0xe3CWA=";
+ };
+
+ buildInputs = [ocamlPackages.ppxlib ocamlPackages.ppx_sexp_conv ocamlPackages.sexplib ocamlPackages.alcotest ];
+
+ propagatedBuildInputs = [ ocamlPackages.ppxlib ocamlPackages.ppx_sexp_conv ocamlPackages.sexplib ocamlPackages.alcotest ];
+
+ doCheck = true;
+
+ meta = {
+ license = lib.licenses.bsd3;
+ homepage = "https://github.com/andersfugmann/ppx_protocol_conv";
+ };
+}
diff --git a/deps/ppx_protocol_conv_xml_light.nix b/deps/ppx_protocol_conv_xml_light.nix
new file mode 100644
index 0000000..a1f3e35
--- /dev/null
+++ b/deps/ppx_protocol_conv_xml_light.nix
@@ -0,0 +1,27 @@
+{ lib, ppx_protocol_conv, ocamlPackages, fetchFromGitHub, defaultVersion ? "5.2.3" }:
+ocamlPackages.buildDunePackage {
+ duneVersion = "3";
+
+ pname = "ppx_protocol_conv_xml_light";
+ version = defaultVersion;
+
+ minimalOCamlVersion = "4.08";
+
+ src = fetchFromGitHub {
+ owner = "andersfugmann";
+ repo = "ppx_protocol_conv";
+ rev = "425a7a1a26c26fcb740e5574e252043fd03eff46";
+ sha256 = "sha256-G6zMgHioPUCh2i50cjQ6talN8CYO6UhEaWgi0xe3CWA=";
+ };
+
+ buildInputs = [ppx_protocol_conv ocamlPackages.xml-light ocamlPackages.ppx_sexp_conv ocamlPackages.sexplib ocamlPackages.alcotest ];
+
+ propagatedBuildInputs = [ ocamlPackages.xml-light ocamlPackages.ppxlib ocamlPackages.ppx_sexp_conv ocamlPackages.sexplib ocamlPackages.alcotest ];
+
+ doCheck = true;
+
+ meta = {
+ license = lib.licenses.bsd3;
+ homepage = "https://github.com/andersfugmann/ppx_protocol_conv";
+ };
+}
diff --git a/deps/relational_engine_lib.nix b/deps/relational_engine_lib.nix
new file mode 100644
index 0000000..475ce00
--- /dev/null
+++ b/deps/relational_engine_lib.nix
@@ -0,0 +1,28 @@
+{ pkgs, libressl ? pkgs.callPackage ./libressl.nix { }
+# , merklecpp ? pkgs.callPackage ./merklecpp.nix { }
+, ... }:
+let shared_lib_extension = if pkgs.stdenv.isDarwin then "dylib" else "so";
+in pkgs.stdenv.mkDerivation {
+ name = "librelational_engine";
+ src = ../shared/librelational_engine;
+ nativeBuildInputs = [ pkgs.cmake pkgs.gcc ];
+ buildInputs = [
+ libressl
+ # merklecpp
+ ];
+ env = {
+ # MERKLECPP_INCLUDE_PATH = "${merklecpp}/include";
+ LIBRESSL_INCLUDE_PATH = "${libressl}/include";
+ LIBRESSL_LIB_PATH = "${libressl}/lib";
+ OS_LIB_EXTENSION = shared_lib_extension;
+ };
+ buildPhase = ''
+ mkdir -p $out/lib
+ mkdir -p $out/include
+ cmake --build . --target relational_engine
+ '';
+ installPhase = ''
+ mv librelational_engine.${shared_lib_extension} $out/lib/librelational_engine.${shared_lib_extension}
+ cp $src/library.h $out/include/library.h
+ '';
+}