Index: third_party/mojo/src/mojo/public/tools/bindings/mojom.gni |
diff --git a/third_party/mojo/src/mojo/public/tools/bindings/mojom.gni b/third_party/mojo/src/mojo/public/tools/bindings/mojom.gni |
index 6fc89c10a16a0ebc7c485b5d2148e0a200f78bed..3e0ca4fe4b2432e03892ea4a1d8fb27b9aa6ac82 100644 |
--- a/third_party/mojo/src/mojo/public/tools/bindings/mojom.gni |
+++ b/third_party/mojo/src/mojo/public/tools/bindings/mojom.gni |
@@ -73,6 +73,7 @@ template("mojom") { |
"$generator_root/generators/dart_templates/module.lib.tmpl", |
"$generator_root/generators/dart_templates/module_definition.tmpl", |
"$generator_root/generators/dart_templates/struct_definition.tmpl", |
+ "$generator_root/generators/go_templates/source.tmpl", |
"$generator_root/generators/java_templates/constant_definition.tmpl", |
"$generator_root/generators/java_templates/constants.java.tmpl", |
"$generator_root/generators/java_templates/enum.java.tmpl", |
@@ -93,6 +94,7 @@ template("mojom") { |
"$generator_root/generators/python_templates/module.py.tmpl", |
"$generator_root/generators/mojom_cpp_generator.py", |
"$generator_root/generators/mojom_dart_generator.py", |
+ "$generator_root/generators/mojom_go_generator.py", |
"$generator_root/generators/mojom_js_generator.py", |
"$generator_root/generators/mojom_java_generator.py", |
"$generator_root/generators/mojom_python_generator.py", |
@@ -117,6 +119,7 @@ template("mojom") { |
] |
generator_dart_outputs = |
[ "{{source_gen_dir}}/{{source_name_part}}.mojom.dart" ] |
+ generator_dart_zip_output = "$target_out_dir/$target_name.dartzip" |
generator_java_outputs = |
[ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ] |
generator_js_outputs = [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ] |
@@ -209,7 +212,10 @@ template("mojom") { |
if (defined(invoker.deps)) { |
deps += invoker.deps |
} |
- data_deps = [ ":${target_name}_python" ] |
+ data_deps = [ |
+ ":${target_name}_python", |
+ ":${target_name}_dart", |
+ ] |
if (defined(invoker.mojo_sdk_deps)) { |
foreach(sdk_dep, invoker.mojo_sdk_deps) { |
# Check that the SDK dep was not mistakenly given as an absolute path. |
@@ -277,6 +283,42 @@ template("mojom") { |
] |
} |
+ action("${target_name}_dart") { |
+ script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_root) |
+ |
+ inputs = process_file_template(invoker.sources, generator_dart_outputs) |
+ |
+ deps = [] |
+ zip_inputs = [] |
+ |
+ foreach(d, all_deps) { |
+ # Resolve the name, so that a target //mojo/something becomes |
+ # //mojo/something:something and we can append "_dart" to get the dart |
+ # dependency name. |
+ full_name = get_label_info(d, "label_no_toolchain") |
+ dep_name = get_label_info(d, "name") |
+ dep_target_out_dir = get_label_info(d, "target_out_dir") |
+ deps += [ "${full_name}_dart" ] |
+ zip_inputs += [ "$dep_target_out_dir/$dep_name.dartzip" ] |
+ } |
+ |
+ output = generator_dart_zip_output |
+ outputs = [ |
+ output, |
+ ] |
+ |
+ rebase_base_dir = rebase_path("$root_build_dir/gen/", root_build_dir) |
+ rebase_inputs = rebase_path(inputs, root_build_dir) |
+ rebase_zip_inputs = rebase_path(zip_inputs, root_build_dir) |
+ rebase_output = rebase_path(output, root_build_dir) |
+ args = [ |
+ "--base-dir=$rebase_base_dir", |
+ "--inputs=$rebase_inputs", |
+ "--zip-inputs=$rebase_zip_inputs", |
+ "--output=$rebase_output", |
+ ] |
+ } |
+ |
if (is_android) { |
import("//build/config/android/rules.gni") |