xref: /aosp_15_r20/external/cronet/build/config/fuchsia/symbol_archive.gni (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1# Copyright 2019 The Chromium Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5assert(is_fuchsia)
6
7# Creates a tarball of unstripped binaries, structured according to the
8# ".build_ids" convention used by the symbolizer and GNU GDB.
9#
10# Parameters:
11#   deps: Must all be fuchsia_package() targets.
12#   ids_txt: The "ids.txt" file which lists the relative paths to unstripped
13#            executables and libraries, along with their build IDs.
14#   archive_name: The path to the compressed tarball that will be generated.
15template("symbol_archive") {
16  assert(!is_debug)
17
18  action(target_name) {
19    _ids_txt = invoker.ids_txt
20    _build_ids = invoker.archive_name
21
22    script = "//build/config/fuchsia/build_symbol_archive.py"
23
24    inputs = [ _ids_txt ]
25
26    outputs = [ _build_ids ]
27
28    # For each package in |deps| it is necessary to additionally depend upon
29    # the corresponding archive-manifest target, which is what creates the
30    # ids.txt file.
31    deps = []
32    foreach(package, invoker.deps) {
33      deps += [
34        package,
35        package + "__archive-manifest",
36      ]
37    }
38
39    args = [
40      rebase_path(_ids_txt),
41      "-o",
42      rebase_path(_build_ids),
43      "--fuchsia-build-id-dir",
44      rebase_path("//third_party/fuchsia-sdk/sdk/.build-id"),
45    ]
46  }
47}
48