Skip to content

Commit 297a4dd

Browse files
legendecasnodejs-github-bot
authored andcommitted
src: add a hard dependency v8_inspector_headers
A GYP hard dependency instructs GYP to not remove the dependency link between two static library targets in its generated output. This allows V8 dependents to include V8 inspector protocol headers. PR-URL: nodejs#56805 Refs: nodejs#53946 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Kohei Ueno <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]>
1 parent bf12d72 commit 297a4dd

File tree

3 files changed

+57
-40
lines changed

3 files changed

+57
-40
lines changed

src/inspector/node_inspector.gypi

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
'variables': {
33
'protocol_tool_path': '../../deps/inspector_protocol',
44
'jinja_dir': '../../tools/inspector_protocol',
5+
'v8_gypfiles_dir': '../../tools/v8_gypfiles',
56
'node_inspector_sources': [
67
'src/inspector_agent.cc',
78
'src/inspector_io.cc',
@@ -74,6 +75,7 @@
7475
],
7576
'dependencies': [
7677
'<(protocol_tool_path)/inspector_protocol.gyp:crdtp',
78+
'<(v8_gypfiles_dir)/v8.gyp:v8_inspector_headers',
7779
],
7880
'actions': [
7981
{

tools/v8_gypfiles/inspector.gypi

+2-40
Original file line numberDiff line numberDiff line change
@@ -129,51 +129,13 @@
129129
'<(inspector_protocol_path)/crdtp/span.h',
130130
'<(inspector_protocol_path)/crdtp/status.cc',
131131
'<(inspector_protocol_path)/crdtp/status.h',
132+
133+
'<@(inspector_generated_sources)',
132134
],
133135
'v8_inspector_js_protocol': '<(V8_ROOT)/include/js_protocol.pdl',
134136
},
135137
'include_dirs': [
136138
'<(inspector_generated_output_root)',
137139
'<(inspector_protocol_path)',
138140
],
139-
'actions': [
140-
{
141-
'action_name': 'protocol_compatibility',
142-
'inputs': [
143-
'<(v8_inspector_js_protocol)',
144-
],
145-
'outputs': [
146-
'<@(inspector_generated_output_root)/src/js_protocol.stamp',
147-
],
148-
'action': [
149-
'<(python)',
150-
'<(inspector_protocol_path)/check_protocol_compatibility.py',
151-
'--stamp', '<@(_outputs)',
152-
'<@(_inputs)',
153-
],
154-
'message': 'Checking inspector protocol compatibility',
155-
},
156-
{
157-
'action_name': 'protocol_generated_sources',
158-
'inputs': [
159-
'<(v8_inspector_js_protocol)',
160-
'<(inspector_path)/inspector_protocol_config.json',
161-
'<@(inspector_protocol_files)',
162-
],
163-
'outputs': [
164-
'<@(inspector_generated_sources)',
165-
],
166-
'process_outputs_as_sources': 1,
167-
'action': [
168-
'<(python)',
169-
'<(inspector_protocol_path)/code_generator.py',
170-
'--jinja_dir', '<(V8_ROOT)/third_party',
171-
'--output_base', '<(inspector_generated_output_root)/src/inspector',
172-
'--config', '<(inspector_path)/inspector_protocol_config.json',
173-
'--config_value', 'protocol.path=<(v8_inspector_js_protocol)',
174-
'--inspector_protocol_dir', '<(inspector_protocol_path)',
175-
],
176-
'message': 'Generating inspector protocol sources from protocol json',
177-
},
178-
],
179141
}

tools/v8_gypfiles/v8.gyp

+53
Original file line numberDiff line numberDiff line change
@@ -1002,6 +1002,58 @@
10021002
}],
10031003
],
10041004
}, # v8_compiler_for_mksnapshot
1005+
{
1006+
'target_name': 'v8_inspector_headers',
1007+
'type': 'none',
1008+
'toolsets': ['host', 'target'],
1009+
'hard_dependency': 1,
1010+
'includes': ['inspector.gypi'],
1011+
'direct_dependent_settings': {
1012+
'include_dirs': [
1013+
'<(inspector_generated_output_root)/include',
1014+
],
1015+
},
1016+
'actions': [
1017+
{
1018+
'action_name': 'protocol_compatibility',
1019+
'inputs': [
1020+
'<(v8_inspector_js_protocol)',
1021+
],
1022+
'outputs': [
1023+
'<@(inspector_generated_output_root)/src/js_protocol.stamp',
1024+
],
1025+
'action': [
1026+
'<(python)',
1027+
'<(inspector_protocol_path)/check_protocol_compatibility.py',
1028+
'--stamp', '<@(_outputs)',
1029+
'<@(_inputs)',
1030+
],
1031+
'message': 'Checking inspector protocol compatibility',
1032+
},
1033+
{
1034+
'action_name': 'protocol_generated_sources',
1035+
'inputs': [
1036+
'<(v8_inspector_js_protocol)',
1037+
'<(inspector_path)/inspector_protocol_config.json',
1038+
'<@(inspector_protocol_files)',
1039+
],
1040+
'outputs': [
1041+
'<@(inspector_generated_sources)',
1042+
],
1043+
'process_outputs_as_sources': 1,
1044+
'action': [
1045+
'<(python)',
1046+
'<(inspector_protocol_path)/code_generator.py',
1047+
'--jinja_dir', '<(V8_ROOT)/third_party',
1048+
'--output_base', '<(inspector_generated_output_root)/src/inspector',
1049+
'--config', '<(inspector_path)/inspector_protocol_config.json',
1050+
'--config_value', 'protocol.path=<(v8_inspector_js_protocol)',
1051+
'--inspector_protocol_dir', '<(inspector_protocol_path)',
1052+
],
1053+
'message': 'Generating inspector protocol sources from protocol json',
1054+
},
1055+
],
1056+
}, # v8_inspector_headers
10051057
{
10061058
'target_name': 'v8_base_without_compiler',
10071059
'type': 'static_library',
@@ -1011,6 +1063,7 @@
10111063
'v8_bigint',
10121064
'v8_headers',
10131065
'v8_heap_base',
1066+
'v8_inspector_headers',
10141067
'v8_libbase',
10151068
'v8_shared_internal_headers',
10161069
'v8_version',

0 commit comments

Comments
 (0)