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