| # Copyright 2019 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Adds an ELF binary to the .build-id directory by hard-linking. |
| # |
| # Parameters |
| # |
| # debug |
| # Type: file |
| # Required: This file will be linked into the .build-id directory |
| # with the ".debug" extension |
| # |
| # stripped |
| # Type: file |
| # Optional: If set this file will be linked into the .build-id directory |
| # with no extension |
| template("build_id_entry") { |
| action(target_name) { |
| forward_variables_from(invoker, |
| [ |
| "deps", |
| "testonly", |
| "visibility", |
| "data_deps", |
| ]) |
| assert(defined(invoker.debug), "Must define debug") |
| sources = [ |
| invoker.debug, |
| ] |
| stamp = "${invoker.debug}.build-id.stamp" |
| outputs = [ |
| stamp, |
| ] |
| |
| script = "//prebuilt/tools/buildidtool/${host_platform}/buildidtool" |
| args = [ |
| "-entry", |
| ".debug=" + rebase_path(invoker.debug, root_build_dir), |
| "-build-id-dir", |
| ".build-id", |
| "-stamp", |
| rebase_path(stamp, root_build_dir), |
| ] |
| if (defined(invoker.stripped)) { |
| sources += [ invoker.stripped ] |
| args += [ |
| "-entry", |
| "=" + rebase_path(invoker.stripped, root_build_dir), |
| ] |
| } |
| } |
| } |