| 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 import("../../mojo_sdk.gni") | 5 import("../../mojo_sdk.gni") |
| 6 | 6 |
| 7 # Generate C++ and JavaScript source files from mojom files. The output files | 7 # Generate C++ and JavaScript source files from mojom files. The output files |
| 8 # will go under the generated file directory tree with the same path as each | 8 # will go under the generated file directory tree with the same path as each |
| 9 # input file. | 9 # input file. |
| 10 # | 10 # |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 "$generator_root/generators/cpp_templates/struct_serialization_declaration.t
mpl", | 66 "$generator_root/generators/cpp_templates/struct_serialization_declaration.t
mpl", |
| 67 "$generator_root/generators/cpp_templates/struct_serialization_definition.tm
pl", | 67 "$generator_root/generators/cpp_templates/struct_serialization_definition.tm
pl", |
| 68 "$generator_root/generators/cpp_templates/struct_macros.tmpl", | 68 "$generator_root/generators/cpp_templates/struct_macros.tmpl", |
| 69 "$generator_root/generators/cpp_templates/wrapper_class_declaration.tmpl", | 69 "$generator_root/generators/cpp_templates/wrapper_class_declaration.tmpl", |
| 70 "$generator_root/generators/cpp_templates/wrapper_class_definition.tmpl", | 70 "$generator_root/generators/cpp_templates/wrapper_class_definition.tmpl", |
| 71 "$generator_root/generators/dart_templates/enum_definition.tmpl", | 71 "$generator_root/generators/dart_templates/enum_definition.tmpl", |
| 72 "$generator_root/generators/dart_templates/interface_definition.tmpl", | 72 "$generator_root/generators/dart_templates/interface_definition.tmpl", |
| 73 "$generator_root/generators/dart_templates/module.lib.tmpl", | 73 "$generator_root/generators/dart_templates/module.lib.tmpl", |
| 74 "$generator_root/generators/dart_templates/module_definition.tmpl", | 74 "$generator_root/generators/dart_templates/module_definition.tmpl", |
| 75 "$generator_root/generators/dart_templates/struct_definition.tmpl", | 75 "$generator_root/generators/dart_templates/struct_definition.tmpl", |
| 76 "$generator_root/generators/go_templates/source.tmpl", |
| 76 "$generator_root/generators/java_templates/constant_definition.tmpl", | 77 "$generator_root/generators/java_templates/constant_definition.tmpl", |
| 77 "$generator_root/generators/java_templates/constants.java.tmpl", | 78 "$generator_root/generators/java_templates/constants.java.tmpl", |
| 78 "$generator_root/generators/java_templates/enum.java.tmpl", | 79 "$generator_root/generators/java_templates/enum.java.tmpl", |
| 79 "$generator_root/generators/java_templates/enum_definition.tmpl", | 80 "$generator_root/generators/java_templates/enum_definition.tmpl", |
| 80 "$generator_root/generators/java_templates/header.java.tmpl", | 81 "$generator_root/generators/java_templates/header.java.tmpl", |
| 81 "$generator_root/generators/java_templates/interface.java.tmpl", | 82 "$generator_root/generators/java_templates/interface.java.tmpl", |
| 82 "$generator_root/generators/java_templates/interface_definition.tmpl", | 83 "$generator_root/generators/java_templates/interface_definition.tmpl", |
| 83 "$generator_root/generators/java_templates/interface_internal.java.tmpl", | 84 "$generator_root/generators/java_templates/interface_internal.java.tmpl", |
| 84 "$generator_root/generators/java_templates/struct.java.tmpl", | 85 "$generator_root/generators/java_templates/struct.java.tmpl", |
| 85 "$generator_root/generators/java_templates/struct_definition.tmpl", | 86 "$generator_root/generators/java_templates/struct_definition.tmpl", |
| 86 "$generator_root/generators/js_templates/enum_definition.tmpl", | 87 "$generator_root/generators/js_templates/enum_definition.tmpl", |
| 87 "$generator_root/generators/js_templates/interface_definition.tmpl", | 88 "$generator_root/generators/js_templates/interface_definition.tmpl", |
| 88 "$generator_root/generators/js_templates/module.amd.tmpl", | 89 "$generator_root/generators/js_templates/module.amd.tmpl", |
| 89 "$generator_root/generators/js_templates/module.sky.tmpl", | 90 "$generator_root/generators/js_templates/module.sky.tmpl", |
| 90 "$generator_root/generators/js_templates/module_definition.tmpl", | 91 "$generator_root/generators/js_templates/module_definition.tmpl", |
| 91 "$generator_root/generators/js_templates/struct_definition.tmpl", | 92 "$generator_root/generators/js_templates/struct_definition.tmpl", |
| 92 "$generator_root/generators/python_templates/module_macros.tmpl", | 93 "$generator_root/generators/python_templates/module_macros.tmpl", |
| 93 "$generator_root/generators/python_templates/module.py.tmpl", | 94 "$generator_root/generators/python_templates/module.py.tmpl", |
| 94 "$generator_root/generators/mojom_cpp_generator.py", | 95 "$generator_root/generators/mojom_cpp_generator.py", |
| 95 "$generator_root/generators/mojom_dart_generator.py", | 96 "$generator_root/generators/mojom_dart_generator.py", |
| 97 "$generator_root/generators/mojom_go_generator.py", |
| 96 "$generator_root/generators/mojom_js_generator.py", | 98 "$generator_root/generators/mojom_js_generator.py", |
| 97 "$generator_root/generators/mojom_java_generator.py", | 99 "$generator_root/generators/mojom_java_generator.py", |
| 98 "$generator_root/generators/mojom_python_generator.py", | 100 "$generator_root/generators/mojom_python_generator.py", |
| 99 "$generator_root/pylib/mojom/__init__.py", | 101 "$generator_root/pylib/mojom/__init__.py", |
| 100 "$generator_root/pylib/mojom/error.py", | 102 "$generator_root/pylib/mojom/error.py", |
| 101 "$generator_root/pylib/mojom/generate/__init__.py", | 103 "$generator_root/pylib/mojom/generate/__init__.py", |
| 102 "$generator_root/pylib/mojom/generate/data.py", | 104 "$generator_root/pylib/mojom/generate/data.py", |
| 103 "$generator_root/pylib/mojom/generate/generator.py", | 105 "$generator_root/pylib/mojom/generate/generator.py", |
| 104 "$generator_root/pylib/mojom/generate/module.py", | 106 "$generator_root/pylib/mojom/generate/module.py", |
| 105 "$generator_root/pylib/mojom/generate/pack.py", | 107 "$generator_root/pylib/mojom/generate/pack.py", |
| 106 "$generator_root/pylib/mojom/generate/template_expander.py", | 108 "$generator_root/pylib/mojom/generate/template_expander.py", |
| 107 "$generator_root/pylib/mojom/parse/__init__.py", | 109 "$generator_root/pylib/mojom/parse/__init__.py", |
| 108 "$generator_root/pylib/mojom/parse/ast.py", | 110 "$generator_root/pylib/mojom/parse/ast.py", |
| 109 "$generator_root/pylib/mojom/parse/lexer.py", | 111 "$generator_root/pylib/mojom/parse/lexer.py", |
| 110 "$generator_root/pylib/mojom/parse/parser.py", | 112 "$generator_root/pylib/mojom/parse/parser.py", |
| 111 "$generator_root/pylib/mojom/parse/translate.py", | 113 "$generator_root/pylib/mojom/parse/translate.py", |
| 112 ] | 114 ] |
| 113 generator_cpp_outputs = [ | 115 generator_cpp_outputs = [ |
| 114 "{{source_gen_dir}}/{{source_name_part}}.mojom.cc", | 116 "{{source_gen_dir}}/{{source_name_part}}.mojom.cc", |
| 115 "{{source_gen_dir}}/{{source_name_part}}.mojom.h", | 117 "{{source_gen_dir}}/{{source_name_part}}.mojom.h", |
| 116 "{{source_gen_dir}}/{{source_name_part}}.mojom-internal.h", | 118 "{{source_gen_dir}}/{{source_name_part}}.mojom-internal.h", |
| 117 ] | 119 ] |
| 118 generator_dart_outputs = | 120 generator_dart_outputs = |
| 119 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.dart" ] | 121 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.dart" ] |
| 122 generator_dart_zip_output = "$target_out_dir/$target_name.dartzip" |
| 120 generator_java_outputs = | 123 generator_java_outputs = |
| 121 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ] | 124 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ] |
| 122 generator_js_outputs = [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ] | 125 generator_js_outputs = [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ] |
| 123 generator_python_outputs = | 126 generator_python_outputs = |
| 124 [ "{{source_gen_dir}}/{{source_name_part}}_mojom.py" ] | 127 [ "{{source_gen_dir}}/{{source_name_part}}_mojom.py" ] |
| 125 generator_python_zip_output = "$target_out_dir/$target_name.pyzip" | 128 generator_python_zip_output = "$target_out_dir/$target_name.pyzip" |
| 126 | 129 |
| 127 rebased_mojo_sdk_public_deps = [] | 130 rebased_mojo_sdk_public_deps = [] |
| 128 if (defined(invoker.mojo_sdk_public_deps)) { | 131 if (defined(invoker.mojo_sdk_public_deps)) { |
| 129 foreach(sdk_dep, invoker.mojo_sdk_public_deps) { | 132 foreach(sdk_dep, invoker.mojo_sdk_public_deps) { |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 public_deps += invoker.public_deps | 205 public_deps += invoker.public_deps |
| 203 } | 206 } |
| 204 | 207 |
| 205 deps = [ | 208 deps = [ |
| 206 ":$generator_target_name", | 209 ":$generator_target_name", |
| 207 ] | 210 ] |
| 208 deps += rebased_mojo_sdk_deps | 211 deps += rebased_mojo_sdk_deps |
| 209 if (defined(invoker.deps)) { | 212 if (defined(invoker.deps)) { |
| 210 deps += invoker.deps | 213 deps += invoker.deps |
| 211 } | 214 } |
| 212 data_deps = [ ":${target_name}_python" ] | 215 data_deps = [ |
| 216 ":${target_name}_python", |
| 217 ":${target_name}_dart", |
| 218 ] |
| 213 if (defined(invoker.mojo_sdk_deps)) { | 219 if (defined(invoker.mojo_sdk_deps)) { |
| 214 foreach(sdk_dep, invoker.mojo_sdk_deps) { | 220 foreach(sdk_dep, invoker.mojo_sdk_deps) { |
| 215 # Check that the SDK dep was not mistakenly given as an absolute path. | 221 # Check that the SDK dep was not mistakenly given as an absolute path. |
| 216 assert(get_path_info(sdk_dep, "abspath") != sdk_dep) | 222 assert(get_path_info(sdk_dep, "abspath") != sdk_dep) |
| 217 deps += [ rebase_path(sdk_dep, ".", mojo_root) ] | 223 deps += [ rebase_path(sdk_dep, ".", mojo_root) ] |
| 218 } | 224 } |
| 219 } | 225 } |
| 220 } | 226 } |
| 221 | 227 |
| 222 all_deps = rebased_mojo_sdk_deps + rebased_mojo_sdk_public_deps | 228 all_deps = rebased_mojo_sdk_deps + rebased_mojo_sdk_public_deps |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 rebase_zip_inputs = rebase_path(zip_inputs, root_build_dir) | 276 rebase_zip_inputs = rebase_path(zip_inputs, root_build_dir) |
| 271 rebase_output = rebase_path(output, root_build_dir) | 277 rebase_output = rebase_path(output, root_build_dir) |
| 272 args = [ | 278 args = [ |
| 273 "--base-dir=$rebase_base_dir", | 279 "--base-dir=$rebase_base_dir", |
| 274 "--inputs=$rebase_inputs", | 280 "--inputs=$rebase_inputs", |
| 275 "--zip-inputs=$rebase_zip_inputs", | 281 "--zip-inputs=$rebase_zip_inputs", |
| 276 "--output=$rebase_output", | 282 "--output=$rebase_output", |
| 277 ] | 283 ] |
| 278 } | 284 } |
| 279 | 285 |
| 286 action("${target_name}_dart") { |
| 287 script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_root) |
| 288 |
| 289 inputs = process_file_template(invoker.sources, generator_dart_outputs) |
| 290 |
| 291 deps = [] |
| 292 zip_inputs = [] |
| 293 |
| 294 foreach(d, all_deps) { |
| 295 # Resolve the name, so that a target //mojo/something becomes |
| 296 # //mojo/something:something and we can append "_dart" to get the dart |
| 297 # dependency name. |
| 298 full_name = get_label_info(d, "label_no_toolchain") |
| 299 dep_name = get_label_info(d, "name") |
| 300 dep_target_out_dir = get_label_info(d, "target_out_dir") |
| 301 deps += [ "${full_name}_dart" ] |
| 302 zip_inputs += [ "$dep_target_out_dir/$dep_name.dartzip" ] |
| 303 } |
| 304 |
| 305 output = generator_dart_zip_output |
| 306 outputs = [ |
| 307 output, |
| 308 ] |
| 309 |
| 310 rebase_base_dir = rebase_path("$root_build_dir/gen/", root_build_dir) |
| 311 rebase_inputs = rebase_path(inputs, root_build_dir) |
| 312 rebase_zip_inputs = rebase_path(zip_inputs, root_build_dir) |
| 313 rebase_output = rebase_path(output, root_build_dir) |
| 314 args = [ |
| 315 "--base-dir=$rebase_base_dir", |
| 316 "--inputs=$rebase_inputs", |
| 317 "--zip-inputs=$rebase_zip_inputs", |
| 318 "--output=$rebase_output", |
| 319 ] |
| 320 } |
| 321 |
| 280 if (is_android) { | 322 if (is_android) { |
| 281 import("//build/config/android/rules.gni") | 323 import("//build/config/android/rules.gni") |
| 282 | 324 |
| 283 java_target_name = target_name + "_java" | 325 java_target_name = target_name + "_java" |
| 284 android_library(java_target_name) { | 326 android_library(java_target_name) { |
| 285 deps = rebase_path([ | 327 deps = rebase_path([ |
| 286 "mojo/public/java:bindings", | 328 "mojo/public/java:bindings", |
| 287 "mojo/public/java:system", | 329 "mojo/public/java:system", |
| 288 ], | 330 ], |
| 289 ".", | 331 ".", |
| 290 mojo_root) | 332 mojo_root) |
| 291 | 333 |
| 292 foreach(d, all_deps) { | 334 foreach(d, all_deps) { |
| 293 # Resolve the name, so that a target //mojo/something becomes | 335 # Resolve the name, so that a target //mojo/something becomes |
| 294 # //mojo/something:something and we can append "_java" to get the java | 336 # //mojo/something:something and we can append "_java" to get the java |
| 295 # dependency name. | 337 # dependency name. |
| 296 full_name = get_label_info(d, "label_no_toolchain") | 338 full_name = get_label_info(d, "label_no_toolchain") |
| 297 deps += [ "${full_name}_java" ] | 339 deps += [ "${full_name}_java" ] |
| 298 } | 340 } |
| 299 | 341 |
| 300 srcjars = process_file_template(invoker.sources, generator_java_outputs) | 342 srcjars = process_file_template(invoker.sources, generator_java_outputs) |
| 301 } | 343 } |
| 302 } | 344 } |
| 303 } | 345 } |
| OLD | NEW |