forked from mirrors/nixpkgs
Just use "fetchFromGitHub" because that seems to be more reliable. Still unclear what the actual issue was but I'm thinking this will fix it. At least, this will put it more in line with other packages.
46 lines
1.9 KiB
Nix
46 lines
1.9 KiB
Nix
{ stdenv, fetchFromGitHub, emscriptenfastcomp, python, nodejs, closurecompiler, jre }:
|
|
|
|
let
|
|
rev = "1.36.4";
|
|
appdir = "share/emscripten";
|
|
in
|
|
|
|
stdenv.mkDerivation {
|
|
name = "emscripten-${rev}";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "kripken";
|
|
repo = "emscripten";
|
|
sha256 = "1c9592i891z1v9rp4a4lnsp14nwiqfxnh37g6xwwjd1bqx7x4hn7";
|
|
inherit rev;
|
|
};
|
|
|
|
buildCommand = ''
|
|
mkdir -p $out/${appdir}
|
|
cp -r $src/* $out/${appdir}
|
|
chmod -R +w $out/${appdir}
|
|
grep -rl '^#!/usr.*python' $out/${appdir} | xargs sed -i -s 's@^#!/usr.*python.*@#!${python}/bin/python@'
|
|
sed -i -e "s,EM_CONFIG = '~/.emscripten',EM_CONFIG = '$out/${appdir}/config'," $out/${appdir}/tools/shared.py
|
|
sed -i -e 's,^.*did not see a source tree above the LLVM.*$, return True,' $out/${appdir}/tools/shared.py
|
|
sed -i -e 's,def check_sanity(force=False):,def check_sanity(force=False):\n return,' $out/${appdir}/tools/shared.py
|
|
mkdir $out/bin
|
|
ln -s $out/${appdir}/{em++,em-config,emar,embuilder.py,emcc,emcmake,emconfigure,emlink.py,emmake,emranlib,emrun,emscons} $out/bin
|
|
|
|
echo "EMSCRIPTEN_ROOT = '$out/${appdir}'" > $out/${appdir}/config
|
|
echo "LLVM_ROOT = '${emscriptenfastcomp}'" >> $out/${appdir}/config
|
|
echo "PYTHON = '${python}/bin/python'" >> $out/${appdir}/config
|
|
echo "NODE_JS = '${nodejs}/bin/node'" >> $out/${appdir}/config
|
|
echo "JS_ENGINES = [NODE_JS]" >> $out/${appdir}/config
|
|
echo "COMPILER_ENGINE = NODE_JS" >> $out/${appdir}/config
|
|
echo "CLOSURE_COMPILER = '${closurecompiler}/share/java/compiler.jar'" >> $out/${appdir}/config
|
|
echo "JAVA = '${jre}/bin/java'" >> $out/${appdir}/config
|
|
'';
|
|
meta = with stdenv.lib; {
|
|
homepage = https://github.com/kripken/emscripten;
|
|
description = "An LLVM-to-JavaScript Compiler";
|
|
platforms = platforms.all;
|
|
maintainers = with maintainers; [ qknight ];
|
|
license = licenses.ncsa;
|
|
};
|
|
}
|