| # Copyright 2019 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. |
| |
| assert(is_fuchsia) |
| |
| # Creates a tarball of unstripped binaries, structured according to the |
| # ".build_ids" convention used by the symbolizer and GNU GDB. |
| # |
| # Parameters: |
| # deps: Must all be cr_fuchsia_package() or fuchsia_package() targets. |
| # ids_txt: The "ids.txt" file which lists the relative paths to unstripped |
| # executables and libraries, along with their build IDs. |
| # archive_name: The path to the compressed tarball that will be generated. |
| template("symbol_archive") { |
| assert(!is_debug) |
| |
| action(target_name) { |
| _ids_txt = invoker.ids_txt |
| _build_ids = invoker.archive_name |
| |
| script = "//build/config/fuchsia/build_symbol_archive.py" |
| |
| inputs = [ _ids_txt ] |
| |
| outputs = [ _build_ids ] |
| |
| # For each package in |deps| it is necessary to additionally depend upon |
| # the corresponding archive-manifest target, which is what creates the |
| # ids.txt file. |
| deps = [] |
| foreach(package, invoker.deps) { |
| deps += [ |
| package, |
| package + "__archive-manifest", |
| ] |
| } |
| |
| args = [ |
| rebase_path(_ids_txt), |
| "-o", |
| rebase_path(_build_ids), |
| "--fuchsia-build-id-dir", |
| rebase_path("//third_party/fuchsia-sdk/sdk/.build-id"), |
| ] |
| } |
| } |