diff options
Diffstat (limited to 'pkgs/development/compilers/binaryen/default.nix')
-rw-r--r-- | pkgs/development/compilers/binaryen/default.nix | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/pkgs/development/compilers/binaryen/default.nix b/pkgs/development/compilers/binaryen/default.nix index 0df831831ba9e..6aeaeac8a1ead 100644 --- a/pkgs/development/compilers/binaryen/default.nix +++ b/pkgs/development/compilers/binaryen/default.nix @@ -1,18 +1,52 @@ -{ lib, stdenv, cmake, python3, fetchFromGitHub, emscripten }: +{ lib, stdenv, cmake, python3, fetchFromGitHub, emscripten, + gtest, lit, nodejs, filecheck, fetchpatch +}: stdenv.mkDerivation rec { pname = "binaryen"; - version = "105"; + version = "109"; src = fetchFromGitHub { owner = "WebAssembly"; repo = "binaryen"; rev = "version_${version}"; - sha256 = "0yg9rarjv1gfbq225cj9hnbgx99n5az2m19qwfp8z41dwhh71igm"; + sha256 = "sha256-HMPoiuTvYhTDaBUfSOfh/Dt4FdO9jGqUaFpi92pnscI="; }; + patches = [ + # https://github.com/WebAssembly/binaryen/pull/4321 + (fetchpatch { + url = "https://github.com/WebAssembly/binaryen/commit/93b8849d9f98ef7ed812938ff0b3219819c2be77.patch"; + sha256 = "sha256-Duan/B9A+occ5Lj2SbRX793xIfhzHbdYPI5PyTNCZoU="; + }) + ]; + nativeBuildInputs = [ cmake python3 ]; + preConfigure = '' + if [ $doCheck -eq 1 ]; then + sed -i '/googletest/d' third_party/CMakeLists.txt + else + cmakeFlagsArray=($cmakeFlagsArray -DBUILD_TESTS=0) + fi + ''; + + checkInputs = [ gtest lit nodejs filecheck ]; + checkPhase = '' + LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib python3 ../check.py $tests + ''; + + tests = [ + "version" "wasm-opt" "wasm-dis" + "crash" "dylink" "ctor-eval" + "wasm-metadce" "wasm-reduce" "spec" + "lld" "wasm2js" "validator" + "example" "unit" + # "binaryenjs" "binaryenjs_wasm" # not building this + "lit" "gtest" + ]; + doCheck = stdenv.isLinux; + meta = with lib; { homepage = "https://github.com/WebAssembly/binaryen"; description = "Compiler infrastructure and toolchain library for WebAssembly, in C++"; |