python313Packages.pyais: 2.8.3 -> 2.8.4 (#378375)
[NixPkgs.git] / pkgs / development / compilers / binaryen / default.nix
blob15734ad67078dac494570bffc7a5d87a09491af9
2   lib,
3   stdenv,
4   cmake,
5   python3,
6   fetchFromGitHub,
7   emscripten,
8   gtest,
9   lit,
10   nodejs,
11   filecheck,
13 let
14   testsuite = fetchFromGitHub {
15     owner = "WebAssembly";
16     repo = "testsuite";
17     rev = "e05365077e13a1d86ffe77acfb1a835b7aa78422";
18     hash = "sha256-yvZ5AZTPUA6nsD3xpFC0VLthiu2CxVto66RTXBXXeJM=";
19   };
21 stdenv.mkDerivation rec {
22   pname = "binaryen";
23   version = "120_b";
25   src = fetchFromGitHub {
26     owner = "WebAssembly";
27     repo = "binaryen";
28     rev = "version_${version}";
29     hash = "sha256-gdqjsAQp4NTHROAf6i44GjkbtNyLPQZ153k3veK7eYs=";
30   };
32   nativeBuildInputs = [
33     cmake
34     python3
35   ];
37   preConfigure = ''
38     if [ $doCheck -eq 1 ]; then
39       sed -i '/googletest/d' third_party/CMakeLists.txt
40       rmdir test/spec/testsuite
41       ln -s ${testsuite} test/spec/testsuite
42     else
43       cmakeFlagsArray=($cmakeFlagsArray -DBUILD_TESTS=0)
44     fi
45   '';
47   nativeCheckInputs = [
48     gtest
49     lit
50     nodejs
51     filecheck
52   ];
53   checkPhase = ''
54     LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib python3 ../check.py $tests
55   '';
57   tests = [
58     "version"
59     "wasm-opt"
60     "wasm-dis"
61     "crash"
62     "dylink"
63     "ctor-eval"
64     "wasm-metadce"
65     "wasm-reduce"
66     "spec"
67     "lld"
68     "wasm2js"
69     "validator"
70     "example"
71     "unit"
72     # "binaryenjs" "binaryenjs_wasm" # not building this
73     "lit"
74     "gtest"
75   ];
76   doCheck = stdenv.isLinux;
78   meta = with lib; {
79     homepage = "https://github.com/WebAssembly/binaryen";
80     description = "Compiler infrastructure and toolchain library for WebAssembly, in C++";
81     platforms = platforms.all;
82     maintainers = with maintainers; [
83       asppsa
84       willcohen
85     ];
86     license = licenses.asl20;
87   };
88   passthru.tests = {
89     inherit emscripten;
90   };