# Copyright 2016 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

{
  'variables': {
    'inspector_protocol_path': '<(DEPTH)/v8/third_party/inspector_protocol',
    'inspector_protocol_files': [
      '<(inspector_protocol_path)/lib/base_string_adapter_cc.template',
      '<(inspector_protocol_path)/lib/base_string_adapter_h.template',
      '<(inspector_protocol_path)/lib/DispatcherBase_cpp.template',
      '<(inspector_protocol_path)/lib/DispatcherBase_h.template',
      '<(inspector_protocol_path)/lib/ErrorSupport_cpp.template',
      '<(inspector_protocol_path)/lib/ErrorSupport_h.template',
      '<(inspector_protocol_path)/lib/Forward_h.template',
      '<(inspector_protocol_path)/lib/FrontendChannel_h.template',
      '<(inspector_protocol_path)/lib/Object_cpp.template',
      '<(inspector_protocol_path)/lib/Object_h.template',
      '<(inspector_protocol_path)/lib/Parser_cpp.template',
      '<(inspector_protocol_path)/lib/Parser_h.template',
      '<(inspector_protocol_path)/lib/Protocol_cpp.template',
      '<(inspector_protocol_path)/lib/ValueConversions_h.template',
      '<(inspector_protocol_path)/lib/Values_cpp.template',
      '<(inspector_protocol_path)/lib/Values_h.template',
      '<(inspector_protocol_path)/templates/Exported_h.template',
      '<(inspector_protocol_path)/templates/Imported_h.template',
      '<(inspector_protocol_path)/templates/TypeBuilder_cpp.template',
      '<(inspector_protocol_path)/templates/TypeBuilder_h.template',
      '<(inspector_protocol_path)/code_generator.py',
    ],
    'inspector_path': '<(DEPTH)/v8/src/inspector',
    'inspector_generated_output_root': '<(SHARED_INTERMEDIATE_DIR)/inspector-generated-output-root',
    'inspector_generated_sources': [
      '<(inspector_generated_output_root)/src/inspector/protocol/Forward.h',
      '<(inspector_generated_output_root)/src/inspector/protocol/Protocol.cpp',
      '<(inspector_generated_output_root)/src/inspector/protocol/Protocol.h',
      '<(inspector_generated_output_root)/src/inspector/protocol/Console.cpp',
      '<(inspector_generated_output_root)/src/inspector/protocol/Console.h',
      '<(inspector_generated_output_root)/src/inspector/protocol/Debugger.cpp',
      '<(inspector_generated_output_root)/src/inspector/protocol/Debugger.h',
      '<(inspector_generated_output_root)/src/inspector/protocol/HeapProfiler.cpp',
      '<(inspector_generated_output_root)/src/inspector/protocol/HeapProfiler.h',
      '<(inspector_generated_output_root)/src/inspector/protocol/Profiler.cpp',
      '<(inspector_generated_output_root)/src/inspector/protocol/Profiler.h',
      '<(inspector_generated_output_root)/src/inspector/protocol/Runtime.cpp',
      '<(inspector_generated_output_root)/src/inspector/protocol/Runtime.h',
      '<(inspector_generated_output_root)/src/inspector/protocol/Schema.cpp',
      '<(inspector_generated_output_root)/src/inspector/protocol/Schema.h',
      '<(inspector_generated_output_root)/include/inspector/Debugger.h',
      '<(inspector_generated_output_root)/include/inspector/Runtime.h',
      '<(inspector_generated_output_root)/include/inspector/Schema.h',
    ],

    'inspector_all_sources': [
      '<@(inspector_generated_sources)',
      '<(DEPTH)/v8/include/v8-inspector.h',
      '<(DEPTH)/v8/include/v8-inspector-protocol.h',
      '<(DEPTH)/v8/src/inspector/custom-preview.cc',
      '<(DEPTH)/v8/src/inspector/custom-preview.h',
      '<(DEPTH)/v8/src/inspector/injected-script.cc',
      '<(DEPTH)/v8/src/inspector/injected-script.h',
      '<(DEPTH)/v8/src/inspector/inspected-context.cc',
      '<(DEPTH)/v8/src/inspector/inspected-context.h',
      '<(DEPTH)/v8/src/inspector/remote-object-id.cc',
      '<(DEPTH)/v8/src/inspector/remote-object-id.h',
      '<(DEPTH)/v8/src/inspector/search-util.cc',
      '<(DEPTH)/v8/src/inspector/search-util.h',
      '<(DEPTH)/v8/src/inspector/string-16.cc',
      '<(DEPTH)/v8/src/inspector/string-16.h',
      '<(DEPTH)/v8/src/inspector/string-util.cc',
      '<(DEPTH)/v8/src/inspector/string-util.h',
      '<(DEPTH)/v8/src/inspector/test-interface.cc',
      '<(DEPTH)/v8/src/inspector/test-interface.h',
      '<(DEPTH)/v8/src/inspector/v8-console.cc',
      '<(DEPTH)/v8/src/inspector/v8-console.h',
      '<(DEPTH)/v8/src/inspector/v8-console-agent-impl.cc',
      '<(DEPTH)/v8/src/inspector/v8-console-agent-impl.h',
      '<(DEPTH)/v8/src/inspector/v8-console-message.cc',
      '<(DEPTH)/v8/src/inspector/v8-console-message.h',
      '<(DEPTH)/v8/src/inspector/v8-debugger.cc',
      '<(DEPTH)/v8/src/inspector/v8-debugger.h',
      '<(DEPTH)/v8/src/inspector/v8-debugger-agent-impl.cc',
      '<(DEPTH)/v8/src/inspector/v8-debugger-agent-impl.h',
      '<(DEPTH)/v8/src/inspector/v8-debugger-script.cc',
      '<(DEPTH)/v8/src/inspector/v8-debugger-script.h',
      '<(DEPTH)/v8/src/inspector/v8-heap-profiler-agent-impl.cc',
      '<(DEPTH)/v8/src/inspector/v8-heap-profiler-agent-impl.h',
      '<(DEPTH)/v8/src/inspector/v8-inspector-impl.cc',
      '<(DEPTH)/v8/src/inspector/v8-inspector-impl.h',
      '<(DEPTH)/v8/src/inspector/v8-inspector-protocol-encoding.cc',
      '<(DEPTH)/v8/src/inspector/v8-inspector-protocol-encoding.h',
      '<(DEPTH)/v8/src/inspector/v8-inspector-session-impl.cc',
      '<(DEPTH)/v8/src/inspector/v8-inspector-session-impl.h',
      '<(DEPTH)/v8/src/inspector/v8-profiler-agent-impl.cc',
      '<(DEPTH)/v8/src/inspector/v8-profiler-agent-impl.h',
      '<(DEPTH)/v8/src/inspector/v8-regex.cc',
      '<(DEPTH)/v8/src/inspector/v8-regex.h',
      '<(DEPTH)/v8/src/inspector/v8-runtime-agent-impl.cc',
      '<(DEPTH)/v8/src/inspector/v8-runtime-agent-impl.h',
      '<(DEPTH)/v8/src/inspector/v8-schema-agent-impl.cc',
      '<(DEPTH)/v8/src/inspector/v8-schema-agent-impl.h',
      '<(DEPTH)/v8/src/inspector/v8-stack-trace-impl.cc',
      '<(DEPTH)/v8/src/inspector/v8-stack-trace-impl.h',
      '<(DEPTH)/v8/src/inspector/v8-value-utils.cc',
      '<(DEPTH)/v8/src/inspector/v8-value-utils.h',
      '<(DEPTH)/v8/src/inspector/value-mirror.cc',
      '<(DEPTH)/v8/src/inspector/value-mirror.h',
      '<(DEPTH)/v8/src/inspector/wasm-translation.cc',
      '<(DEPTH)/v8/src/inspector/wasm-translation.h',
      # Flat merge `third_party/inspector_protocol:inspector_string_conversions`
      '<(inspector_path)/v8-string-conversions.cc',
      '<(inspector_path)/v8-string-conversions.h',
      # Flat merge `third_party/inspector_protocol:encoding`
      '<(inspector_protocol_path)/encoding/encoding.cc',
      '<(inspector_protocol_path)/encoding/encoding.h',
      # Flat merge `third_party/inspector_protocol:bindings`
      '<(inspector_protocol_path)/bindings/bindings.cc',
      '<(inspector_protocol_path)/bindings/bindings.h',

    ],
    'v8_inspector_js_protocol': '<(DEPTH)/v8/include/js_protocol.pdl',
  },
  'include_dirs': [
    '<(inspector_generated_output_root)',
    '<(inspector_protocol_path)',
    '<(DEPTH)/v8/include',
  ],
  'all_dependent_settings': {
    'include_dirs': [
      '<(inspector_generated_output_root)',
    ],
  },
}
