mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 21:19:50 +01:00
build: fix conflict gyp configs
Gyp generated build files can be built in either Release/Debug mode. - make: single directory, two configurations by cli: `make -C out BUILDTYPE=Release` and `make -C out BUILDTYPE=Debug`. - msbuild: single directory, two configurations by cli: `msbuild node.sln /p:Configuration=Release` and `msbuild node.sln /p:Configuration=Debug`. - ninja: two directories in `out/`, build with `ninja -C out/Release` or `ninja -C out/Debug`. Variables that changes with either Release or Debug configuration should be defined in a configuration level, instead of the root level. This fixes generating invalid build files. Additionally, `v8_gypfiles/toolchain.gypi` duplicates defines in `v8_gypfiles/features.gypi`. Remove the duplications in `toolchains.gypi` PR-URL: https://github.com/nodejs/node/pull/53605 Fixes: https://github.com/nodejs/node/issues/53446 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
b19a950102
commit
e192a32c27
20
configure.py
20
configure.py
@ -1305,6 +1305,9 @@ def host_arch_win():
|
||||
|
||||
return matchup.get(arch, 'x64')
|
||||
|
||||
def set_configuration_variable(configs, name, release=None, debug=None):
|
||||
configs['Release'][name] = release
|
||||
configs['Debug'][name] = debug
|
||||
|
||||
def configure_arm(o):
|
||||
if options.arm_float_abi:
|
||||
@ -1619,7 +1622,9 @@ def configure_library(lib, output, pkgname=None):
|
||||
output['libraries'] += pkg_libs.split()
|
||||
|
||||
|
||||
def configure_v8(o):
|
||||
def configure_v8(o, configs):
|
||||
set_configuration_variable(configs, 'v8_enable_v8_checks', release=1, debug=0)
|
||||
|
||||
o['variables']['v8_enable_webassembly'] = 0 if options.v8_lite_mode else 1
|
||||
o['variables']['v8_enable_javascript_promise_hooks'] = 1
|
||||
o['variables']['v8_enable_lite_mode'] = 1 if options.v8_lite_mode else 0
|
||||
@ -1637,7 +1642,6 @@ def configure_v8(o):
|
||||
o['variables']['v8_enable_31bit_smis_on_64bit_arch'] = 1 if options.enable_pointer_compression else 0
|
||||
o['variables']['v8_enable_shared_ro_heap'] = 0 if options.enable_pointer_compression or options.disable_shared_ro_heap else 1
|
||||
o['variables']['v8_enable_extensible_ro_snapshot'] = 0
|
||||
o['variables']['v8_enable_v8_checks'] = 1 if options.debug else 0
|
||||
o['variables']['v8_trace_maps'] = 1 if options.trace_maps else 0
|
||||
o['variables']['node_use_v8_platform'] = b(not options.without_v8_platform)
|
||||
o['variables']['node_use_bundled_v8'] = b(not options.without_bundled_v8)
|
||||
@ -2153,6 +2157,10 @@ output = {
|
||||
'defines': [],
|
||||
'cflags': [],
|
||||
}
|
||||
configurations = {
|
||||
'Release': { 'variables': {} },
|
||||
'Debug': { 'variables': {} },
|
||||
}
|
||||
|
||||
# Print a warning when the compiler is too old.
|
||||
check_compiler(output)
|
||||
@ -2180,7 +2188,7 @@ configure_library('nghttp3', output, pkgname='libnghttp3')
|
||||
configure_library('ngtcp2', output, pkgname='libngtcp2')
|
||||
configure_library('sqlite', output, pkgname='sqlite3')
|
||||
configure_library('uvwasi', output, pkgname='libuvwasi')
|
||||
configure_v8(output)
|
||||
configure_v8(output, configurations)
|
||||
configure_openssl(output)
|
||||
configure_intl(output)
|
||||
configure_static(output)
|
||||
@ -2203,7 +2211,6 @@ output['variables']['ossfuzz'] = b(options.ossfuzz)
|
||||
# move everything else to target_defaults
|
||||
variables = output['variables']
|
||||
del output['variables']
|
||||
variables['is_debug'] = B(options.debug)
|
||||
|
||||
# make_global_settings should be a root level element too
|
||||
if 'make_global_settings' in output:
|
||||
@ -2212,6 +2219,9 @@ if 'make_global_settings' in output:
|
||||
else:
|
||||
make_global_settings = False
|
||||
|
||||
# Add configurations to target defaults
|
||||
output['configurations'] = configurations
|
||||
|
||||
output = {
|
||||
'variables': variables,
|
||||
'target_defaults': output,
|
||||
@ -2222,7 +2232,7 @@ if make_global_settings:
|
||||
print_verbose(output)
|
||||
|
||||
write('config.gypi', do_not_edit +
|
||||
pprint.pformat(output, indent=2, width=1024) + '\n')
|
||||
pprint.pformat(output, indent=2, width=128) + '\n')
|
||||
|
||||
write('config.status', '#!/bin/sh\nset -x\nexec ./configure ' +
|
||||
' '.join([shlex.quote(arg) for arg in original_argv]) + '\n')
|
||||
|
@ -88,7 +88,6 @@
|
||||
'v8_enable_private_mapping_fork_optimization': 0,
|
||||
}],
|
||||
],
|
||||
'is_debug%': 0,
|
||||
|
||||
# Variables from BUILD.gn
|
||||
|
||||
|
@ -703,13 +703,7 @@
|
||||
'configurations': {
|
||||
'Debug': {
|
||||
'defines': [
|
||||
'ENABLE_DISASSEMBLER',
|
||||
'V8_ENABLE_CHECKS',
|
||||
'OBJECT_PRINT',
|
||||
'DEBUG',
|
||||
'V8_TRACE_MAPS',
|
||||
'V8_ENABLE_ALLOCATION_TIMEOUT',
|
||||
'V8_ENABLE_FORCE_SLOW_PATH',
|
||||
],
|
||||
'conditions': [
|
||||
['OS=="linux" and v8_enable_backtrace==1', {
|
||||
|
Loading…
Reference in New Issue
Block a user