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

Side by Side Diff: mojo/public/tools/bindings/mojom.gni

Issue 796373006: Content handler for python. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 months 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 unified diff | Download patch
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « mojo/public/tools/bindings/generators/python_templates/module.py.tmpl ('k') | mojo/public/tools/gn/zip.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698