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