Skip to content

Commit b54b3cc

Browse files
legendecasJason Zhang
authored and
Jason Zhang
committed
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: nodejs#53605 Fixes: nodejs#53446 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent 47be236 commit b54b3cc

File tree

3 files changed

+15
-12
lines changed

3 files changed

+15
-12
lines changed

configure.py

+15-5
Original file line numberDiff line numberDiff line change
@@ -1268,6 +1268,9 @@ def host_arch_win():
12681268

12691269
return matchup.get(arch, 'ia32')
12701270

1271+
def set_configuration_variable(configs, name, release=None, debug=None):
1272+
configs['Release'][name] = release
1273+
configs['Debug'][name] = debug
12711274

12721275
def configure_arm(o):
12731276
if options.arm_float_abi:
@@ -1584,7 +1587,9 @@ def configure_library(lib, output, pkgname=None):
15841587
output['libraries'] += pkg_libs.split()
15851588

15861589

1587-
def configure_v8(o):
1590+
def configure_v8(o, configs):
1591+
set_configuration_variable(configs, 'v8_enable_v8_checks', release=1, debug=0)
1592+
15881593
o['variables']['v8_enable_webassembly'] = 0 if options.v8_lite_mode else 1
15891594
o['variables']['v8_enable_javascript_promise_hooks'] = 1
15901595
o['variables']['v8_enable_lite_mode'] = 1 if options.v8_lite_mode else 0
@@ -1602,7 +1607,6 @@ def configure_v8(o):
16021607
o['variables']['v8_enable_31bit_smis_on_64bit_arch'] = 1 if options.enable_pointer_compression else 0
16031608
o['variables']['v8_enable_shared_ro_heap'] = 0 if options.enable_pointer_compression or options.disable_shared_ro_heap else 1
16041609
o['variables']['v8_enable_extensible_ro_snapshot'] = 0
1605-
o['variables']['v8_enable_v8_checks'] = 1 if options.debug else 0
16061610
o['variables']['v8_trace_maps'] = 1 if options.trace_maps else 0
16071611
o['variables']['node_use_v8_platform'] = b(not options.without_v8_platform)
16081612
o['variables']['node_use_bundled_v8'] = b(not options.without_bundled_v8)
@@ -2118,6 +2122,10 @@ def make_bin_override():
21182122
'defines': [],
21192123
'cflags': [],
21202124
}
2125+
configurations = {
2126+
'Release': { 'variables': {} },
2127+
'Debug': { 'variables': {} },
2128+
}
21212129

21222130
# Print a warning when the compiler is too old.
21232131
check_compiler(output)
@@ -2144,7 +2152,7 @@ def make_bin_override():
21442152
configure_library('nghttp3', output, pkgname='libnghttp3')
21452153
configure_library('ngtcp2', output, pkgname='libngtcp2')
21462154
configure_library('uvwasi', output, pkgname='libuvwasi')
2147-
configure_v8(output)
2155+
configure_v8(output, configurations)
21482156
configure_openssl(output)
21492157
configure_intl(output)
21502158
configure_static(output)
@@ -2167,7 +2175,6 @@ def make_bin_override():
21672175
# move everything else to target_defaults
21682176
variables = output['variables']
21692177
del output['variables']
2170-
variables['is_debug'] = B(options.debug)
21712178

21722179
# make_global_settings should be a root level element too
21732180
if 'make_global_settings' in output:
@@ -2176,6 +2183,9 @@ def make_bin_override():
21762183
else:
21772184
make_global_settings = False
21782185

2186+
# Add configurations to target defaults
2187+
output['configurations'] = configurations
2188+
21792189
output = {
21802190
'variables': variables,
21812191
'target_defaults': output,
@@ -2186,7 +2196,7 @@ def make_bin_override():
21862196
print_verbose(output)
21872197

21882198
write('config.gypi', do_not_edit +
2189-
pprint.pformat(output, indent=2, width=1024) + '\n')
2199+
pprint.pformat(output, indent=2, width=128) + '\n')
21902200

21912201
write('config.status', '#!/bin/sh\nset -x\nexec ./configure ' +
21922202
' '.join([shlex.quote(arg) for arg in original_argv]) + '\n')

tools/v8_gypfiles/features.gypi

-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@
8888
'v8_enable_private_mapping_fork_optimization': 0,
8989
}],
9090
],
91-
'is_debug%': 0,
9291

9392
# Variables from BUILD.gn
9493

tools/v8_gypfiles/toolchain.gypi

-6
Original file line numberDiff line numberDiff line change
@@ -695,13 +695,7 @@
695695
'configurations': {
696696
'Debug': {
697697
'defines': [
698-
'ENABLE_DISASSEMBLER',
699-
'V8_ENABLE_CHECKS',
700-
'OBJECT_PRINT',
701698
'DEBUG',
702-
'V8_TRACE_MAPS',
703-
'V8_ENABLE_ALLOCATION_TIMEOUT',
704-
'V8_ENABLE_FORCE_SLOW_PATH',
705699
],
706700
'conditions': [
707701
['OS=="linux" and v8_enable_backtrace==1', {

0 commit comments

Comments
 (0)