1{ stdenv, cmake, fetchFromGitHub, emscriptenRev ? null }:
2
3let
4 defaultVersion = "45";
5
6 # Map from git revs to SHA256 hashes
7 sha256s = {
8 "version_45" = "1wgzfzjjzkiaz0rf2lnwrcvlcsjvjhyvbyh58jxhqq43vi34zyjc";
9 "1.37.36" = "1wgzfzjjzkiaz0rf2lnwrcvlcsjvjhyvbyh58jxhqq43vi34zyjc";
10 };
11in
12
13stdenv.mkDerivation rec {
14 version = if emscriptenRev == null
15 then defaultVersion
16 else "emscripten-${emscriptenRev}";
17 rev = if emscriptenRev == null
18 then "version_${version}"
19 else emscriptenRev;
20 name = "binaryen-${version}";
21
22 src = fetchFromGitHub {
23 owner = "WebAssembly";
24 repo = "binaryen";
25 sha256 =
26 if builtins.hasAttr rev sha256s
27 then builtins.getAttr rev sha256s
28 else null;
29 inherit rev;
30 };
31
32 nativeBuildInputs = [ cmake ];
33
34 meta = with stdenv.lib; {
35 homepage = https://github.com/WebAssembly/binaryen;
36 description = "Compiler infrastructure and toolchain library for WebAssembly, in C++";
37 platforms = platforms.all;
38 maintainers = with maintainers; [ asppsa ];
39 license = licenses.asl20;
40 };
41}