From ffceb354d66b6bc1f3e32fd69c146ab36a738e5c Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Fri, 9 Oct 2026 10:37:38 +0200 Subject: [PATCH] build: do not include shared gtest in `node` link path Signed-off-by: Antoine du Hamel --- configure.py | 15 +++++++++------ node.gyp | 3 ++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/configure.py b/configure.py index acda6a16c96c..e38dd91cdb9d 100755 --- a/configure.py +++ b/configure.py @@ -2195,9 +2195,10 @@ def configure_napi(output): version = getnapibuildversion.get_napi_version() output['variables']['napi_build_version'] = version -def configure_library(lib, output, pkgname=None): +def configure_library(lib, output, pkgname=None, libraries_key='libraries'): shared_lib = 'shared_' + lib output['variables']['node_' + shared_lib] = b(getattr(options, shared_lib)) + libraries = output[libraries_key] if getattr(options, shared_lib): (pkg_libs, pkg_cflags, pkg_libpath, _) = pkg_config(pkgname or lib) @@ -2216,17 +2217,17 @@ def configure_library(lib, output, pkgname=None): output['msvs_settings']['VCLinkerTool']['AdditionalOptions'] += [ f"/LIBPATH:{options.__dict__[shared_lib + '_libpath']}"] else: - output['libraries'] += [ + libraries += [ f"-L{options.__dict__[shared_lib + '_libpath']}"] elif pkg_libpath: - output['libraries'] += [pkg_libpath] + libraries += [pkg_libpath] default_libs = getattr(options, shared_lib + '_libname') if default_libs: - output['libraries'] += [f'-l{l}' for l in default_libs.split(',')] + libraries += [f'-l{l}' for l in default_libs.split(',')] elif pkg_libs: - output['libraries'] += pkg_libs.split() + libraries += pkg_libs.split() def configure_v8(o, configs): @@ -2974,7 +2975,9 @@ def make_bin_override(): configure_library('simdutf', output) configure_library('brotli', output, pkgname=['libbrotlidec', 'libbrotlienc']) configure_library('cares', output, pkgname='libcares') -configure_library('gtest', output) +# Only cctest uses gtest; keep it out of the node binary's link line. +output['variables']['node_shared_gtest_libraries'] = [] +configure_library('gtest', output, 'node_shared_gtest_libraries') configure_library('hdr_histogram', output) configure_library('highway', output, pkgname='libhwy') configure_library('merve', output) diff --git a/node.gyp b/node.gyp index 54d18b204c68..a626477c3805 100644 --- a/node.gyp +++ b/node.gyp @@ -19,6 +19,7 @@ 'node_shared_brotli%': 'false', 'node_shared_cares%': 'false', 'node_shared_gtest%': 'false', + 'node_shared_gtest_libraries%': [], 'node_shared_hdr_histogram%': 'false', 'node_shared_highway%': 'false', 'node_shared_http_parser%': 'false', @@ -1387,7 +1388,7 @@ ], }], [ 'node_shared_gtest=="true"', { - 'libraries': [ '-lgtest_main' ], + 'libraries': [ '-lgtest_main', '<@(node_shared_gtest_libraries)' ], }], [ 'node_use_bundled_v8!="false" and node_shared_abseil=="false"', { 'dependencies': [ 'tools/v8_gypfiles/abseil.gyp:abseil' ],