Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(849)

Unified Diff: mojo/public/tools/bindings/mojom.gni

Issue 1517043004: [mojo] Add typemap and variant support to generators (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@pickle3
Patch Set: set proper upstream Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/public/tools/bindings/mojom.gni
diff --git a/mojo/public/tools/bindings/mojom.gni b/mojo/public/tools/bindings/mojom.gni
index 174e5b88ffa3b77b382351edc0d5dfbd9941031d..61f43e59a3055f52800fce60353c85a02bcf790e 100644
--- a/mojo/public/tools/bindings/mojom.gni
+++ b/mojo/public/tools/bindings/mojom.gni
@@ -25,6 +25,13 @@
# Mojo environment implementation. Defaults to |true| and in general
# should only be overridden by mojom targets within the Mojo EDK.
#
+# typemaps (optional)
+# A list of typemap files to apply during bindings generation.
+#
+# variant (optional)
+# A variant name to apply to generated bindings. Variant influences
+# generated source filenames as wells the symbols they define.
+#
# testonly (optional)
#
# visibility (optional)
@@ -102,15 +109,26 @@ template("mojom") {
"$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_java_outputs =
- [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ]
+ if (defined(invoker.variant)) {
+ variant = invoker.variant
+ 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 (defined(invoker.sources)) {
@@ -140,6 +158,29 @@ template("mojom") {
]
}
}
+
+ if (defined(invoker.variant)) {
+ args += [
+ "--variant",
+ invoker.variant,
+ "-g",
+ "c++",
+ ]
+ } else {
+ args += [
+ "-g",
+ "c++,javascript,java",
+ ]
+ }
+
+ if (defined(invoker.typemaps)) {
+ foreach(typemap, invoker.typemaps) {
+ args += [
+ "--typemap",
+ rebase_path(typemap, root_build_dir),
+ ]
+ }
+ }
}
}
@@ -150,7 +191,7 @@ template("mojom") {
if (defined(invoker.testonly)) {
testonly = invoker.testonly
}
- if (defined(invoker.sources)) {
+ if (defined(invoker.sources) && !defined(invoker.variant)) {
data = process_file_template(invoker.sources, generator_js_outputs)
}
@@ -225,7 +266,7 @@ template("mojom") {
}
}
- if (is_android) {
+ if (is_android && !defined(invoker.variant)) {
import("//build/config/android/rules.gni")
java_srcjar_target_name = target_name + "_java_sources"
« no previous file with comments | « mojo/public/tools/bindings/generators/mojom_js_generator.py ('k') | mojo/public/tools/bindings/mojom_bindings_generator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698