build: allow use of system-installed brotli

brotli is available as a shared library since 2016, so it makes sense
to allow its use as a system-installed version.

Some of the infrastructure was in place already (node.gyp and
node.gypi), but some bits in the configure script here were missing.

Add them, keeping the default as before, to use the bundled version.

Refs: https://github.com/google/brotli/pull/421
Signed-off-by: André Draszik <git@andred.net>

PR-URL: https://github.com/nodejs/node/pull/32046
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
This commit is contained in:
André Draszik 2020-03-02 12:17:35 +00:00 committed by Anna Henningsen
parent d3af527152
commit 616b7fbcb1
No known key found for this signature in database
GPG Key ID: A94130F0BFC8EBE9

View File

@ -301,6 +301,27 @@ shared_optgroup.add_option('--shared-zlib-libpath',
dest='shared_zlib_libpath',
help='a directory to search for the shared zlib DLL')
shared_optgroup.add_option('--shared-brotli',
action='store_true',
dest='shared_brotli',
help='link to a shared brotli DLL instead of static linking')
shared_optgroup.add_option('--shared-brotli-includes',
action='store',
dest='shared_brotli_includes',
help='directory containing brotli header files')
shared_optgroup.add_option('--shared-brotli-libname',
action='store',
dest='shared_brotli_libname',
default='brotlidec,brotlienc',
help='alternative lib name to link to [default: %default]')
shared_optgroup.add_option('--shared-brotli-libpath',
action='store',
dest='shared_brotli_libpath',
help='a directory to search for the shared brotli DLL')
shared_optgroup.add_option('--shared-cares',
action='store_true',
dest='shared_cares',
@ -1692,6 +1713,7 @@ configure_napi(output)
configure_library('zlib', output)
configure_library('http_parser', output)
configure_library('libuv', output)
configure_library('brotli', output, pkgname=['libbrotlidec', 'libbrotlienc'])
configure_library('cares', output, pkgname='libcares')
configure_library('nghttp2', output, pkgname='libnghttp2')
configure_v8(output)