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 # Instantiate grit. This will produce a script target to run grit, and a | 5 # Instantiate grit. This will produce a script target to run grit, and a |
6 # static library that compiles the .cc files. | 6 # static library that compiles the .cc files. |
7 # | 7 # |
8 # Parameters | 8 # Parameters |
9 # | 9 # |
10 # source (required) | 10 # source (required) |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 assert_files_flags += [ | 251 assert_files_flags += [ |
252 "--assert-file-list=" + rebase_path(asserted_list_file, root_build_dir), | 252 "--assert-file-list=" + rebase_path(asserted_list_file, root_build_dir), |
253 ] | 253 ] |
254 grit_outputs = get_path_info( | 254 grit_outputs = get_path_info( |
255 rebase_path(invoker.outputs, ".", output_dir), | 255 rebase_path(invoker.outputs, ".", output_dir), |
256 "abspath") | 256 "abspath") |
257 | 257 |
258 # The config and the action below get this visibility son only the generated | 258 # The config and the action below get this visibility son only the generated |
259 # source set can depend on them. The variable "target_name" will get | 259 # source set can depend on them. The variable "target_name" will get |
260 # overwritten inside the inner classes so we need to compute it here. | 260 # overwritten inside the inner classes so we need to compute it here. |
261 target_visibility = ":$target_name" | 261 target_visibility = [ ":$target_name" ] |
262 | 262 |
263 # The current grit setup makes an file in $output_dir/grit/foo.h that | 263 # The current grit setup makes an file in $output_dir/grit/foo.h that |
264 # the source code expects to include via "grit/foo.h". It would be nice to | 264 # the source code expects to include via "grit/foo.h". It would be nice to |
265 # change this to including absolute paths relative to the root gen directory | 265 # change this to including absolute paths relative to the root gen directory |
266 # (like "mycomponent/foo.h"). This config sets up the include path. | 266 # (like "mycomponent/foo.h"). This config sets up the include path. |
267 grit_config = target_name + "_grit_config" | 267 grit_config = target_name + "_grit_config" |
268 config(grit_config) { | 268 config(grit_config) { |
269 if (!defined(invoker.use_qualified_include) || | 269 if (!defined(invoker.use_qualified_include) || |
270 !invoker.use_qualified_include) { | 270 !invoker.use_qualified_include) { |
271 include_dirs = [ output_dir ] | 271 include_dirs = [ output_dir ] |
(...skipping 22 matching lines...) Expand all Loading... |
294 | 294 |
295 # Add extra defines with -D flags. | 295 # Add extra defines with -D flags. |
296 if (defined(invoker.defines)) { | 296 if (defined(invoker.defines)) { |
297 foreach (i, invoker.defines) { | 297 foreach (i, invoker.defines) { |
298 args += [ "-D", i ] | 298 args += [ "-D", i ] |
299 } | 299 } |
300 } | 300 } |
301 | 301 |
302 args += grit_flags + assert_files_flags | 302 args += grit_flags + assert_files_flags |
303 | 303 |
304 visibility = target_visibility | 304 if (defined(invoker.visibility)) { |
| 305 # This needs to include both what the invoker specified (since they |
| 306 # probably include generated headers from this target), as well as the |
| 307 # generated source set (since there's no guarantee that the visibility |
| 308 # specified by the invoker includes our target). |
| 309 # |
| 310 # Only define visibility at all if the invoker specified it. Otherwise, |
| 311 # we want to keep the public "no visibility specified" default. |
| 312 visibility = target_visibility |
| 313 |
| 314 # This won't work if the invoker specifies a list of targets (an uncommon |
| 315 # case). We may need to enhance the language to make this possible. |
| 316 visibility += [ invoker.visibility ] |
| 317 } |
305 | 318 |
306 deps = [ "//tools/grit:grit_sources" ] | 319 deps = [ "//tools/grit:grit_sources" ] |
307 if (defined(invoker.deps)) { | 320 if (defined(invoker.deps)) { |
308 deps += invoker.deps | 321 deps += invoker.deps |
309 } | 322 } |
310 } | 323 } |
311 | 324 |
312 # This is the thing that people actually link with, it must be named the | 325 # This is the thing that people actually link with, it must be named the |
313 # same as the argument the template was invoked with. | 326 # same as the argument the template was invoked with. |
314 source_set(target_name) { | 327 source_set(target_name) { |
315 # Since we generate a file, we need to be run before the targets that | 328 # Since we generate a file, we need to be run before the targets that |
316 # depend on us. | 329 # depend on us. |
317 sources = grit_outputs | 330 sources = grit_outputs |
318 | 331 |
319 # Deps set on the template invocation will go on the grit script running | 332 # Deps set on the template invocation will go on the grit script running |
320 # target rather than this library. | 333 # target rather than this library. |
321 deps = [ ":$grit_custom_target" ] | 334 deps = [ ":$grit_custom_target" ] |
322 direct_dependent_configs = [ ":$grit_config" ] | 335 direct_dependent_configs = [ ":$grit_config" ] |
323 | 336 |
324 if (defined(invoker.visibility)) { | 337 if (defined(invoker.visibility)) { |
325 visibility = invoker.visibility | 338 visibility = invoker.visibility |
326 } | 339 } |
327 output_name = grit_output_name | 340 output_name = grit_output_name |
328 } | 341 } |
329 } | 342 } |
OLD | NEW |