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