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 # This template makes a stub for a Linux system library that dynamically loads | 5 # This template makes a stub for a Linux system library that dynamically loads |
6 # it at runtime. | 6 # it at runtime. |
7 | 7 |
8 # name: Name to use for the value of the --name arg. | 8 # name: Name to use for the value of the --name arg. |
9 # output_h/output_cc: Names for the generated header/cc file with no dir. | 9 # output_h/output_cc: Names for the generated header/cc file with no dir. |
10 # header: header file to process. Example: "<foo/bar.h>" | 10 # header: header file to process. Example: "<foo/bar.h>" |
11 # functions: List of strings for functions to process. | 11 # functions: List of strings for functions to process. |
12 # config: (optional) Label of the config generated by pkgconfig. | 12 # config: (optional) Label of the config generated by pkgconfig. |
13 # bundled_header: (optional) | 13 # bundled_header: (optional) |
14 template("generate_library_loader") { | 14 template("generate_library_loader") { |
15 output_h = "$root_gen_dir/library_loaders/" + invoker.output_h | 15 output_h = "$root_gen_dir/library_loaders/" + invoker.output_h |
16 output_cc = "$root_gen_dir/library_loaders/" + invoker.output_cc | 16 output_cc = "$root_gen_dir/library_loaders/" + invoker.output_cc |
17 | 17 |
18 action_visibility = [ ":$target_name" ] | 18 action_visibility = [ ":$target_name" ] |
19 action("${target_name}_loader") { | 19 action("${target_name}_loader") { |
20 visibility = action_visibility | 20 visibility = action_visibility |
21 | 21 |
22 script = "//tools/generate_library_loader/generate_library_loader.py" | 22 script = "//tools/generate_library_loader/generate_library_loader.py" |
23 if (defined(invoker.visibility)) { | 23 if (defined(invoker.visibility)) { |
24 visibility = invoker.visibility | 24 visibility = invoker.visibility |
25 } | 25 } |
26 | 26 |
27 outputs = [ output_h, output_cc ] | 27 outputs = [ |
| 28 output_h, |
| 29 output_cc, |
| 30 ] |
28 | 31 |
29 args = [ | 32 args = [ |
30 "--name", invoker.name, | 33 "--name", |
31 "--output-h", rebase_path(output_h), | 34 invoker.name, |
32 "--output-cc", rebase_path(output_cc), | 35 "--output-h", |
33 "--header", invoker.header, | 36 rebase_path(output_h), |
| 37 "--output-cc", |
| 38 rebase_path(output_cc), |
| 39 "--header", |
| 40 invoker.header, |
| 41 |
34 # Note GYP build exposes a per-target variable to control this, which, if | 42 # Note GYP build exposes a per-target variable to control this, which, if |
35 # manually set to true, will disable dlopen(). Its not clear this is | 43 # manually set to true, will disable dlopen(). Its not clear this is |
36 # needed, so here we just leave off. If this can be done globally, we can | 44 # needed, so here we just leave off. If this can be done globally, we can |
37 # expose one switch for this value, otherwise we need to add a template | 45 # expose one switch for this value, otherwise we need to add a template |
38 # param for this. | 46 # param for this. |
39 "--link-directly=0", | 47 "--link-directly=0", |
40 ] | 48 ] |
41 if (defined(invoker.bundled_header)) { | 49 if (defined(invoker.bundled_header)) { |
42 args += [ "--bundled-header", invoker.bundled_header ] | 50 args += [ |
| 51 "--bundled-header", |
| 52 invoker.bundled_header, |
| 53 ] |
43 } | 54 } |
44 args += invoker.functions | 55 args += invoker.functions |
45 } | 56 } |
46 | 57 |
47 source_set(target_name) { | 58 source_set(target_name) { |
48 if (defined(invoker.config)) { | 59 if (defined(invoker.config)) { |
49 public_configs = [ invoker.config ] | 60 public_configs = [ invoker.config ] |
50 } | 61 } |
51 sources = [ output_h, output_cc ] | 62 sources = [ |
52 deps = [ ":${target_name}_loader" ] | 63 output_h, |
| 64 output_cc, |
| 65 ] |
| 66 deps = [ |
| 67 ":${target_name}_loader", |
| 68 ] |
53 } | 69 } |
54 } | 70 } |
OLD | NEW |