Index: mojo/public/tools/bindings/mojom.gni |
diff --git a/mojo/public/tools/bindings/mojom.gni b/mojo/public/tools/bindings/mojom.gni |
index 9cd72173a0aa9d7fc8728028eb34f96aa8e42b72..c33ca52a7f1e4f361e14f09685da898d42650d26 100644 |
--- a/mojo/public/tools/bindings/mojom.gni |
+++ b/mojo/public/tools/bindings/mojom.gni |
@@ -51,10 +51,17 @@ mojom_generator_sources = [ |
# typemaps (optional) |
# A list of typemap files to apply during bindings generation. |
# |
+# typemap_deps (optional) |
+# A list of public dependencies needed to support active typemaps. |
+# |
# variant (optional) |
# A variant name to apply to generated bindings. Variant influences |
# generated source filenames as wells the symbols they define. |
# |
+# cpp_only (optional) |
+# If true, only C++ bindings will be generated. This defaults to false |
+# unless |variant| is specified. |
+# |
# testonly (optional) |
# |
# visibility (optional) |
@@ -66,29 +73,38 @@ template("mojom") { |
cpp_sources_suffix = "cpp_sources" |
cpp_sources_target_name = "${target_name}_${cpp_sources_suffix}" |
+ cpp_only = false |
+ if (defined(invoker.cpp_only)) { |
+ cpp_only = invoker.cpp_only |
+ } |
if (defined(invoker.sources)) { |
if (defined(invoker.variant)) { |
variant = invoker.variant |
+ cpp_only = true |
generator_cpp_outputs = [ |
"{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}.cc", |
"{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}.h", |
"{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}-internal.h", |
] |
- generator_js_outputs = [] |
- generator_java_outputs = [] |
} else { |
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_java_outputs = |
- [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ] |
} |
} |
+ if (cpp_only) { |
+ generator_js_outputs = [] |
+ generator_java_outputs = [] |
+ } else { |
+ generator_js_outputs = |
+ [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ] |
+ generator_java_outputs = |
+ [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ] |
+ } |
+ |
if (defined(invoker.sources)) { |
generator_target_name = target_name + "__generator" |
action_foreach(generator_target_name) { |
@@ -123,10 +139,8 @@ template("mojom") { |
} |
} |
- if (defined(invoker.variant)) { |
+ if (cpp_only) { |
args += [ |
- "--variant", |
- invoker.variant, |
"-g", |
"c++", |
] |
@@ -137,6 +151,13 @@ template("mojom") { |
] |
} |
+ if (defined(invoker.variant)) { |
+ args += [ |
+ "--variant", |
+ invoker.variant, |
+ ] |
+ } |
+ |
if (defined(invoker.typemaps)) { |
foreach(typemap, invoker.typemaps) { |
args += [ |
@@ -168,6 +189,9 @@ template("mojom") { |
if (defined(invoker.public_deps)) { |
public_deps += invoker.public_deps |
} |
+ if (defined(invoker.typemap_deps)) { |
+ public_deps += invoker.typemap_deps |
+ } |
deps = [] |
if (defined(invoker.sources)) { |
@@ -214,9 +238,14 @@ template("mojom") { |
sources = process_file_template(invoker.sources, generator_cpp_outputs) |
deps = [ |
":$generator_target_name", |
- "//base", |
"//mojo/public/interfaces/bindings:bindings__generator", |
] |
+ public_deps = [ |
+ "//base", |
+ ] |
+ if (defined(invoker.typemap_deps)) { |
+ public_deps += invoker.typemap_deps |
+ } |
foreach(d, all_deps) { |
# Resolve the name, so that a target //mojo/something becomes |
# //mojo/something:something and we can append cpp_sources_suffix to |