| # Copyright 2018 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. |
| |
| import("//build/config/python.gni") |
| |
| # Generate a custom linker version script that can later be used with |
| # "-Wl,--version-script=<path>" ldflags. |
| # |
| # Variables: |
| # export_java_symbols: Optional. If true, also export all Java_* symbols |
| # exported for JNI. |
| # export_symbol_allowlist_files: Optional. List of paths to input files containing |
| # lists of symbols to export. |
| # linker_script: Path to output linker version script. |
| # |
| template("generate_linker_version_script") { |
| action_with_pydeps(target_name) { |
| script = "//build/android/gyp/generate_linker_version_script.py" |
| outputs = [ invoker.linker_script ] |
| inputs = [] |
| args = [ "--output=" + rebase_path(invoker.linker_script, root_build_dir) ] |
| |
| if (defined(invoker.export_java_symbols) && invoker.export_java_symbols) { |
| args += [ "--export-java-symbols" ] |
| } |
| |
| if (defined(invoker.export_feature_registrations) && |
| invoker.export_feature_registrations) { |
| args += [ "--export-feature-registrations" ] |
| } |
| |
| if (defined(invoker.export_symbol_allowlist_files)) { |
| foreach(file_, invoker.export_symbol_allowlist_files) { |
| inputs += [ file_ ] |
| args += [ |
| "--export-symbol-allowlist-file", |
| rebase_path(file_, root_build_dir), |
| ] |
| } |
| } |
| } |
| } |