nixpkgs/pkgs/development/libraries/v8/default.nix
aszlig 8ddc86d6e4
v8: Refactor package and update to version 3.25.9.
This now uses fetchurl instead of fetchsvn and now invokes gyp directly
instead of copying over the gyp command to the source tree.

Also, we're now using stdenv.is64bit to properly determine the host
architecture.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-04-19 03:58:38 +02:00

66 lines
1.9 KiB
Nix

{ stdenv, fetchurl, gyp, readline, python, which, icu }:
assert readline != null;
let
arch = if stdenv.is64bit then "x64" else "ia32";
in
stdenv.mkDerivation rec {
name = "v8-${version}";
version = "3.25.9";
src = fetchurl {
url = "https://commondatastorage.googleapis.com/chromium-browser-official/"
+ "${name}.tar.bz2";
sha256 = "0x6czv99dr701vljyb4ghyhhc5rmv7vfkpvigcnrqz2an9q1pc28";
};
configurePhase = ''
PYTHONPATH="tools/generate_shim_headers:$PYTHONPATH" \
${gyp}/bin/gyp \
-f make \
--generator-output="out" \
-Dflock_index=0 \
-Dv8_enable_i18n_support=1 \
-Duse_system_icu=1 \
-Dconsole=readline \
-Dcomponent=shared_library \
-Dv8_target_arch=${arch} \
--depth=. -Ibuild/standalone.gypi \
build/all.gyp
'';
nativeBuildInputs = [ which ];
buildInputs = [ readline python icu ];
buildFlags = [
"LINK=g++"
"-C out"
"builddir=$(CURDIR)/Release"
"BUILDTYPE=Release"
];
enableParallelBuilding = true;
installPhase = ''
install -vD out/Release/d8 "$out/bin/d8"
${if stdenv.system == "x86_64-darwin" then ''
install -vD out/Release/lib.target/libv8.dylib "$out/lib/libv8.dylib"
'' else ''
install -vD out/Release/lib.target/libv8.so "$out/lib/libv8.so"
''}
cp -vr include "$out/"
'';
postFixup = if stdenv.isDarwin then ''
install_name_tool -change /usr/local/lib/libv8.dylib $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.gcc.gcc}/lib/libgcc_s.1.dylib $out/bin/d8
install_name_tool -id $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.gcc.gcc}/lib/libgcc_s.1.dylib $out/lib/libv8.dylib
'' else null;
meta = with stdenv.lib; {
description = "V8 is Google's open source JavaScript engine";
platforms = platforms.linux ++ platforms.darwin;
license = licenses.bsd3;
};
}