about summary refs log tree commit diff
path: root/pkgs/development/web
diff options
context:
space:
mode:
authorSander van der Burg <svanderburg@gmail.com>2013-03-14 13:52:45 +0100
committerSander van der Burg <svanderburg@gmail.com>2013-03-14 13:52:45 +0100
commit0576a0054bad5f6dd8b21e2481dab7e725c5e103 (patch)
tree66aa9ba961a383a73cca51b6642994f2fa564296 /pkgs/development/web
parent8db4152ddf20d60f07832e1c2f1f2de937961361 (diff)
downloadnixlib-0576a0054bad5f6dd8b21e2481dab7e725c5e103.tar
nixlib-0576a0054bad5f6dd8b21e2481dab7e725c5e103.tar.gz
nixlib-0576a0054bad5f6dd8b21e2481dab7e725c5e103.tar.bz2
nixlib-0576a0054bad5f6dd8b21e2481dab7e725c5e103.tar.lz
nixlib-0576a0054bad5f6dd8b21e2481dab7e725c5e103.tar.xz
nixlib-0576a0054bad5f6dd8b21e2481dab7e725c5e103.tar.zst
nixlib-0576a0054bad5f6dd8b21e2481dab7e725c5e103.zip
Implemented an unelegant workaround that allows nodejs to be used on darwin using xcode
Diffstat (limited to 'pkgs/development/web')
-rw-r--r--pkgs/development/web/nodejs/default.nix24
1 files changed, 17 insertions, 7 deletions
diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix
index 7f1aafa64f77..138b4180b899 100644
--- a/pkgs/development/web/nodejs/default.nix
+++ b/pkgs/development/web/nodejs/default.nix
@@ -12,26 +12,36 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--openssl-includes=${openssl}/include"
     "--openssl-libpath=${openssl}/lib"
+  ]
+  ++ (if !stdenv.isDarwin then [ # Shared V8 is broken on Mac OS X. Who can fix V8 on Darwin makes me very happy, but I gave up studying python-gyp.
     "--shared-v8"
     "--shared-v8-includes=${v8}/includes"
     "--shared-v8-libpath=${v8}/lib"
-  ];
+  ] else []);
 
   #patches = stdenv.lib.optional stdenv.isDarwin ./no-arch-flag.patch;
 
+  # Expose the host compiler on darwin, which is the only compiler capable of building it
+  preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+    export OLDPATH=$PATH
+    export PATH=/usr/bin:$PATH
+  '';
+
   prePatch = ''
     sed -e 's|^#!/usr/bin/env python$|#!${python}/bin/python|g' -i tools/{*.py,waf-light,node-waf} configure
   '';
 
-  postInstall = ''
-
+  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    export PATH=$OLDPATH
+  '' + ''
     sed -e 's|^#!/usr/bin/env node$|#!'$out'/bin/node|' -i $out/lib/node_modules/npm/bin/npm-cli.js
-  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+  '' /*+ stdenv.lib.optionalString stdenv.isDarwin ''
     install_name_tool -change libv8.dylib ${v8}/lib/libv8.dylib $out/bin/node
-  '';
+  ''*/;
 
-  buildInputs = [ python openssl v8 zlib ] ++ stdenv.lib.optional stdenv.isLinux utillinux;
-  
+  buildInputs = [ python openssl zlib ]
+    ++ stdenv.lib.optional stdenv.isLinux utillinux
+    ++ stdenv.lib.optional (!stdenv.isDarwin) v8;
   setupHook = ./setup-hook.sh;
 
   meta = with stdenv.lib; {