Chromium Code Reviews| Index: tools/generate_library_loader/generate_library_loader.gni |
| diff --git a/tools/generate_library_loader/generate_library_loader.gni b/tools/generate_library_loader/generate_library_loader.gni |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..af4c728813609bd470103608b97927a1edefe6b9 |
| --- /dev/null |
| +++ b/tools/generate_library_loader/generate_library_loader.gni |
| @@ -0,0 +1,51 @@ |
| +# Copyright 2014 The Chromium Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +# name: Name to use for the value of the --name arg. |
|
awong
2014/07/01 21:47:11
Can we add a sentence or two explaining what as li
brettw
2014/07/01 23:26:27
I added a brief one. I don't actually know any mor
awong
2014/07/01 23:30:46
Huh...looking at this file more closely, it feels
|
| +# output_h/output_cc: Names for the generated header/cc file with no dir. |
| +# header: header file to process. Example: "<foo/bar.h>" |
| +# functions: List of strings for functions to process. |
| +# config: (optional) Label of the config generated by pkgconfig. |
| +# bundled_header: (optional) |
| +template("generate_library_loader") { |
| + output_h = "$root_gen_dir/library_loaders/" + invoker.output_h |
| + output_cc = "$root_gen_dir/library_loaders/" + invoker.output_cc |
| + |
| + action_visibility = ":$target_name" |
| + action("${target_name}_loader") { |
| + visibility = action_visibility |
| + |
| + script = "//tools/generate_library_loader/generate_library_loader.py" |
| + if (defined(invoker.visibility)) { |
| + visibility = invoker.visibility |
| + } |
| + |
| + outputs = [ output_h, output_cc ] |
| + |
| + args = [ |
| + "--name", invoker.name, |
| + "--output-h", rebase_path(output_h), |
| + "--output-cc", rebase_path(output_cc), |
| + "--header", invoker.header, |
| + # Note GYP build exposes a per-target variable to control this, which, if |
| + # manually set to true, will disable dlopen(). Its not clear this is |
| + # needed, so here we just leave off. If this can be done globally, we can |
| + # expose one switch for this value, otherwise we need to add a template |
| + # param for this. |
| + "--link-directly=0", |
| + ] |
| + if (defined(invoker.bundled_header)) { |
| + args += [ "--bundled-header", invoker.bundled_header ] |
| + } |
| + args += invoker.functions |
| + } |
| + |
| + source_set(target_name) { |
| + if (defined(invoker.config)) { |
| + direct_dependent_configs = [ invoker.config ] |
| + } |
| + sources = [ output_h, output_cc ] |
| + deps = [ ":${target_name}_loader" ] |
| + } |
| +} |