Browse Source

nix: add solc source build derivation

The MMGen Project 1 week ago
parent
commit
0a72cc83f7
2 changed files with 33 additions and 0 deletions
  1. 32 0
      nix/solc.nix
  2. 1 0
      nix/user-packages.nix

+ 32 - 0
nix/solc.nix

@@ -0,0 +1,32 @@
+{ pkgs, fetchzip, fetchurl }:
+
+pkgs.stdenv.mkDerivation rec {
+    pname = "solc";
+    version = "0.8.26";
+    src = fetchzip {
+        url = "https://github.com/ethereum/solidity/releases/download/v0.8.26/solidity_0.8.26.tar.gz";
+        sha256 = "sha256-4lrxwjEg1/TPWt2WB/kQNYvdOEt5aEbnGaEcNMz9pv4=";
+    };
+    range_pkg = fetchurl {
+        url = "https://github.com/ericniebler/range-v3/archive/0.12.0.tar.gz";
+        sha256 = "sha256-AVrbIwCpjt/OrwclvuwzN/VCr0kVzsTQuJ+giG9Lqcs=";
+    };
+    fmtlib_pkg = fetchurl {
+        url = "https://github.com/fmtlib/fmt/archive/9.1.0.tar.gz";
+        sha256 = "sha256-XepI0fzdw+xXHOIFjhORCg1Ka6tMwJqAnYsd0ciK5vI=";
+    };
+    json_pkg = fetchurl {
+        url = "https://github.com/nlohmann/json/releases/download/v3.11.3/json.hpp";
+        sha256 = "sha256-m+pMgGbvShwgayvlo2MC+JJvf9xgh69dILQX0M8QPqY=";
+    };
+    nativeBuildInputs = [ pkgs.cmake ];
+    buildInputs = [ pkgs.boost ];
+    cmakeFlags = [ "-DBoost_USE_STATIC_LIBS=OFF" ];
+    patchPhase = ''
+        mkdir -p deps/downloads
+        mkdir -p deps/nlohmann/nlohmann
+        cp ${range_pkg} deps/downloads/range-v3-0.12.0.tar.gz
+        cp ${fmtlib_pkg} deps/downloads/fmt-9.1.0.tar.gz
+        cp ${json_pkg} deps/nlohmann/nlohmann/json.hpp
+    '';
+}

+ 1 - 0
nix/user-packages.nix

@@ -22,6 +22,7 @@ rec {
         #     tag_version = "v1.13.15";
         #     vendor_hash = "sha256-LWNFuF66KudxrpWBBXjMbrWP5CwEuPE2h3kGfILIII0";
         # };
+        # solc         = callPackage (bdir + /solc.nix) {};               # Solidity compiler
         # litecoin     = callPackage (bdir + /litecoin.nix) {};           # Litecoin daemon
         # bitcoin-cash = callPackage (bdir + /bitcoin-cash-node.nix) {};  # Bitcoin Cash Node daemon
         # zcash-mini   = callPackage (bdir + /zcash-mini.nix) {};         # ZEC (test suite)