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