tools: add v8windbg target · nodejs/node@377bdb9 · GitHub
Skip to content

Commit 377bdb9

Browse files
legendecastargos
authored andcommitted
tools: add v8windbg target
PR-URL: #59767 Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
1 parent d944a87 commit 377bdb9

4 files changed

Lines changed: 183 additions & 0 deletions

File tree

configure.py

Lines changed: 9 additions & 0 deletions

node.gypi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@
8585
[ 'node_enable_d8=="true"', {
8686
'dependencies': [ 'tools/v8_gypfiles/d8.gyp:d8' ],
8787
}],
88+
[ 'node_enable_v8windbg=="true"', {
89+
'dependencies': [ 'tools/v8_gypfiles/v8windbg.gyp:build_v8windbg' ],
90+
}],
8891
[ 'node_use_bundled_v8=="true"', {
8992
'dependencies': [
9093
'tools/v8_gypfiles/v8.gyp:v8_snapshot',

tools/v8_gypfiles/v8windbg.gyp

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
{
2+
'variables': {
3+
'V8_ROOT': '../../deps/v8',
4+
'v8_code': 1,
5+
},
6+
'includes': ['toolchain.gypi', 'features.gypi'],
7+
'targets': [
8+
{
9+
# Intermediate target to build v8windbg.dll.
10+
# This prevents the dependent settings like node.gypi to link the v8windbg.dll
11+
# to the dependent. v8windbg.dll is only supposed to be loaded by WinDbg at debug time.
12+
'target_name': 'build_v8windbg',
13+
'type': 'none',
14+
'hard_dependency': 1,
15+
'dependencies': [
16+
'v8windbg',
17+
],
18+
}, # build_v8windbg
19+
{
20+
'target_name': 'v8windbg',
21+
'type': 'shared_library',
22+
'include_dirs': [
23+
'<(V8_ROOT)',
24+
'<(V8_ROOT)/include',
25+
],
26+
'dependencies': [
27+
'v8_debug_helper',
28+
'v8.gyp:v8_libbase',
29+
],
30+
'sources': [
31+
'<!@pymod_do_main(GN-scraper "<(V8_ROOT)/tools/v8windbg/BUILD.gn" "v8windbg_base.*?sources = ")',
32+
'<!@pymod_do_main(GN-scraper "<(V8_ROOT)/tools/v8windbg/BUILD.gn" "v8_shared_library..v8windbg.*?sources = ")',
33+
],
34+
"link_settings": {
35+
"libraries": [
36+
"-lDbgEng.lib",
37+
"-lDbgModel.lib",
38+
"-lRuntimeObject.lib",
39+
"-lcomsuppwd.lib",
40+
],
41+
},
42+
}, # v8windbg
43+
{
44+
'target_name': 'v8_debug_helper',
45+
'type': 'static_library',
46+
'include_dirs': [
47+
'<(V8_ROOT)',
48+
'<(V8_ROOT)/include',
49+
],
50+
'dependencies': [
51+
'gen_heap_constants',
52+
53+
'abseil.gyp:abseil',
54+
'v8.gyp:generate_bytecode_builtins_list',
55+
'v8.gyp:run_torque',
56+
'v8.gyp:v8_maybe_icu',
57+
'v8.gyp:fp16',
58+
'v8.gyp:v8_libbase',
59+
'v8.gyp:v8_snapshot',
60+
],
61+
'sources': [
62+
'<!@pymod_do_main(GN-scraper "<(V8_ROOT)/tools/debug_helper/BUILD.gn" "\"v8_debug_helper_internal\".*?sources = ")',
63+
"<(SHARED_INTERMEDIATE_DIR)/torque-generated/class-debug-readers.cc",
64+
"<(SHARED_INTERMEDIATE_DIR)/torque-generated/class-debug-readers.h",
65+
"<(SHARED_INTERMEDIATE_DIR)/torque-generated/debug-macros.cc",
66+
"<(SHARED_INTERMEDIATE_DIR)/torque-generated/debug-macros.h",
67+
"<(SHARED_INTERMEDIATE_DIR)/torque-generated/instance-types.h",
68+
],
69+
# Enable RTTI //build/config/compiler:rtti
70+
'cflags_cc': [ '-frtti' ],
71+
'cflags_cc!': [ '-fno-rtti' ],
72+
'xcode_settings': {
73+
'GCC_ENABLE_CPP_RTTI': 'YES', # -frtti
74+
},
75+
'msvs_settings': {
76+
'VCCLCompilerTool': {
77+
'RuntimeTypeInfo': 'true',
78+
},
79+
},
80+
'configurations': {
81+
'Release': { # Override target_defaults.Release in common.gypi
82+
'msvs_settings': {
83+
'VCCLCompilerTool': {
84+
'RuntimeTypeInfo': 'true',
85+
},
86+
},
87+
},
88+
},
89+
}, # v8_debug_helper
90+
{
91+
'target_name': 'gen_heap_constants',
92+
'type': 'none',
93+
'hard_dependency': 1,
94+
'dependencies': [
95+
'run_mkgrokdump',
96+
],
97+
'direct_dependent_settings': {
98+
'sources': [
99+
'<(SHARED_INTERMEDIATE_DIR)/heap-constants-gen.cc',
100+
],
101+
},
102+
'actions': [
103+
{
104+
'action_name': 'run_gen_heap_constants',
105+
'inputs': [
106+
'<(V8_ROOT)/tools/debug_helper/gen-heap-constants.py',
107+
],
108+
'outputs': [
109+
'<(SHARED_INTERMEDIATE_DIR)/heap-constants-gen.cc',
110+
],
111+
'action': [
112+
'<(python)',
113+
'<(V8_ROOT)/tools/debug_helper/gen-heap-constants.py',
114+
'<(SHARED_INTERMEDIATE_DIR)',
115+
'<@(_outputs)',
116+
]
117+
}
118+
]
119+
}, # gen_heap_constants
120+
{
121+
'target_name': 'run_mkgrokdump',
122+
'type': 'none',
123+
'hard_dependency': 1,
124+
'dependencies': [
125+
'mkgrokdump',
126+
],
127+
'actions': [
128+
{
129+
'action_name': 'run_gen_heap_constants',
130+
'inputs': [
131+
'<(V8_ROOT)/tools/run.py',
132+
],
133+
'outputs': [
134+
'<(SHARED_INTERMEDIATE_DIR)/v8heapconst.py',
135+
],
136+
'action': [
137+
'<(python)',
138+
'<(V8_ROOT)/tools/run.py',
139+
'<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkgrokdump<(EXECUTABLE_SUFFIX)',
140+
'--outfile',
141+
'<@(_outputs)',
142+
]
143+
}
144+
]
145+
}, # run_mkgrokdump
146+
{
147+
'target_name': 'mkgrokdump',
148+
'type': 'executable',
149+
'include_dirs': [
150+
'<(V8_ROOT)',
151+
'<(V8_ROOT)/include',
152+
],
153+
'dependencies': [
154+
'abseil.gyp:abseil',
155+
'v8.gyp:v8_snapshot',
156+
'v8.gyp:v8_libbase',
157+
'v8.gyp:v8_libplatform',
158+
'v8.gyp:v8_maybe_icu',
159+
'v8.gyp:fp16',
160+
'v8.gyp:generate_bytecode_builtins_list',
161+
'v8.gyp:run_torque',
162+
],
163+
'sources': [
164+
'<!@pymod_do_main(GN-scraper "<(V8_ROOT)/test/mkgrokdump/BUILD.gn" "mkgrokdump.*?sources = ")',
165+
]
166+
}, # mkgrokdump
167+
],
168+
}

vcbuild.bat

Lines changed: 3 additions & 0 deletions

0 commit comments

Comments
 (0)