Home | History | Annotate | Download | only in inspector
      1 # Copyright 2016 the V8 project authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 import("../../gni/v8.gni")
      6 
      7 _inspector_protocol = v8_path_prefix + "/third_party/inspector_protocol"
      8 import("$_inspector_protocol/inspector_protocol.gni")
      9 
     10 _protocol_generated = [
     11   "protocol/Forward.h",
     12   "protocol/Protocol.cpp",
     13   "protocol/Protocol.h",
     14   "protocol/Console.cpp",
     15   "protocol/Console.h",
     16   "protocol/Debugger.cpp",
     17   "protocol/Debugger.h",
     18   "protocol/HeapProfiler.cpp",
     19   "protocol/HeapProfiler.h",
     20   "protocol/Profiler.cpp",
     21   "protocol/Profiler.h",
     22   "protocol/Runtime.cpp",
     23   "protocol/Runtime.h",
     24   "protocol/Schema.cpp",
     25   "protocol/Schema.h",
     26   "../../include/inspector/Debugger.h",
     27   "../../include/inspector/Runtime.h",
     28   "../../include/inspector/Schema.h",
     29 ]
     30 
     31 action("protocol_compatibility") {
     32   visibility = [ ":*" ]  # Only targets in this file can depend on this.
     33   script = "$_inspector_protocol/CheckProtocolCompatibility.py"
     34   inputs = [
     35     "js_protocol.json",
     36   ]
     37   _stamp = "$target_gen_dir/js_protocol.stamp"
     38   outputs = [
     39     _stamp,
     40   ]
     41   args = [
     42     "--stamp",
     43     rebase_path(_stamp, root_build_dir),
     44     rebase_path("js_protocol.json", root_build_dir),
     45   ]
     46 }
     47 
     48 inspector_protocol_generate("protocol_generated_sources") {
     49   visibility = [ ":*" ]  # Only targets in this file can depend on this.
     50   deps = [
     51     ":protocol_compatibility",
     52   ]
     53 
     54   inspector_protocol_dir = _inspector_protocol
     55   out_dir = target_gen_dir
     56   config_file = "inspector_protocol_config.json"
     57   inputs = [
     58     "js_protocol.json",
     59     "inspector_protocol_config.json",
     60   ]
     61   outputs = _protocol_generated
     62 }
     63 
     64 action("inspector_injected_script") {
     65   visibility = [ ":*" ]  # Only targets in this file can depend on this.
     66   script = "build/xxd.py"
     67   inputs = [
     68     "injected-script-source.js",
     69   ]
     70   outputs = [
     71     "$target_gen_dir/injected-script-source.h",
     72   ]
     73   args = [
     74     "InjectedScriptSource_js",
     75     rebase_path("injected-script-source.js", root_build_dir),
     76     rebase_path("$target_gen_dir/injected-script-source.h", root_build_dir),
     77   ]
     78 }
     79 
     80 action("inspector_debugger_script") {
     81   visibility = [ ":*" ]  # Only targets in this file can depend on this.
     82   script = "build/xxd.py"
     83   inputs = [
     84     "debugger-script.js",
     85   ]
     86   outputs = [
     87     "$target_gen_dir/debugger-script.h",
     88   ]
     89   args = [
     90     "DebuggerScript_js",
     91     rebase_path("debugger-script.js", root_build_dir),
     92     rebase_path("$target_gen_dir/debugger-script.h", root_build_dir),
     93   ]
     94 }
     95 
     96 config("inspector_config") {
     97   visibility = [ ":*" ]  # Only targets in this file can depend on this.
     98   cflags = []
     99   if (is_win) {
    100     cflags += [
    101       "/wd4267",  # Truncation from size_t to int.
    102       "/wd4305",  # Truncation from 'type1' to 'type2'.
    103       "/wd4324",  # Struct padded due to declspec(align).
    104       "/wd4714",  # Function marked forceinline not inlined.
    105       "/wd4800",  # Value forced to bool.
    106       "/wd4996",  # Deprecated function call.
    107     ]
    108   }
    109   if (is_component_build) {
    110     defines = [ "BUILDING_V8_SHARED" ]
    111   }
    112 }
    113 
    114 v8_source_set("inspector") {
    115   deps = [
    116     ":inspector_debugger_script",
    117     ":inspector_injected_script",
    118     ":protocol_generated_sources",
    119   ]
    120   configs = [ ":inspector_config" ]
    121   include_dirs = [
    122     "../..",
    123     "../../include",
    124     "$target_gen_dir/../..",
    125     "$target_gen_dir/../../include",
    126   ]
    127   sources = rebase_path(_protocol_generated, ".", target_gen_dir)
    128   sources += [
    129     "../../include/v8-inspector-protocol.h",
    130     "../../include/v8-inspector.h",
    131   ]
    132   sources += get_target_outputs(":inspector_injected_script")
    133   sources += get_target_outputs(":inspector_debugger_script")
    134   sources += [
    135     "injected-script-native.cc",
    136     "injected-script-native.h",
    137     "injected-script.cc",
    138     "injected-script.h",
    139     "inspected-context.cc",
    140     "inspected-context.h",
    141     "java-script-call-frame.cc",
    142     "java-script-call-frame.h",
    143     "remote-object-id.cc",
    144     "remote-object-id.h",
    145     "script-breakpoint.h",
    146     "search-util.cc",
    147     "search-util.h",
    148     "string-16.cc",
    149     "string-16.h",
    150     "string-util.cc",
    151     "string-util.h",
    152     "test-interface.cc",
    153     "test-interface.h",
    154     "v8-console-agent-impl.cc",
    155     "v8-console-agent-impl.h",
    156     "v8-console-message.cc",
    157     "v8-console-message.h",
    158     "v8-console.cc",
    159     "v8-console.h",
    160     "v8-debugger-agent-impl.cc",
    161     "v8-debugger-agent-impl.h",
    162     "v8-debugger-script.cc",
    163     "v8-debugger-script.h",
    164     "v8-debugger.cc",
    165     "v8-debugger.h",
    166     "v8-function-call.cc",
    167     "v8-function-call.h",
    168     "v8-heap-profiler-agent-impl.cc",
    169     "v8-heap-profiler-agent-impl.h",
    170     "v8-injected-script-host.cc",
    171     "v8-injected-script-host.h",
    172     "v8-inspector-impl.cc",
    173     "v8-inspector-impl.h",
    174     "v8-inspector-session-impl.cc",
    175     "v8-inspector-session-impl.h",
    176     "v8-internal-value-type.cc",
    177     "v8-internal-value-type.h",
    178     "v8-profiler-agent-impl.cc",
    179     "v8-profiler-agent-impl.h",
    180     "v8-regex.cc",
    181     "v8-regex.h",
    182     "v8-runtime-agent-impl.cc",
    183     "v8-runtime-agent-impl.h",
    184     "v8-schema-agent-impl.cc",
    185     "v8-schema-agent-impl.h",
    186     "v8-stack-trace-impl.cc",
    187     "v8-stack-trace-impl.h",
    188     "v8-value-copier.cc",
    189     "v8-value-copier.h",
    190     "wasm-translation.cc",
    191     "wasm-translation.h",
    192   ]
    193 }
    194