--- a/configure +++ b/configure @@ -182,6 +182,27 @@ dest='shared_http_parser_libpath', help='a directory to search for the shared http_parser DLL') +shared_optgroup.add_option('--shared-nghttp2', + action='store_true', + dest='shared_nghttp2', + help='link to a shared nghttp2 DLL instead of static linking') + +shared_optgroup.add_option('--shared-nghttp2-includes', + action='store', + dest='shared_nghttp2_includes', + help='directory containing nghttp2 header files') + +shared_optgroup.add_option('--shared-nghttp2-libname', + action='store', + dest='shared_nghttp2_libname', + default='nghttp2', + help='alternative lib name to link to [default: %default]') + +shared_optgroup.add_option('--shared-nghttp2-libpath', + action='store', + dest='shared_nghttp2_libpath', + help='a directory to search for the shared nghttp2 DLL') + shared_optgroup.add_option('--shared-libuv', action='store_true', dest='shared_libuv', @@ -1360,6 +1381,7 @@ configure_node(output) configure_library('zlib', output) configure_library('http_parser', output) +configure_library('nghttp2', output) configure_library('libuv', output) configure_library('libcares', output) # stay backwards compatible with shared cares builds --- a/node.gyp +++ b/node.gyp @@ -14,6 +14,7 @@ 'node_module_version%': '', 'node_shared_zlib%': 'false', 'node_shared_http_parser%': 'false', + 'node_shared_nghttp2%': 'false', 'node_shared_cares%': 'false', 'node_shared_libuv%': 'false', 'node_use_openssl%': 'true', @@ -151,8 +152,15 @@ 'type': '<(node_target_type)', 'dependencies': [ - 'node_js2c#host', - 'deps/nghttp2/nghttp2.gyp:nghttp2' + 'node_js2c#host' + ], + + 'conditions': [ + [ 'node_shared_nghttp2=="false"', { + 'dependencies': [ + 'deps/nghttp2/nghttp2.gyp:nghttp2' + ] + }] ], 'includes': [ @@ -180,8 +180,7 @@ 'include_dirs': [ 'src', 'tools/msvs/genfiles', - '<(SHARED_INTERMEDIATE_DIR)', # for node_natives.h - 'deps/nghttp2/lib/includes' + '<(SHARED_INTERMEDIATE_DIR)' # for node_natives.h ], 'sources': [ @@ -691,6 +696,15 @@ 'deps/http_parser/http_parser.gyp:http_parser' ] }], + [ 'node_shared_nghttp2=="false"', { + 'dependencies': [ + 'deps/nghttp2/nghttp2.gyp:nghttp2' + ], + 'defines': [ + # We're using the nghttp2 static lib + 'NGHTTP2_STATICLIB' + ] + }], [ 'node_shared_libuv=="false"', { 'dependencies': [ 'deps/uv/uv.gyp:libuv' --- a/node.gypi +++ b/node.gypi @@ -251,6 +251,10 @@ 'dependencies': [ 'deps/http_parser/http_parser.gyp:http_parser' ], }], + [ 'node_shared_nghttp2=="false"', { + 'dependencies': [ 'deps/nghttp2/nghttp2.gyp:nghttp2' ], + }], + [ 'node_shared_cares=="false"', { 'dependencies': [ 'deps/cares/cares.gyp:cares' ], }],