8ddc86d6e4
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>
66 lines
1.9 KiB
Nix
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;
|
|
};
|
|
}
|