aboutsummaryrefslogtreecommitdiffstats
path: root/deps/relational_engine_lib.nix
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2024-10-26 14:26:10 -0300
committerGitHub <noreply@github.com>2024-10-26 14:26:10 -0300
commit2eab114a120c7818861c0640ecdc300cf7366e53 (patch)
treebeb69c7038d79d8ca77d072d6f3afb144b5ff891 /deps/relational_engine_lib.nix
parentda309e886e31e6d55e46339647d56769d417114e (diff)
downloadSakura-2eab114a120c7818861c0640ecdc300cf7366e53.tar.gz
Sakura-2eab114a120c7818861c0640ecdc300cf7366e53.zip
Basic storage with C interop (#1)
* writer command design * dune build with shared core lib * port c lib project inside ocaml * os specific dynamic link * fix project name on flake * fix: cmake cxx version breaking merklecpp * finish write to disk and update maps func * add non atomic commit to transaction graph * merkle tree binding for generating root hash * disk module refactor --------- Co-authored-by: Renan Lopes <renans.l@icloud.com>
Diffstat (limited to 'deps/relational_engine_lib.nix')
-rw-r--r--deps/relational_engine_lib.nix28
1 files changed, 28 insertions, 0 deletions
diff --git a/deps/relational_engine_lib.nix b/deps/relational_engine_lib.nix
new file mode 100644
index 0000000..b1d0488
--- /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
+ '';
+}