| 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 0a8e0f29c08ec56a4f5d69b5c7aa15149269b618..00a61a8190b43317542c6842c2872c28819260e2 100644
|
| --- a/third_party/mojo/src/mojo/public/tools/bindings/mojom.gni
|
| +++ b/third_party/mojo/src/mojo/public/tools/bindings/mojom.gni
|
| @@ -16,7 +16,7 @@ import("../../mojo_sdk.gni")
|
| #
|
| # Parameters:
|
| #
|
| -# sources (required)
|
| +# sources (optional if one of the deps sets listed below is present)
|
| # List of source .mojom files to compile.
|
| #
|
| # deps (optional)
|
| @@ -42,97 +42,103 @@ import("../../mojo_sdk.gni")
|
| #
|
| # visibility (optional)
|
| template("mojom") {
|
| - assert(defined(invoker.sources),
|
| - "\"sources\" must be defined for the $target_name template.")
|
| + assert(
|
| + defined(invoker.sources) || defined(invoker.deps) ||
|
| + defined(invoker.public_deps) || defined(invoker.mojo_sdk_deps) ||
|
| + defined(invoker.mojo_sdk_public_deps),
|
| + "\"sources\" or \"deps\" must be defined for the $target_name template.")
|
|
|
| - generator_root = rebase_path("mojo/public/tools/bindings", ".", mojo_root)
|
| - generator_script = "$generator_root/mojom_bindings_generator.py"
|
| - generator_sources = [
|
| - generator_script,
|
| - "$generator_root/generators/cpp_templates/enum_declaration.tmpl",
|
| - "$generator_root/generators/cpp_templates/interface_declaration.tmpl",
|
| - "$generator_root/generators/cpp_templates/interface_definition.tmpl",
|
| - "$generator_root/generators/cpp_templates/interface_macros.tmpl",
|
| - "$generator_root/generators/cpp_templates/interface_proxy_declaration.tmpl",
|
| - "$generator_root/generators/cpp_templates/interface_request_validator_declaration.tmpl",
|
| - "$generator_root/generators/cpp_templates/interface_response_validator_declaration.tmpl",
|
| - "$generator_root/generators/cpp_templates/interface_stub_declaration.tmpl",
|
| - "$generator_root/generators/cpp_templates/module.cc.tmpl",
|
| - "$generator_root/generators/cpp_templates/module.h.tmpl",
|
| - "$generator_root/generators/cpp_templates/module-internal.h.tmpl",
|
| - "$generator_root/generators/cpp_templates/serialization_macros.tmpl",
|
| - "$generator_root/generators/cpp_templates/struct_declaration.tmpl",
|
| - "$generator_root/generators/cpp_templates/struct_definition.tmpl",
|
| - "$generator_root/generators/cpp_templates/struct_serialization_definition.tmpl",
|
| - "$generator_root/generators/cpp_templates/struct_macros.tmpl",
|
| - "$generator_root/generators/cpp_templates/wrapper_class_declaration.tmpl",
|
| - "$generator_root/generators/cpp_templates/wrapper_class_definition.tmpl",
|
| - "$generator_root/generators/cpp_templates/union_declaration.tmpl",
|
| - "$generator_root/generators/cpp_templates/union_definition.tmpl",
|
| - "$generator_root/generators/cpp_templates/union_serialization_definition.tmpl",
|
| - "$generator_root/generators/cpp_templates/validation_macros.tmpl",
|
| - "$generator_root/generators/cpp_templates/wrapper_union_class_declaration.tmpl",
|
| - "$generator_root/generators/cpp_templates/wrapper_union_class_definition.tmpl",
|
| - "$generator_root/generators/dart_templates/enum_definition.tmpl",
|
| - "$generator_root/generators/dart_templates/interface_definition.tmpl",
|
| - "$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/enum.tmpl",
|
| - "$generator_root/generators/go_templates/interface.tmpl",
|
| - "$generator_root/generators/go_templates/source.tmpl",
|
| - "$generator_root/generators/go_templates/struct.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",
|
| - "$generator_root/generators/java_templates/enum_definition.tmpl",
|
| - "$generator_root/generators/java_templates/header.java.tmpl",
|
| - "$generator_root/generators/java_templates/interface.java.tmpl",
|
| - "$generator_root/generators/java_templates/interface_definition.tmpl",
|
| - "$generator_root/generators/java_templates/interface_internal.java.tmpl",
|
| - "$generator_root/generators/java_templates/struct.java.tmpl",
|
| - "$generator_root/generators/java_templates/struct_definition.tmpl",
|
| - "$generator_root/generators/js_templates/enum_definition.tmpl",
|
| - "$generator_root/generators/js_templates/interface_definition.tmpl",
|
| - "$generator_root/generators/js_templates/module.amd.tmpl",
|
| - "$generator_root/generators/js_templates/module.sky.tmpl",
|
| - "$generator_root/generators/js_templates/module_definition.tmpl",
|
| - "$generator_root/generators/js_templates/struct_definition.tmpl",
|
| - "$generator_root/generators/python_templates/module_macros.tmpl",
|
| - "$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",
|
| - "$generator_root/pylib/mojom/__init__.py",
|
| - "$generator_root/pylib/mojom/error.py",
|
| - "$generator_root/pylib/mojom/generate/__init__.py",
|
| - "$generator_root/pylib/mojom/generate/data.py",
|
| - "$generator_root/pylib/mojom/generate/generator.py",
|
| - "$generator_root/pylib/mojom/generate/module.py",
|
| - "$generator_root/pylib/mojom/generate/pack.py",
|
| - "$generator_root/pylib/mojom/generate/template_expander.py",
|
| - "$generator_root/pylib/mojom/parse/__init__.py",
|
| - "$generator_root/pylib/mojom/parse/ast.py",
|
| - "$generator_root/pylib/mojom/parse/lexer.py",
|
| - "$generator_root/pylib/mojom/parse/parser.py",
|
| - "$generator_root/pylib/mojom/parse/translate.py",
|
| - ]
|
| - generator_cpp_outputs = [
|
| - "{{source_gen_dir}}/{{source_name_part}}.mojom.cc",
|
| - "{{source_gen_dir}}/{{source_name_part}}.mojom.h",
|
| - "{{source_gen_dir}}/{{source_name_part}}.mojom-internal.h",
|
| - ]
|
| - generator_dart_outputs =
|
| - [ "{{source_gen_dir}}/{{source_name_part}}.mojom.dart" ]
|
| + if (defined(invoker.sources)) {
|
| + generator_root = rebase_path("mojo/public/tools/bindings", ".", mojo_root)
|
| + generator_script = "$generator_root/mojom_bindings_generator.py"
|
| + generator_sources = [
|
| + generator_script,
|
| + "$generator_root/generators/cpp_templates/enum_declaration.tmpl",
|
| + "$generator_root/generators/cpp_templates/interface_declaration.tmpl",
|
| + "$generator_root/generators/cpp_templates/interface_definition.tmpl",
|
| + "$generator_root/generators/cpp_templates/interface_macros.tmpl",
|
| + "$generator_root/generators/cpp_templates/interface_proxy_declaration.tmpl",
|
| + "$generator_root/generators/cpp_templates/interface_request_validator_declaration.tmpl",
|
| + "$generator_root/generators/cpp_templates/interface_response_validator_declaration.tmpl",
|
| + "$generator_root/generators/cpp_templates/interface_stub_declaration.tmpl",
|
| + "$generator_root/generators/cpp_templates/module.cc.tmpl",
|
| + "$generator_root/generators/cpp_templates/module.h.tmpl",
|
| + "$generator_root/generators/cpp_templates/module-internal.h.tmpl",
|
| + "$generator_root/generators/cpp_templates/serialization_macros.tmpl",
|
| + "$generator_root/generators/cpp_templates/struct_declaration.tmpl",
|
| + "$generator_root/generators/cpp_templates/struct_definition.tmpl",
|
| + "$generator_root/generators/cpp_templates/struct_serialization_definition.tmpl",
|
| + "$generator_root/generators/cpp_templates/struct_macros.tmpl",
|
| + "$generator_root/generators/cpp_templates/wrapper_class_declaration.tmpl",
|
| + "$generator_root/generators/cpp_templates/wrapper_class_definition.tmpl",
|
| + "$generator_root/generators/cpp_templates/union_declaration.tmpl",
|
| + "$generator_root/generators/cpp_templates/union_definition.tmpl",
|
| + "$generator_root/generators/cpp_templates/union_serialization_definition.tmpl",
|
| + "$generator_root/generators/cpp_templates/validation_macros.tmpl",
|
| + "$generator_root/generators/cpp_templates/wrapper_union_class_declaration.tmpl",
|
| + "$generator_root/generators/cpp_templates/wrapper_union_class_definition.tmpl",
|
| + "$generator_root/generators/dart_templates/enum_definition.tmpl",
|
| + "$generator_root/generators/dart_templates/interface_definition.tmpl",
|
| + "$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/enum.tmpl",
|
| + "$generator_root/generators/go_templates/interface.tmpl",
|
| + "$generator_root/generators/go_templates/source.tmpl",
|
| + "$generator_root/generators/go_templates/struct.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",
|
| + "$generator_root/generators/java_templates/enum_definition.tmpl",
|
| + "$generator_root/generators/java_templates/header.java.tmpl",
|
| + "$generator_root/generators/java_templates/interface.java.tmpl",
|
| + "$generator_root/generators/java_templates/interface_definition.tmpl",
|
| + "$generator_root/generators/java_templates/interface_internal.java.tmpl",
|
| + "$generator_root/generators/java_templates/struct.java.tmpl",
|
| + "$generator_root/generators/java_templates/struct_definition.tmpl",
|
| + "$generator_root/generators/js_templates/enum_definition.tmpl",
|
| + "$generator_root/generators/js_templates/interface_definition.tmpl",
|
| + "$generator_root/generators/js_templates/module.amd.tmpl",
|
| + "$generator_root/generators/js_templates/module.sky.tmpl",
|
| + "$generator_root/generators/js_templates/module_definition.tmpl",
|
| + "$generator_root/generators/js_templates/struct_definition.tmpl",
|
| + "$generator_root/generators/python_templates/module_macros.tmpl",
|
| + "$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",
|
| + "$generator_root/pylib/mojom/__init__.py",
|
| + "$generator_root/pylib/mojom/error.py",
|
| + "$generator_root/pylib/mojom/generate/__init__.py",
|
| + "$generator_root/pylib/mojom/generate/data.py",
|
| + "$generator_root/pylib/mojom/generate/generator.py",
|
| + "$generator_root/pylib/mojom/generate/module.py",
|
| + "$generator_root/pylib/mojom/generate/pack.py",
|
| + "$generator_root/pylib/mojom/generate/template_expander.py",
|
| + "$generator_root/pylib/mojom/parse/__init__.py",
|
| + "$generator_root/pylib/mojom/parse/ast.py",
|
| + "$generator_root/pylib/mojom/parse/lexer.py",
|
| + "$generator_root/pylib/mojom/parse/parser.py",
|
| + "$generator_root/pylib/mojom/parse/translate.py",
|
| + ]
|
| + generator_cpp_outputs = [
|
| + "{{source_gen_dir}}/{{source_name_part}}.mojom.cc",
|
| + "{{source_gen_dir}}/{{source_name_part}}.mojom.h",
|
| + "{{source_gen_dir}}/{{source_name_part}}.mojom-internal.h",
|
| + ]
|
| + generator_js_outputs =
|
| + [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ]
|
| + generator_dart_outputs =
|
| + [ "{{source_gen_dir}}/{{source_name_part}}.mojom.dart" ]
|
| + generator_python_outputs =
|
| + [ "{{source_gen_dir}}/{{source_name_part}}_mojom.py" ]
|
| + generator_java_outputs =
|
| + [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ]
|
| + }
|
| 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" ]
|
| - generator_python_outputs =
|
| - [ "{{source_gen_dir}}/{{source_name_part}}_mojom.py" ]
|
| generator_python_zip_output = "$target_out_dir/$target_name.pyzip"
|
|
|
| rebased_mojo_sdk_public_deps = []
|
| @@ -160,36 +166,38 @@ template("mojom") {
|
| target_visibility = [ ":$target_name" ]
|
| }
|
|
|
| - generator_target_name = target_name + "__generator"
|
| - action_foreach(generator_target_name) {
|
| - if (defined(invoker.visibility)) {
|
| - visibility = target_visibility + invoker.visibility
|
| - }
|
| - script = generator_script
|
| - inputs = generator_sources
|
| - sources = invoker.sources
|
| - outputs =
|
| - generator_cpp_outputs + generator_dart_outputs +
|
| - generator_java_outputs + generator_js_outputs + generator_python_outputs
|
| - args = [
|
| - "{{source}}",
|
| - "--use_bundled_pylibs",
|
| - "-d",
|
| - rebase_path("//", root_build_dir),
|
| - "-I",
|
| - rebase_path("//", root_build_dir),
|
| - "-I",
|
| - rebase_path(mojo_root, root_build_dir),
|
| - "-o",
|
| - rebase_path(root_gen_dir),
|
| - ]
|
| + if (defined(invoker.sources)) {
|
| + generator_target_name = target_name + "__generator"
|
| + action_foreach(generator_target_name) {
|
| + if (defined(invoker.visibility)) {
|
| + visibility = target_visibility + invoker.visibility
|
| + }
|
| + script = generator_script
|
| + inputs = generator_sources
|
| + sources = invoker.sources
|
| + outputs = generator_cpp_outputs + generator_dart_outputs +
|
| + generator_java_outputs + generator_js_outputs +
|
| + generator_python_outputs
|
| + args = [
|
| + "{{source}}",
|
| + "--use_bundled_pylibs",
|
| + "-d",
|
| + rebase_path("//", root_build_dir),
|
| + "-I",
|
| + rebase_path("//", root_build_dir),
|
| + "-I",
|
| + rebase_path(mojo_root, root_build_dir),
|
| + "-o",
|
| + rebase_path(root_gen_dir),
|
| + ]
|
|
|
| - if (defined(invoker.import_dirs)) {
|
| - foreach(import_dir, invoker.import_dirs) {
|
| - args += [
|
| - "-I",
|
| - rebase_path(import_dir, root_build_dir),
|
| - ]
|
| + if (defined(invoker.import_dirs)) {
|
| + foreach(import_dir, invoker.import_dirs) {
|
| + args += [
|
| + "-I",
|
| + rebase_path(import_dir, root_build_dir),
|
| + ]
|
| + }
|
| }
|
| }
|
| }
|
| @@ -201,8 +209,10 @@ template("mojom") {
|
| if (defined(invoker.testonly)) {
|
| testonly = invoker.testonly
|
| }
|
| - sources = process_file_template(invoker.sources, generator_cpp_outputs)
|
| - data = process_file_template(invoker.sources, generator_js_outputs)
|
| + if (defined(invoker.sources)) {
|
| + sources = process_file_template(invoker.sources, generator_cpp_outputs)
|
| + data = process_file_template(invoker.sources, generator_js_outputs)
|
| + }
|
|
|
| public_configs =
|
| rebase_path([ "mojo/public/build/config:mojo_sdk" ], ".", mojo_root)
|
| @@ -213,9 +223,10 @@ template("mojom") {
|
| public_deps += invoker.public_deps
|
| }
|
|
|
| - deps = [
|
| - ":$generator_target_name",
|
| - ]
|
| + deps = []
|
| + if (defined(invoker.sources)) {
|
| + deps += [ ":$generator_target_name" ]
|
| + }
|
| deps += rebased_mojo_sdk_deps
|
| if (defined(invoker.deps)) {
|
| deps += invoker.deps
|
| @@ -258,7 +269,9 @@ template("mojom") {
|
| action("${target_name}_python") {
|
| script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_root)
|
|
|
| - inputs = process_file_template(invoker.sources, generator_python_outputs)
|
| + if (defined(invoker.sources)) {
|
| + inputs = process_file_template(invoker.sources, generator_python_outputs)
|
| + }
|
|
|
| deps = []
|
| zip_inputs = []
|
| @@ -280,21 +293,27 @@ template("mojom") {
|
| ]
|
|
|
| rebase_base_dir = rebase_path(target_gen_dir, root_build_dir)
|
| - rebase_inputs = rebase_path(inputs, root_build_dir)
|
| + if (defined(invoker.sources)) {
|
| + 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 (defined(invoker.sources)) {
|
| + args += [ "--inputs=$rebase_inputs" ]
|
| + }
|
| }
|
|
|
| action("${target_name}_dart") {
|
| script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_root)
|
|
|
| - inputs = process_file_template(invoker.sources, generator_dart_outputs)
|
| + if (defined(invoker.sources)) {
|
| + inputs = process_file_template(invoker.sources, generator_dart_outputs)
|
| + }
|
|
|
| deps = []
|
| zip_inputs = []
|
| @@ -316,15 +335,19 @@ template("mojom") {
|
| ]
|
|
|
| rebase_base_dir = rebase_path("$root_build_dir/gen/", root_build_dir)
|
| - rebase_inputs = rebase_path(inputs, root_build_dir)
|
| + if (defined(invoker.sources)) {
|
| + 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 (defined(invoker.sources)) {
|
| + args += [ "--inputs=$rebase_inputs" ]
|
| + }
|
| }
|
|
|
| if (is_android) {
|
| @@ -347,7 +370,9 @@ template("mojom") {
|
| deps += [ "${full_name}_java" ]
|
| }
|
|
|
| - srcjars = process_file_template(invoker.sources, generator_java_outputs)
|
| + if (defined(invoker.sources)) {
|
| + srcjars = process_file_template(invoker.sources, generator_java_outputs)
|
| + }
|
| }
|
| }
|
| }
|
|
|