diff --git a/tools/addon.gypi b/tools/addon.gypi index e7152afe4b..20dc2b9e06 100644 --- a/tools/addon.gypi +++ b/tools/addon.gypi @@ -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'] }] ] } diff --git a/tools/installer.js b/tools/installer.js index f4a07c5218..7269d06100 100644 --- a/tools/installer.js +++ b/tools/installer.js @@ -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' ]); } diff --git a/tools/gyp_addon b/tools/node-gyp similarity index 63% rename from tools/gyp_addon rename to tools/node-gyp index a93f7b27d9..14b7139741 100755 --- a/tools/gyp_addon +++ b/tools/node-gyp @@ -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)