build: unix install node and dep library headers
authorTimothy J Fontaine <tjfontaine@gmail.com>
Thu, 10 Oct 2013 21:42:41 +0000 (14:42 -0700)
committerTimothy J Fontaine <tjfontaine@gmail.com>
Wed, 18 Dec 2013 23:06:20 +0000 (15:06 -0800)
Restores functionality from v0.8 where module authors may not be
relying on gyp for building their modules.

tools/install.py

index 48943de..0012a7e 100755 (executable)
@@ -118,6 +118,14 @@ def npm_files(action):
   else:
     assert(0) # unhandled action type
 
+def subdir_files(path, dest, action):
+  ret = {}
+  for dirpath, dirnames, filenames in os.walk(path):
+    files = [dirpath + '/' + f for f in filenames if f.endswith('.h')]
+    ret[dest + dirpath.replace(path, '')] = files
+  for subdir, files in ret.items():
+    action(files, subdir + '/')
+
 def files(action):
   action(['out/Release/node'], 'bin/node')
 
@@ -133,6 +141,34 @@ def files(action):
 
   if 'true' == variables.get('node_install_npm'): npm_files(action)
 
+  action([
+    'config.gypi',
+    'src/node.h',
+    'src/node_buffer.h',
+    'src/node_internals.h',
+    'src/node_object_wrap.h',
+    'src/node_version.h',
+  ], 'include/node/')
+
+  if 'false' == variables.get('node_shared_cares'):
+    subdir_files('deps/cares/include', 'include/node/', action)
+
+  if 'false' == variables.get('node_shared_libuv'):
+    subdir_files('deps/uv/include', 'include/node/', action)
+
+  if 'false' == variables.get('node_shared_openssl'):
+    action(['deps/openssl/config/opensslconf.h'], 'include/node/openssl/')
+    subdir_files('deps/openssl/include/openssl', 'include/node/openssl/', action)
+
+  if 'false' == variables.get('node_shared_v8'):
+    subdir_files('deps/v8/include', 'include/node/', action)
+
+  if 'false' == variables.get('node_shared_zlib'):
+    action([
+      'deps/zlib/zconf.h',
+      'deps/zlib/zlib.h',
+    ], 'include/node/')
+
 def run(args):
   global dst_dir, node_prefix, target_defaults, variables