summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/build/config/fuchsia/symbol_archive.gni
blob: 9dcb53cae0fdb8d4264851a69bebd77c394b3e02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 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"),
    ]
  }
}