summaryrefslogtreecommitdiff
path: root/tools/inspector_protocol/inspector_protocol.gni
diff options
context:
space:
mode:
authorAndrey Lushnikov <lushnikov@chromium.org>2018-07-25 13:48:47 -0700
committerAleksey Kozyatinskiy <ak239spb@gmail.com>2018-08-10 18:03:43 -0700
commite0395247c899af101f8a1f76a8554be1ff14040a (patch)
tree2e0c061ac9dc90092605aaf49b7a7d0ed82799da /tools/inspector_protocol/inspector_protocol.gni
parent2e37d0fdc0ad4a23034b7a2793c766bbcc416de2 (diff)
downloadandroid-node-v8-e0395247c899af101f8a1f76a8554be1ff14040a.tar.gz
android-node-v8-e0395247c899af101f8a1f76a8554be1ff14040a.tar.bz2
android-node-v8-e0395247c899af101f8a1f76a8554be1ff14040a.zip
inspector: add inspector_protocol as a direct dependency
Currently, node.js depends on inspector_protocol indirectly through the dependency on v8. This is a dependency violation that will make it hard to roll V8 into Node if V8 gets a newer inspector protocol version with incompatible API. In fact, this surfaced on one of our bots when we tried to roll new inspector_protocol into V8. This patch adds inspector protocol and its required dependencies to node deps: - jinja2 - markupsafe PR-URL: https://github.com/nodejs/node/pull/21975 Reviewed-By: Eugene Ostroukhov <eostroukhov@google.com> Reviewed-By: Aleksei Koziatinskii <ak239spb@gmail.com>
Diffstat (limited to 'tools/inspector_protocol/inspector_protocol.gni')
-rw-r--r--tools/inspector_protocol/inspector_protocol.gni89
1 files changed, 89 insertions, 0 deletions
diff --git a/tools/inspector_protocol/inspector_protocol.gni b/tools/inspector_protocol/inspector_protocol.gni
new file mode 100644
index 0000000000..5dcc1f522d
--- /dev/null
+++ b/tools/inspector_protocol/inspector_protocol.gni
@@ -0,0 +1,89 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This template will generate inspector protocol source code. The code will
+# not be compiled, use get_target_outputs(<name>) to compile them.
+#
+# Inputs
+#
+# config_file (required)
+# Path to json file specifying inspector protocol configuration.
+#
+# out_dir (required)
+# Path to put the generated files in. It must be inside output or
+# generated file directory.
+#
+# outputs (required)
+# Files generated. Relative to out_dir.
+#
+# inputs (optional)
+# Extra inputs specified by the config file.
+template("inspector_protocol_generate") {
+ assert(defined(invoker.config_file))
+ assert(defined(invoker.out_dir))
+ assert(defined(invoker.outputs))
+ assert(defined(invoker.inspector_protocol_dir))
+ inspector_protocol_dir = invoker.inspector_protocol_dir
+
+ action(target_name) {
+ script = "$inspector_protocol_dir/CodeGenerator.py"
+
+ inputs = [
+ invoker.config_file,
+ "$inspector_protocol_dir/lib/Allocator_h.template",
+ "$inspector_protocol_dir/lib/Array_h.template",
+ "$inspector_protocol_dir/lib/Collections_h.template",
+ "$inspector_protocol_dir/lib/DispatcherBase_cpp.template",
+ "$inspector_protocol_dir/lib/DispatcherBase_h.template",
+ "$inspector_protocol_dir/lib/ErrorSupport_cpp.template",
+ "$inspector_protocol_dir/lib/ErrorSupport_h.template",
+ "$inspector_protocol_dir/lib/Forward_h.template",
+ "$inspector_protocol_dir/lib/FrontendChannel_h.template",
+ "$inspector_protocol_dir/lib/Maybe_h.template",
+ "$inspector_protocol_dir/lib/Object_cpp.template",
+ "$inspector_protocol_dir/lib/Object_h.template",
+ "$inspector_protocol_dir/lib/Parser_cpp.template",
+ "$inspector_protocol_dir/lib/Parser_h.template",
+ "$inspector_protocol_dir/lib/Protocol_cpp.template",
+ "$inspector_protocol_dir/lib/ValueConversions_h.template",
+ "$inspector_protocol_dir/lib/Values_cpp.template",
+ "$inspector_protocol_dir/lib/Values_h.template",
+ "$inspector_protocol_dir/templates/Exported_h.template",
+ "$inspector_protocol_dir/templates/Imported_h.template",
+ "$inspector_protocol_dir/templates/TypeBuilder_cpp.template",
+ "$inspector_protocol_dir/templates/TypeBuilder_h.template",
+ ]
+ if (defined(invoker.inputs)) {
+ inputs += invoker.inputs
+ }
+
+ args = [
+ "--jinja_dir",
+ rebase_path("//third_party/", root_build_dir), # jinja is in chromium's third_party
+ "--output_base",
+ rebase_path(invoker.out_dir, root_build_dir),
+ "--config",
+ rebase_path(invoker.config_file, root_build_dir),
+ ]
+
+ if (defined(invoker.config_values)) {
+ foreach(value, invoker.config_values) {
+ args += [
+ "--config_value",
+ value,
+ ]
+ }
+ }
+
+ outputs = get_path_info(rebase_path(invoker.outputs, ".", invoker.out_dir),
+ "abspath")
+
+ forward_variables_from(invoker,
+ [
+ "visibility",
+ "deps",
+ "public_deps",
+ ])
+ }
+}