Index: third_party/inspector_protocol/inspector_protocol.gni |
diff --git a/third_party/inspector_protocol/inspector_protocol.gni b/third_party/inspector_protocol/inspector_protocol.gni |
new file mode 100644 |
index 0000000000000000000000000000000000000000..287f84e60b2933ce968db4414a9c7e2aaee52f04 |
--- /dev/null |
+++ b/third_party/inspector_protocol/inspector_protocol.gni |
@@ -0,0 +1,81 @@ |
+# 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/BackendCallback_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), |
+ ] |
+ |
+ outputs = get_path_info(rebase_path(invoker.outputs, ".", invoker.out_dir), |
+ "abspath") |
+ |
+ forward_variables_from(invoker, |
+ [ |
+ "visibility", |
+ "deps", |
+ "public_deps", |
+ ]) |
+ } |
+} |