current commit
261105.10 · build: use a single producer for shared generated files
{
  'variables': {
    'protocol_tool_path': '../../deps/inspector_protocol',
    'jinja_dir': '../../tools/inspector_protocol',
    'v8_gypfiles_dir': '../../tools/v8_gypfiles',
    'node_inspector_sources': [
      'src/inspector_agent.cc',
      'src/inspector_io.cc',
      'src/inspector_agent.h',
      'src/inspector_io.h',
      'src/inspector_profiler.h',
      'src/inspector_profiler.cc',
      'src/inspector_js_api.cc',
      'src/inspector_socket.cc',
      'src/inspector_socket.h',
      'src/inspector_socket_server.cc',
      'src/inspector_socket_server.h',
      'src/inspector/main_thread_interface.cc',
      'src/inspector/main_thread_interface.h',
      'src/inspector/node_json.cc',
      'src/inspector/node_json.h',
      'src/inspector/node_string.cc',
      'src/inspector/node_string.h',
      'src/inspector/protocol_helper.h',
      'src/inspector/runtime_agent.cc',
      'src/inspector/runtime_agent.h',
      'src/inspector/worker_agent.cc',
      'src/inspector/worker_agent.h',
      'src/inspector/network_inspector.cc',
      'src/inspector/network_inspector.h',
      'src/inspector/network_agent.cc',
      'src/inspector/network_agent.h',
      'src/inspector/target_manager.cc',
      'src/inspector/target_manager.h',
      'src/inspector/target_agent.cc',
      'src/inspector/target_agent.h',
      'src/inspector/worker_inspector.cc',
      'src/inspector/worker_inspector.h',
      'src/inspector/io_agent.cc',
      'src/inspector/io_agent.h',
      'src/inspector/network_resource_manager.cc',
      'src/inspector/network_resource_manager.h',
      'src/inspector/dom_storage_agent.cc',
      'src/inspector/dom_storage_agent.h',
      'src/inspector/inspector_object_utils.cc',
      'src/inspector/inspector_object_utils.h',
      'src/inspector/storage_agent.h',
      'src/inspector/storage_agent.cc',
      'src/inspector/notification_emitter.h',
      'src/inspector/notification_emitter.cc',
    ],
    'node_inspector_without_perfetto_sources': [
      'src/inspector/tracing_agent.cc',
      'src/inspector/tracing_agent.h',
    ],
    'node_inspector_generated_sources': [
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Forward.h',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Protocol.cpp',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Protocol.h',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeWorker.cpp',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeWorker.h',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeTracing.cpp',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeTracing.h',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeRuntime.cpp',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/NodeRuntime.h',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Network.cpp',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Network.h',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Target.cpp',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Target.h',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/IO.h',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/IO.cpp',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/DOMStorage.h',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/DOMStorage.cpp',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Storage.cpp',
      '<(SHARED_INTERMEDIATE_DIR)/src/node/inspector/protocol/Storage.h',
    ],
    'node_protocol_files': [
      '<(protocol_tool_path)/lib/Forward_h.template',
      '<(protocol_tool_path)/lib/Object_cpp.template',
      '<(protocol_tool_path)/lib/Object_h.template',
      '<(protocol_tool_path)/lib/Protocol_cpp.template',
      '<(protocol_tool_path)/lib/ValueConversions_cpp.template',
      '<(protocol_tool_path)/lib/ValueConversions_h.template',
      '<(protocol_tool_path)/lib/Values_cpp.template',
      '<(protocol_tool_path)/lib/Values_h.template',
      '<(protocol_tool_path)/templates/Exported_h.template',
      '<(protocol_tool_path)/templates/Imported_h.template',
      '<(protocol_tool_path)/templates/TypeBuilder_cpp.template',
      '<(protocol_tool_path)/templates/TypeBuilder_h.template',
    ],
    'node_pdl_files': [
      'node_protocol.pdl',
      'domain_io.pdl',
      'domain_network.pdl',
      'domain_node_runtime.pdl',
      'domain_node_tracing.pdl',
      'domain_node_worker.pdl',
      'domain_target.pdl',
      'domain_dom_storage.pdl',
      'domain_storage.pdl',
    ],
  },
  'defines': [
    'HAVE_INSPECTOR=1',
  ],
  'sources': [
    '<@(node_inspector_sources)',
  ],
  'include_dirs': [
    '<(SHARED_INTERMEDIATE_DIR)/include', # for inspector
    '<(SHARED_INTERMEDIATE_DIR)',
    '<(SHARED_INTERMEDIATE_DIR)/src', # for inspector
  ],
  'dependencies': [
    '<(protocol_tool_path)/inspector_protocol.gyp:crdtp',
    '<(v8_gypfiles_dir)/v8.gyp:v8_inspector_headers#target',
  ],
  'actions': [
    {
      'action_name': 'convert_node_protocol_to_json',
      'inputs': [
        '<@(node_pdl_files)',
      ],
      'outputs': [
        '<(SHARED_INTERMEDIATE_DIR)/src/node_protocol.json',
      ],
      'action': [
        '<(python)',
        '<(protocol_tool_path)/convert_protocol_to_json.py',
        'src/inspector/node_protocol.pdl',
        '<@(_outputs)',
      ],
    },
    {
      'action_name': 'node_protocol_generated_sources',
      'inputs': [
        'node_protocol_config.json',
        '<@(node_pdl_files)',
        '<(SHARED_INTERMEDIATE_DIR)/src/node_protocol.json',
        '<@(node_protocol_files)',
        '<(protocol_tool_path)/code_generator.py',
      ],
      'outputs': [
        '<@(node_inspector_generated_sources)',
      ],
      'process_outputs_as_sources': 1,
      'action': [
        '<(python)',
        '<(protocol_tool_path)/code_generator.py',
        '--inspector_protocol_dir', '<(protocol_tool_path)',
        '--jinja_dir', '<(jinja_dir)',
        '--output_base', '<(SHARED_INTERMEDIATE_DIR)/src/',
        '--config', 'src/inspector/node_protocol_config.json',
      ],
      'message': 'Generating node protocol sources from protocol json',
    },
    {
      'action_name': 'concatenate_protocols',
      'inputs': [
        '../../deps/v8/include/js_protocol.pdl',
        '<(SHARED_INTERMEDIATE_DIR)/src/node_protocol.json',
      ],
      'outputs': [
        '<(SHARED_INTERMEDIATE_DIR)/concatenated_protocol.json',
      ],
      'action': [
        '<(python)',
        '<(protocol_tool_path)/concatenate_protocols.py',
        '<@(_inputs)',
        '<@(_outputs)',
      ],
    },
    {
      'action_name': 'v8_inspector_compress_protocol_json',
      'inputs': [
        '<(SHARED_INTERMEDIATE_DIR)/concatenated_protocol.json',
      ],
      'outputs': [
        '<(SHARED_INTERMEDIATE_DIR)/v8_inspector_protocol_json.h',
      ],
      'process_outputs_as_sources': 1,
      'action': [
        '<(python)',
        'tools/compress_json.py',
        '<@(_inputs)',
        '<@(_outputs)',
      ],
    },
  ],
  'conditions': [
    ['v8_use_perfetto!=1', {
      'sources': [
        '<@(node_inspector_without_perfetto_sources)',
      ],
    }],
  ],
}