Skip to content

Commit d0bf9dd

Browse files
committed
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.
1 parent 0aa5874 commit d0bf9dd

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
@@ -1017,6 +1017,58 @@
10171017
}],
10181018
],
10191019
}, # v8_compiler_for_mksnapshot
1020+
{
1021+
'target_name': 'v8_inspector_headers',
1022+
'type': 'none',
1023+
'toolsets': ['host', 'target'],
1024+
'hard_dependency': 1,
1025+
'includes': ['inspector.gypi'],
1026+
'direct_dependent_settings': {
1027+
'include_dirs': [
1028+
'<(inspector_generated_output_root)/include',
1029+
],
1030+
},
1031+
'actions': [
1032+
{
1033+
'action_name': 'protocol_compatibility',
1034+
'inputs': [
1035+
'<(v8_inspector_js_protocol)',
1036+
],
1037+
'outputs': [
1038+
'<@(inspector_generated_output_root)/src/js_protocol.stamp',
1039+
],
1040+
'action': [
1041+
'<(python)',
1042+
'<(inspector_protocol_path)/check_protocol_compatibility.py',
1043+
'--stamp', '<@(_outputs)',
1044+
'<@(_inputs)',
1045+
],
1046+
'message': 'Checking inspector protocol compatibility',
1047+
},
1048+
{
1049+
'action_name': 'protocol_generated_sources',
1050+
'inputs': [
1051+
'<(v8_inspector_js_protocol)',
1052+
'<(inspector_path)/inspector_protocol_config.json',
1053+
'<@(inspector_protocol_files)',
1054+
],
1055+
'outputs': [
1056+
'<@(inspector_generated_sources)',
1057+
],
1058+
'process_outputs_as_sources': 1,
1059+
'action': [
1060+
'<(python)',
1061+
'<(inspector_protocol_path)/code_generator.py',
1062+
'--jinja_dir', '<(V8_ROOT)/third_party',
1063+
'--output_base', '<(inspector_generated_output_root)/src/inspector',
1064+
'--config', '<(inspector_path)/inspector_protocol_config.json',
1065+
'--config_value', 'protocol.path=<(v8_inspector_js_protocol)',
1066+
'--inspector_protocol_dir', '<(inspector_protocol_path)',
1067+
],
1068+
'message': 'Generating inspector protocol sources from protocol json',
1069+
},
1070+
],
1071+
}, # v8_inspector_headers
10201072
{
10211073
'target_name': 'v8_base_without_compiler',
10221074
'type': 'static_library',
@@ -1026,6 +1078,7 @@
10261078
'v8_bigint',
10271079
'v8_headers',
10281080
'v8_heap_base',
1081+
'v8_inspector_headers',
10291082
'v8_libbase',
10301083
'v8_shared_internal_headers',
10311084
'v8_version',

0 commit comments

Comments
 (0)