| 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 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 "{{source_gen_dir}}/{{source_name_part}}.mojom.h", | 120 "{{source_gen_dir}}/{{source_name_part}}.mojom.h", |
| 121 "{{source_gen_dir}}/{{source_name_part}}.mojom-internal.h", | 121 "{{source_gen_dir}}/{{source_name_part}}.mojom-internal.h", |
| 122 ] | 122 ] |
| 123 generator_dart_outputs = | 123 generator_dart_outputs = |
| 124 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.dart" ] | 124 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.dart" ] |
| 125 generator_java_outputs = | 125 generator_java_outputs = |
| 126 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ] | 126 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ] |
| 127 generator_js_outputs = [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ] | 127 generator_js_outputs = [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ] |
| 128 generator_python_outputs = | 128 generator_python_outputs = |
| 129 [ "{{source_gen_dir}}/{{source_name_part}}_mojom.py" ] | 129 [ "{{source_gen_dir}}/{{source_name_part}}_mojom.py" ] |
| 130 generator_python_zip_output = "$target_out_dir/$target_name.pyzip" |
| 130 | 131 |
| 131 rebased_mojo_sdk_public_deps = [] | 132 rebased_mojo_sdk_public_deps = [] |
| 132 if (defined(invoker.mojo_sdk_public_deps)) { | 133 if (defined(invoker.mojo_sdk_public_deps)) { |
| 133 foreach(sdk_dep, invoker.mojo_sdk_public_deps) { | 134 foreach(sdk_dep, invoker.mojo_sdk_public_deps) { |
| 134 # Check that the SDK dep was not mistakenly given as an absolute path. | 135 # Check that the SDK dep was not mistakenly given as an absolute path. |
| 135 assert(get_path_info(sdk_dep, "abspath") != sdk_dep) | 136 assert(get_path_info(sdk_dep, "abspath") != sdk_dep) |
| 136 rebased_mojo_sdk_public_deps += [ rebase_path(sdk_dep, ".", mojo_root) ] | 137 rebased_mojo_sdk_public_deps += [ rebase_path(sdk_dep, ".", mojo_root) ] |
| 137 } | 138 } |
| 138 } | 139 } |
| 139 | 140 |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 public_deps += invoker.public_deps | 207 public_deps += invoker.public_deps |
| 207 } | 208 } |
| 208 | 209 |
| 209 deps = [ | 210 deps = [ |
| 210 ":$generator_target_name", | 211 ":$generator_target_name", |
| 211 ] | 212 ] |
| 212 deps += rebased_mojo_sdk_deps | 213 deps += rebased_mojo_sdk_deps |
| 213 if (defined(invoker.deps)) { | 214 if (defined(invoker.deps)) { |
| 214 deps += invoker.deps | 215 deps += invoker.deps |
| 215 } | 216 } |
| 217 data_deps = [ ":${target_name}_python" ] |
| 218 if (defined(invoker.mojo_sdk_deps)) { |
| 219 foreach(sdk_dep, invoker.mojo_sdk_deps) { |
| 220 # Check that the SDK dep was not mistakenly given as an absolute path. |
| 221 assert(get_path_info(sdk_dep, "abspath") != sdk_dep) |
| 222 deps += [ rebase_path(sdk_dep, ".", mojo_root) ] |
| 223 } |
| 224 } |
| 216 } | 225 } |
| 217 | 226 |
| 218 all_deps = rebased_mojo_sdk_deps + rebased_mojo_sdk_public_deps | 227 all_deps = rebased_mojo_sdk_deps + rebased_mojo_sdk_public_deps |
| 219 if (defined(invoker.deps)) { | 228 if (defined(invoker.deps)) { |
| 220 all_deps += invoker.deps | 229 all_deps += invoker.deps |
| 221 } | 230 } |
| 222 if (defined(invoker.public_deps)) { | 231 if (defined(invoker.public_deps)) { |
| 223 all_deps += invoker.public_deps | 232 all_deps += invoker.public_deps |
| 224 } | 233 } |
| 225 | 234 |
| 226 group("${target_name}__is_mojom") { | 235 group("${target_name}__is_mojom") { |
| 227 } | 236 } |
| 228 | 237 |
| 229 # Explicitly ensure that all dependencies (invoker.deps and | 238 # Explicitly ensure that all dependencies (invoker.deps and |
| 230 # invoker.public_deps) are mojom targets themselves. | 239 # invoker.public_deps) are mojom targets themselves. |
| 231 group("${target_name}__check_deps_are_all_mojom") { | 240 group("${target_name}__check_deps_are_all_mojom") { |
| 232 deps = [] | 241 deps = [] |
| 233 foreach(d, all_deps) { | 242 foreach(d, all_deps) { |
| 234 name = get_label_info(d, "label_no_toolchain") | 243 name = get_label_info(d, "label_no_toolchain") |
| 235 toolchain = get_label_info(d, "toolchain") | 244 toolchain = get_label_info(d, "toolchain") |
| 236 deps += [ "${name}__is_mojom(${toolchain})" ] | 245 deps += [ "${name}__is_mojom(${toolchain})" ] |
| 237 } | 246 } |
| 238 } | 247 } |
| 239 | 248 |
| 249 action("${target_name}_python") { |
| 250 script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_root) |
| 251 |
| 252 inputs = process_file_template(invoker.sources, generator_python_outputs) |
| 253 |
| 254 deps = [] |
| 255 zip_inputs = [] |
| 256 |
| 257 foreach(d, all_deps) { |
| 258 # Resolve the name, so that a target //mojo/something becomes |
| 259 # //mojo/something:something and we can append "_python" to get the python |
| 260 # dependency name. |
| 261 full_name = get_label_info(d, "label_no_toolchain") |
| 262 dep_name = get_label_info(d, "name") |
| 263 dep_target_out_dir = get_label_info(d, "target_out_dir") |
| 264 deps += [ "${full_name}_python" ] |
| 265 zip_inputs += [ "$dep_target_out_dir/$dep_name.pyzip" ] |
| 266 } |
| 267 |
| 268 output = generator_python_zip_output |
| 269 outputs = [ |
| 270 output, |
| 271 ] |
| 272 |
| 273 rebase_base_dir = rebase_path(target_gen_dir, root_build_dir) |
| 274 rebase_inputs = rebase_path(inputs, root_build_dir) |
| 275 rebase_zip_inputs = rebase_path(zip_inputs, root_build_dir) |
| 276 rebase_output = rebase_path(output, root_build_dir) |
| 277 args = [ |
| 278 "--base-dir=$rebase_base_dir", |
| 279 "--inputs=$rebase_inputs", |
| 280 "--zip-inputs=$rebase_zip_inputs", |
| 281 "--output=$rebase_output", |
| 282 ] |
| 283 } |
| 284 |
| 240 if (is_android) { | 285 if (is_android) { |
| 241 import("//build/config/android/rules.gni") | 286 import("//build/config/android/rules.gni") |
| 242 | 287 |
| 243 java_target_name = target_name + "_java" | 288 java_target_name = target_name + "_java" |
| 244 android_library(java_target_name) { | 289 android_library(java_target_name) { |
| 245 deps = rebase_path([ | 290 deps = rebase_path([ |
| 246 "mojo/public/java:bindings", | 291 "mojo/public/java:bindings", |
| 247 "mojo/public/java:system", | 292 "mojo/public/java:system", |
| 248 ], | 293 ], |
| 249 ".", | 294 ".", |
| 250 mojo_root) | 295 mojo_root) |
| 251 | 296 |
| 252 foreach(d, all_deps) { | 297 foreach(d, all_deps) { |
| 253 # Resolve the name, so that a target //mojo/something becomes | 298 # Resolve the name, so that a target //mojo/something becomes |
| 254 # //mojo/something:something and we can append "_java" to get the java | 299 # //mojo/something:something and we can append "_java" to get the java |
| 255 # dependency name. | 300 # dependency name. |
| 256 full_name = get_label_info(d, "label_no_toolchain") | 301 full_name = get_label_info(d, "label_no_toolchain") |
| 257 deps += [ "${full_name}_java" ] | 302 deps += [ "${full_name}_java" ] |
| 258 } | 303 } |
| 259 | 304 |
| 260 srcjars = process_file_template(invoker.sources, generator_java_outputs) | 305 srcjars = process_file_template(invoker.sources, generator_java_outputs) |
| 261 } | 306 } |
| 262 } | 307 } |
| 263 } | 308 } |
| OLD | NEW |