gyp: install node-gyp
authorFedor Indutny <fedor.indutny@gmail.com>
Mon, 16 Jan 2012 18:17:45 +0000 (00:17 +0600)
committerFedor Indutny <fedor.indutny@gmail.com>
Mon, 16 Jan 2012 20:44:26 +0000 (02:44 +0600)
* fixes #2480

tools/addon.gypi
tools/installer.js
tools/node-gyp [moved from tools/gyp_addon with 63% similarity]

index e7152af..20dc2b9 100644 (file)
@@ -3,15 +3,20 @@
     'type': 'loadable_module',
     'product_extension': 'node',
     'product_prefix': '',
-    'include_dirs': [
-      '../src',
-      '../deps/uv/include',
-      '../deps/v8/include'
-    ],
 
     'conditions': [
       [ 'OS=="mac"', {
-        'libraries': [ '-undefined dynamic_lookup' ],
+        'libraries': [ '-undefined dynamic_lookup' ]
+      }],
+      [ 'OS=="win"', {
+        'include_dirs': [
+          '../src',
+          '../deps/uv/include',
+          '../deps/v8/include'
+        ],
+        'libraries': [ '-l<(node_root_dir>/Debug/node.lib' ],
+      }, {
+        'include_dirs': ['../../../include/node']
       }]
     ]
   }
index f4a07c5..7269d06 100644 (file)
@@ -93,7 +93,13 @@ if (cmd === 'install') {
   copy([
     'deps/uv/include/ares.h',
     'deps/uv/include/ares_version.h'
-  ], 'include/node/c-ares/');
+  ], 'include/node/');
+
+  // Copy node-gyp files
+  copy('common.gypi', 'lib/node/');
+  copy('tools/*', 'lib/node/tools/');
+  queue.push('ln -sf ../lib/node/tools/node-gyp ' +
+             path.join(node_prefix, 'bin/node-gyp'));
 
   // Copy binary file
   copy('out/Release/node', 'bin/node');
@@ -106,7 +112,8 @@ if (cmd === 'install') {
   }
 } else {
   remove([
-     'bin/node', 'bin/npm', 'include/node/*', 'lib/node_modules'
+     'bin/node', 'bin/npm', 'bin/node-gyp', 'include/node/*',
+     'lib/node', 'lib/node_modules'
   ]);
 }
 
similarity index 63%
rename from tools/gyp_addon
rename to tools/node-gyp
index a93f7b2..14b7139 100755 (executable)
@@ -4,18 +4,20 @@ import sys
 
 script_dir = os.path.dirname(__file__)
 node_root  = os.path.normpath(os.path.join(script_dir, os.pardir))
+node_tools = os.path.join(node_root, 'lib', 'node', 'tools')
 
-sys.path.insert(0, os.path.join(node_root, 'tools', 'gyp', 'pylib'))
+sys.path.insert(0, os.path.join(node_tools, 'gyp', 'pylib'))
 import gyp
 
 if __name__ == '__main__':
   args = sys.argv[1:]
-  addon_gypi = os.path.join(node_root, 'tools', 'addon.gypi')
-  common_gypi = os.path.join(node_root, 'common.gypi')
+  addon_gypi = os.path.join(node_tools, 'addon.gypi')
+  common_gypi = os.path.join(node_root, 'lib', 'node', 'common.gypi')
   args.extend(['-I', addon_gypi])
   args.extend(['-I', common_gypi])
   args.extend(['-Dlibrary=shared_library'])
   args.extend(['-Dvisibility=default'])
+  args.extend(['-Dnode_root_dir=%s' % node_root])
   args.extend(['--depth=.']);
 
   gyp_args = list(args)