| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 mojom_generator_root = "//mojo/public/tools/bindings" | 5 mojom_generator_root = "//mojo/public/tools/bindings" |
| 6 mojom_generator_script = "$mojom_generator_root/mojom_bindings_generator.py" | 6 mojom_generator_script = "$mojom_generator_root/mojom_bindings_generator.py" |
| 7 mojom_generator_sources = [ | 7 mojom_generator_sources = [ |
| 8 "$mojom_generator_root/generators/mojom_cpp_generator.py", | 8 "$mojom_generator_root/generators/mojom_cpp_generator.py", |
| 9 "$mojom_generator_root/generators/mojom_js_generator.py", | 9 "$mojom_generator_root/generators/mojom_js_generator.py", |
| 10 "$mojom_generator_root/generators/mojom_java_generator.py", | 10 "$mojom_generator_root/generators/mojom_java_generator.py", |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 # Mojo environment implementation. Defaults to |true| and in general | 48 # Mojo environment implementation. Defaults to |true| and in general |
| 49 # should only be overridden by mojom targets within the Mojo EDK. | 49 # should only be overridden by mojom targets within the Mojo EDK. |
| 50 # | 50 # |
| 51 # typemaps (optional) | 51 # typemaps (optional) |
| 52 # A list of typemap files to apply during bindings generation. | 52 # A list of typemap files to apply during bindings generation. |
| 53 # | 53 # |
| 54 # variant (optional) | 54 # variant (optional) |
| 55 # A variant name to apply to generated bindings. Variant influences | 55 # A variant name to apply to generated bindings. Variant influences |
| 56 # generated source filenames as wells the symbols they define. | 56 # generated source filenames as wells the symbols they define. |
| 57 # | 57 # |
| 58 # cpp_only (optional) |
| 59 # If true, only C++ bindings will be generated. This defaults to false |
| 60 # unless |variant| is specified. |
| 61 # |
| 58 # testonly (optional) | 62 # testonly (optional) |
| 59 # | 63 # |
| 60 # visibility (optional) | 64 # visibility (optional) |
| 61 template("mojom") { | 65 template("mojom") { |
| 62 assert( | 66 assert( |
| 63 defined(invoker.sources) || defined(invoker.deps) || | 67 defined(invoker.sources) || defined(invoker.deps) || |
| 64 defined(invoker.public_deps), | 68 defined(invoker.public_deps), |
| 65 "\"sources\" or \"deps\" must be defined for the $target_name template.") | 69 "\"sources\" or \"deps\" must be defined for the $target_name template.") |
| 66 | 70 |
| 67 cpp_sources_suffix = "cpp_sources" | 71 cpp_sources_suffix = "cpp_sources" |
| 68 cpp_sources_target_name = "${target_name}_${cpp_sources_suffix}" | 72 cpp_sources_target_name = "${target_name}_${cpp_sources_suffix}" |
| 73 cpp_only = false |
| 74 if (defined(invoker.cpp_only)) { |
| 75 cpp_only = invoker.cpp_only |
| 76 } |
| 69 if (defined(invoker.sources)) { | 77 if (defined(invoker.sources)) { |
| 70 if (defined(invoker.variant)) { | 78 if (defined(invoker.variant)) { |
| 71 variant = invoker.variant | 79 variant = invoker.variant |
| 80 cpp_only = true |
| 72 generator_cpp_outputs = [ | 81 generator_cpp_outputs = [ |
| 73 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}.cc", | 82 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}.cc", |
| 74 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}.h", | 83 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}.h", |
| 75 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}-internal.h", | 84 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}-internal.h", |
| 76 ] | 85 ] |
| 77 generator_js_outputs = [] | |
| 78 generator_java_outputs = [] | |
| 79 } else { | 86 } else { |
| 80 generator_cpp_outputs = [ | 87 generator_cpp_outputs = [ |
| 81 "{{source_gen_dir}}/{{source_name_part}}.mojom.cc", | 88 "{{source_gen_dir}}/{{source_name_part}}.mojom.cc", |
| 82 "{{source_gen_dir}}/{{source_name_part}}.mojom.h", | 89 "{{source_gen_dir}}/{{source_name_part}}.mojom.h", |
| 83 "{{source_gen_dir}}/{{source_name_part}}.mojom-internal.h", | 90 "{{source_gen_dir}}/{{source_name_part}}.mojom-internal.h", |
| 84 ] | 91 ] |
| 85 generator_js_outputs = | |
| 86 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ] | |
| 87 generator_java_outputs = | |
| 88 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ] | |
| 89 } | 92 } |
| 90 } | 93 } |
| 91 | 94 |
| 95 if (cpp_only) { |
| 96 generator_js_outputs = [] |
| 97 generator_java_outputs = [] |
| 98 } else { |
| 99 generator_js_outputs = |
| 100 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ] |
| 101 generator_java_outputs = |
| 102 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ] |
| 103 } |
| 104 |
| 92 if (defined(invoker.sources)) { | 105 if (defined(invoker.sources)) { |
| 93 generator_target_name = target_name + "__generator" | 106 generator_target_name = target_name + "__generator" |
| 94 action_foreach(generator_target_name) { | 107 action_foreach(generator_target_name) { |
| 95 script = mojom_generator_script | 108 script = mojom_generator_script |
| 96 inputs = mojom_generator_sources | 109 inputs = mojom_generator_sources |
| 97 sources = invoker.sources | 110 sources = invoker.sources |
| 98 deps = [ | 111 deps = [ |
| 99 "//mojo/public/tools/bindings:precompile_templates", | 112 "//mojo/public/tools/bindings:precompile_templates", |
| 100 ] | 113 ] |
| 101 outputs = | 114 outputs = |
| (...skipping 14 matching lines...) Expand all Loading... |
| 116 | 129 |
| 117 if (defined(invoker.import_dirs)) { | 130 if (defined(invoker.import_dirs)) { |
| 118 foreach(import_dir, invoker.import_dirs) { | 131 foreach(import_dir, invoker.import_dirs) { |
| 119 args += [ | 132 args += [ |
| 120 "-I", | 133 "-I", |
| 121 rebase_path(import_dir, root_build_dir), | 134 rebase_path(import_dir, root_build_dir), |
| 122 ] | 135 ] |
| 123 } | 136 } |
| 124 } | 137 } |
| 125 | 138 |
| 126 if (defined(invoker.variant)) { | 139 if (cpp_only) { |
| 127 args += [ | 140 args += [ |
| 128 "--variant", | |
| 129 invoker.variant, | |
| 130 "-g", | 141 "-g", |
| 131 "c++", | 142 "c++", |
| 132 ] | 143 ] |
| 133 } else { | 144 } else { |
| 134 args += [ | 145 args += [ |
| 135 "-g", | 146 "-g", |
| 136 "c++,javascript,java", | 147 "c++,javascript,java", |
| 137 ] | 148 ] |
| 138 } | 149 } |
| 139 | 150 |
| 151 if (defined(invoker.variant)) { |
| 152 args += [ |
| 153 "--variant", |
| 154 invoker.variant, |
| 155 ] |
| 156 } |
| 157 |
| 140 if (defined(invoker.typemaps)) { | 158 if (defined(invoker.typemaps)) { |
| 141 foreach(typemap, invoker.typemaps) { | 159 foreach(typemap, invoker.typemaps) { |
| 142 args += [ | 160 args += [ |
| 143 "--typemap", | 161 "--typemap", |
| 144 rebase_path(typemap, root_build_dir), | 162 rebase_path(typemap, root_build_dir), |
| 145 ] | 163 ] |
| 146 } | 164 } |
| 147 } | 165 } |
| 148 } | 166 } |
| 149 } | 167 } |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 265 # //mojo/something:something and we can append "_java" to get the java | 283 # //mojo/something:something and we can append "_java" to get the java |
| 266 # dependency name. | 284 # dependency name. |
| 267 full_name = get_label_info(d, "label_no_toolchain") | 285 full_name = get_label_info(d, "label_no_toolchain") |
| 268 deps += [ "${full_name}_java" ] | 286 deps += [ "${full_name}_java" ] |
| 269 } | 287 } |
| 270 | 288 |
| 271 srcjar_deps = [ ":$java_srcjar_target_name" ] | 289 srcjar_deps = [ ":$java_srcjar_target_name" ] |
| 272 } | 290 } |
| 273 } | 291 } |
| 274 } | 292 } |
| OLD | NEW |