| 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++/JavaScript/Java source files from mojom files. The output files | 7 # Generate C++/JavaScript/Java 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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 template("mojom") { | 49 template("mojom") { |
| 50 assert( | 50 assert( |
| 51 defined(invoker.sources) || defined(invoker.deps) || | 51 defined(invoker.sources) || defined(invoker.deps) || |
| 52 defined(invoker.public_deps) || defined(invoker.mojo_sdk_deps) || | 52 defined(invoker.public_deps) || defined(invoker.mojo_sdk_deps) || |
| 53 defined(invoker.mojo_sdk_public_deps), | 53 defined(invoker.mojo_sdk_public_deps), |
| 54 "\"sources\" or \"deps\" must be defined for the $target_name template.") | 54 "\"sources\" or \"deps\" must be defined for the $target_name template.") |
| 55 | 55 |
| 56 cpp_sources_suffix = "cpp_sources" | 56 cpp_sources_suffix = "cpp_sources" |
| 57 cpp_sources_target_name = "${target_name}_${cpp_sources_suffix}" | 57 cpp_sources_target_name = "${target_name}_${cpp_sources_suffix}" |
| 58 if (defined(invoker.sources)) { | 58 if (defined(invoker.sources)) { |
| 59 generator_root = rebase_path("mojo/public/tools/bindings", ".", mojo_root) | 59 generator_root = "//mojo/public/tools/bindings" |
| 60 generator_script = "$generator_root/mojom_bindings_generator.py" | 60 generator_script = "$generator_root/mojom_bindings_generator.py" |
| 61 generator_sources = [ | 61 generator_sources = [ |
| 62 generator_script, | 62 generator_script, |
| 63 "$generator_root/generators/cpp_templates/enum_macros.tmpl", | 63 "$generator_root/generators/cpp_templates/enum_macros.tmpl", |
| 64 "$generator_root/generators/cpp_templates/interface_declaration.tmpl", | 64 "$generator_root/generators/cpp_templates/interface_declaration.tmpl", |
| 65 "$generator_root/generators/cpp_templates/interface_definition.tmpl", | 65 "$generator_root/generators/cpp_templates/interface_definition.tmpl", |
| 66 "$generator_root/generators/cpp_templates/interface_macros.tmpl", | 66 "$generator_root/generators/cpp_templates/interface_macros.tmpl", |
| 67 "$generator_root/generators/cpp_templates/interface_proxy_declaration.tmpl
", | 67 "$generator_root/generators/cpp_templates/interface_proxy_declaration.tmpl
", |
| 68 "$generator_root/generators/cpp_templates/interface_request_validator_decl
aration.tmpl", | 68 "$generator_root/generators/cpp_templates/interface_request_validator_decl
aration.tmpl", |
| 69 "$generator_root/generators/cpp_templates/interface_response_validator_dec
laration.tmpl", | 69 "$generator_root/generators/cpp_templates/interface_response_validator_dec
laration.tmpl", |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ] | 130 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ] |
| 131 generator_java_outputs = | 131 generator_java_outputs = |
| 132 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ] | 132 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ] |
| 133 } | 133 } |
| 134 | 134 |
| 135 rebased_mojo_sdk_public_deps = [] | 135 rebased_mojo_sdk_public_deps = [] |
| 136 if (defined(invoker.mojo_sdk_public_deps)) { | 136 if (defined(invoker.mojo_sdk_public_deps)) { |
| 137 foreach(sdk_dep, invoker.mojo_sdk_public_deps) { | 137 foreach(sdk_dep, invoker.mojo_sdk_public_deps) { |
| 138 # Check that the SDK dep was not mistakenly given as an absolute path. | 138 # Check that the SDK dep was not mistakenly given as an absolute path. |
| 139 assert(get_path_info(sdk_dep, "abspath") != sdk_dep) | 139 assert(get_path_info(sdk_dep, "abspath") != sdk_dep) |
| 140 rebased_mojo_sdk_public_deps += [ rebase_path(sdk_dep, ".", mojo_root) ] | 140 rebased_mojo_sdk_public_deps += [ rebase_path(sdk_dep, ".", "//") ] |
| 141 } | 141 } |
| 142 } | 142 } |
| 143 | 143 |
| 144 rebased_mojo_sdk_deps = [] | 144 rebased_mojo_sdk_deps = [] |
| 145 if (defined(invoker.mojo_sdk_deps)) { | 145 if (defined(invoker.mojo_sdk_deps)) { |
| 146 foreach(sdk_dep, invoker.mojo_sdk_deps) { | 146 foreach(sdk_dep, invoker.mojo_sdk_deps) { |
| 147 # Check that the SDK dep was not mistakenly given as an absolute path. | 147 # Check that the SDK dep was not mistakenly given as an absolute path. |
| 148 assert(get_path_info(sdk_dep, "abspath") != sdk_dep) | 148 assert(get_path_info(sdk_dep, "abspath") != sdk_dep) |
| 149 rebased_mojo_sdk_deps += [ rebase_path(sdk_dep, ".", mojo_root) ] | 149 rebased_mojo_sdk_deps += [ rebase_path(sdk_dep, ".", "//") ] |
| 150 } | 150 } |
| 151 } | 151 } |
| 152 | 152 |
| 153 if (defined(invoker.sources)) { | 153 if (defined(invoker.sources)) { |
| 154 generator_target_name = target_name + "__generator" | 154 generator_target_name = target_name + "__generator" |
| 155 action_foreach(generator_target_name) { | 155 action_foreach(generator_target_name) { |
| 156 script = generator_script | 156 script = generator_script |
| 157 inputs = generator_sources | 157 inputs = generator_sources |
| 158 sources = invoker.sources | 158 sources = invoker.sources |
| 159 outputs = | 159 outputs = |
| 160 generator_cpp_outputs + generator_java_outputs + generator_js_outputs | 160 generator_cpp_outputs + generator_java_outputs + generator_js_outputs |
| 161 args = [ | 161 args = [ |
| 162 "{{source}}", | 162 "{{source}}", |
| 163 "--use_bundled_pylibs", | 163 "--use_bundled_pylibs", |
| 164 "-d", | 164 "-d", |
| 165 rebase_path("//", root_build_dir), | 165 rebase_path("//", root_build_dir), |
| 166 "-I", | 166 "-I", |
| 167 rebase_path("//", root_build_dir), | 167 rebase_path("//", root_build_dir), |
| 168 "-I", | |
| 169 rebase_path(mojo_root, root_build_dir), | |
| 170 "-o", | 168 "-o", |
| 171 rebase_path(root_gen_dir), | 169 rebase_path(root_gen_dir), |
| 172 ] | 170 ] |
| 173 | 171 |
| 174 if (defined(invoker.import_dirs)) { | 172 if (defined(invoker.import_dirs)) { |
| 175 foreach(import_dir, invoker.import_dirs) { | 173 foreach(import_dir, invoker.import_dirs) { |
| 176 args += [ | 174 args += [ |
| 177 "-I", | 175 "-I", |
| 178 rebase_path(import_dir, root_build_dir), | 176 rebase_path(import_dir, root_build_dir), |
| 179 ] | 177 ] |
| 180 } | 178 } |
| 181 } | 179 } |
| 182 } | 180 } |
| 183 } | 181 } |
| 184 | 182 |
| 185 source_set(target_name) { | 183 source_set(target_name) { |
| 186 if (defined(invoker.visibility)) { | 184 if (defined(invoker.visibility)) { |
| 187 visibility = invoker.visibility | 185 visibility = invoker.visibility |
| 188 } | 186 } |
| 189 if (defined(invoker.testonly)) { | 187 if (defined(invoker.testonly)) { |
| 190 testonly = invoker.testonly | 188 testonly = invoker.testonly |
| 191 } | 189 } |
| 192 if (defined(invoker.sources)) { | 190 if (defined(invoker.sources)) { |
| 193 data = process_file_template(invoker.sources, generator_js_outputs) | 191 data = process_file_template(invoker.sources, generator_js_outputs) |
| 194 } | 192 } |
| 195 | 193 |
| 196 public_deps = rebase_path([ "mojo/public/cpp/bindings" ], ".", mojo_root) | 194 public_deps = [ |
| 195 "//mojo/public/cpp/bindings", |
| 196 ] |
| 197 if (defined(invoker.sources)) { | 197 if (defined(invoker.sources)) { |
| 198 public_deps += [ ":${cpp_sources_target_name}" ] | 198 public_deps += [ ":${cpp_sources_target_name}" ] |
| 199 } | 199 } |
| 200 public_deps += rebased_mojo_sdk_public_deps | 200 public_deps += rebased_mojo_sdk_public_deps |
| 201 if (defined(invoker.public_deps)) { | 201 if (defined(invoker.public_deps)) { |
| 202 public_deps += invoker.public_deps | 202 public_deps += invoker.public_deps |
| 203 } | 203 } |
| 204 | 204 |
| 205 deps = [] | 205 deps = [] |
| 206 if (defined(invoker.sources)) { | 206 if (defined(invoker.sources)) { |
| 207 public_deps += [ ":$generator_target_name" ] | 207 public_deps += [ ":$generator_target_name" ] |
| 208 } | 208 } |
| 209 deps += rebased_mojo_sdk_deps | 209 deps += rebased_mojo_sdk_deps |
| 210 if (defined(invoker.deps)) { | 210 if (defined(invoker.deps)) { |
| 211 deps += invoker.deps | 211 deps += invoker.deps |
| 212 } | 212 } |
| 213 if (defined(invoker.mojo_sdk_deps)) { | 213 if (defined(invoker.mojo_sdk_deps)) { |
| 214 foreach(sdk_dep, invoker.mojo_sdk_deps) { | 214 foreach(sdk_dep, invoker.mojo_sdk_deps) { |
| 215 # Check that the SDK dep was not mistakenly given as an absolute path. | 215 # Check that the SDK dep was not mistakenly given as an absolute path. |
| 216 assert(get_path_info(sdk_dep, "abspath") != sdk_dep) | 216 assert(get_path_info(sdk_dep, "abspath") != sdk_dep) |
| 217 deps += [ rebase_path(sdk_dep, ".", mojo_root) ] | 217 deps += [ rebase_path(sdk_dep, ".", "//") ] |
| 218 } | 218 } |
| 219 } | 219 } |
| 220 } | 220 } |
| 221 | 221 |
| 222 all_deps = rebased_mojo_sdk_deps + rebased_mojo_sdk_public_deps | 222 all_deps = rebased_mojo_sdk_deps + rebased_mojo_sdk_public_deps |
| 223 if (defined(invoker.deps)) { | 223 if (defined(invoker.deps)) { |
| 224 all_deps += invoker.deps | 224 all_deps += invoker.deps |
| 225 } | 225 } |
| 226 if (defined(invoker.public_deps)) { | 226 if (defined(invoker.public_deps)) { |
| 227 all_deps += invoker.public_deps | 227 all_deps += invoker.public_deps |
| (...skipping 21 matching lines...) Expand all Loading... |
| 249 # this target *except* mojo/public/cpp/bindings and other *_cpp_sources | 249 # this target *except* mojo/public/cpp/bindings and other *_cpp_sources |
| 250 # targets. | 250 # targets. |
| 251 source_set(cpp_sources_target_name) { | 251 source_set(cpp_sources_target_name) { |
| 252 if (defined(invoker.testonly)) { | 252 if (defined(invoker.testonly)) { |
| 253 testonly = invoker.testonly | 253 testonly = invoker.testonly |
| 254 } | 254 } |
| 255 sources = process_file_template(invoker.sources, generator_cpp_outputs) | 255 sources = process_file_template(invoker.sources, generator_cpp_outputs) |
| 256 deps = [ | 256 deps = [ |
| 257 ":$generator_target_name", | 257 ":$generator_target_name", |
| 258 "//base", | 258 "//base", |
| 259 rebase_path("mojo/public/interfaces/bindings:bindings__generator", | 259 "//mojo/public/interfaces/bindings:bindings__generator", |
| 260 ".", | |
| 261 mojo_root), | |
| 262 ] | 260 ] |
| 263 foreach(d, all_deps) { | 261 foreach(d, all_deps) { |
| 264 # Resolve the name, so that a target //mojo/something becomes | 262 # Resolve the name, so that a target //mojo/something becomes |
| 265 # //mojo/something:something and we can append cpp_sources_suffix to | 263 # //mojo/something:something and we can append cpp_sources_suffix to |
| 266 # get the cpp dependency name. | 264 # get the cpp dependency name. |
| 267 full_name = get_label_info(d, "label_no_toolchain") | 265 full_name = get_label_info(d, "label_no_toolchain") |
| 268 deps += [ "${full_name}_${cpp_sources_suffix}" ] | 266 deps += [ "${full_name}_${cpp_sources_suffix}" ] |
| 269 } | 267 } |
| 270 if (!defined(invoker.with_environment) || invoker.with_environment) { | 268 if (!defined(invoker.with_environment) || invoker.with_environment) { |
| 271 deps += [ "//mojo/environment:chromium" ] | 269 deps += [ "//mojo/environment:chromium" ] |
| 272 } | 270 } |
| 273 } | 271 } |
| 274 } | 272 } |
| 275 | 273 |
| 276 if (is_android) { | 274 if (is_android) { |
| 277 import("//build/config/android/rules.gni") | 275 import("//build/config/android/rules.gni") |
| 278 | 276 |
| 279 java_srcjar_target_name = target_name + "_java_sources" | 277 java_srcjar_target_name = target_name + "_java_sources" |
| 280 action(java_srcjar_target_name) { | 278 action(java_srcjar_target_name) { |
| 281 script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_root) | 279 script = "//mojo/public/tools/gn/zip.py" |
| 282 inputs = process_file_template(invoker.sources, generator_java_outputs) | 280 inputs = process_file_template(invoker.sources, generator_java_outputs) |
| 283 output = "$target_gen_dir/$target_name.srcjar" | 281 output = "$target_gen_dir/$target_name.srcjar" |
| 284 outputs = [ | 282 outputs = [ |
| 285 output, | 283 output, |
| 286 ] | 284 ] |
| 287 rebase_inputs = rebase_path(inputs, root_build_dir) | 285 rebase_inputs = rebase_path(inputs, root_build_dir) |
| 288 rebase_output = rebase_path(output, root_build_dir) | 286 rebase_output = rebase_path(output, root_build_dir) |
| 289 args = [ | 287 args = [ |
| 290 "--zip-inputs=$rebase_inputs", | 288 "--zip-inputs=$rebase_inputs", |
| 291 "--output=$rebase_output", | 289 "--output=$rebase_output", |
| 292 ] | 290 ] |
| 293 deps = [ | 291 deps = [ |
| 294 ":$generator_target_name", | 292 ":$generator_target_name", |
| 295 ] | 293 ] |
| 296 } | 294 } |
| 297 | 295 |
| 298 java_target_name = target_name + "_java" | 296 java_target_name = target_name + "_java" |
| 299 android_library(java_target_name) { | 297 android_library(java_target_name) { |
| 300 deps = rebase_path([ | 298 deps = [ |
| 301 "mojo/public/java:bindings", | 299 "//mojo/public/java:bindings", |
| 302 "mojo/public/java:system", | 300 "//mojo/public/java:system", |
| 303 ], | 301 ] |
| 304 ".", | |
| 305 mojo_root) | |
| 306 | 302 |
| 307 foreach(d, all_deps) { | 303 foreach(d, all_deps) { |
| 308 # Resolve the name, so that a target //mojo/something becomes | 304 # Resolve the name, so that a target //mojo/something becomes |
| 309 # //mojo/something:something and we can append "_java" to get the java | 305 # //mojo/something:something and we can append "_java" to get the java |
| 310 # dependency name. | 306 # dependency name. |
| 311 full_name = get_label_info(d, "label_no_toolchain") | 307 full_name = get_label_info(d, "label_no_toolchain") |
| 312 deps += [ "${full_name}_java" ] | 308 deps += [ "${full_name}_java" ] |
| 313 } | 309 } |
| 314 | 310 |
| 315 srcjar_deps = [ ":$java_srcjar_target_name" ] | 311 srcjar_deps = [ ":$java_srcjar_target_name" ] |
| 316 } | 312 } |
| 317 } | 313 } |
| 318 } | 314 } |
| OLD | NEW |