| 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..5246aef0377bf4fd36a4e4531b2d9eac94e71323
|
| --- /dev/null
|
| +++ b/tools/generate_library_loader/generate_library_loader.gni
|
| @@ -0,0 +1,54 @@
|
| +# 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.
|
| +
|
| +# This template makes a stub for a Linux system library that dynamically loads
|
| +# it at runtime.
|
| +
|
| +# name: Name to use for the value of the --name arg.
|
| +# 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" ]
|
| + }
|
| +}
|
|
|