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>
This commit is contained in:
parent
9f45c2cbba
commit
8ddc86d6e4
@ -1,55 +1,56 @@
|
||||
{ stdenv, fetchsvn, gyp, readline, python, which }:
|
||||
{ stdenv, fetchurl, gyp, readline, python, which, icu }:
|
||||
|
||||
assert readline != null;
|
||||
|
||||
let
|
||||
system = stdenv.system;
|
||||
arch = if system == "i686-linux" then "ia32" else if system == "x86_64-linux" || system == "x86_64-darwin" then "x64" else "";
|
||||
version = "3.14.5.9";
|
||||
arch = if stdenv.is64bit then "x64" else "ia32";
|
||||
in
|
||||
|
||||
assert arch != "";
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenv.mkDerivation rec {
|
||||
name = "v8-${version}";
|
||||
version = "3.25.9";
|
||||
|
||||
src = fetchsvn {
|
||||
url = "http://v8.googlecode.com/svn/tags/${version}";
|
||||
sha256 = "18qp5qp5xrb6f00w01cklz358yrl54pks963f5rwvwz82d8sfyqr";
|
||||
name = "v8-${version}-src";
|
||||
src = fetchurl {
|
||||
url = "https://commondatastorage.googleapis.com/chromium-browser-official/"
|
||||
+ "${name}.tar.bz2";
|
||||
sha256 = "0x6czv99dr701vljyb4ghyhhc5rmv7vfkpvigcnrqz2an9q1pc28";
|
||||
};
|
||||
|
||||
patches = [ ./fix-GetLocalizedMessage-usage.patch ];
|
||||
|
||||
configurePhase = ''
|
||||
mkdir build/gyp
|
||||
ln -sv ${gyp}/bin/gyp build/gyp/gyp
|
||||
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 ];
|
||||
buildInputs = [ readline python icu ];
|
||||
|
||||
buildFlags = [
|
||||
"library=shared"
|
||||
"console=readline"
|
||||
"${arch}.release"
|
||||
"LINK=g++"
|
||||
"-C out"
|
||||
"builddir=$(CURDIR)/Release"
|
||||
"BUILDTYPE=Release"
|
||||
];
|
||||
|
||||
# http://code.google.com/p/v8/issues/detail?id=2149
|
||||
NIX_CFLAGS_COMPILE = "-Wno-unused-local-typedefs -Wno-aggressive-loop-optimizations";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/lib
|
||||
mv -v out/${arch}.release/d8 $out/bin
|
||||
|
||||
${if stdenv.system == "x86_64-darwin" then
|
||||
"mv -v out/${arch}.release/libv8.dylib $out/lib"
|
||||
else
|
||||
"mv -v out/${arch}.release/lib.target/libv8.so $out/lib"}
|
||||
mv -v include $out/
|
||||
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 ''
|
||||
|
Loading…
Reference in New Issue
Block a user