| # Copyright 2020 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| import("//build/compiled_action.gni") |
| import("//build/toolchain/breakpad.gni") |
| |
| # Generate a manifest of prebuilt binaries provided in .build-id format. |
| # |
| # Parameters |
| # |
| # build_id_dir (required) |
| # Path to the .build-id directory to consume. |
| template("prebuilt_binaries") { |
| assert(defined(invoker.build_id_dir), "build_id_dir is required") |
| |
| binary_manifest = "$target_gen_dir/${target_name}_binaries.json" |
| |
| compiled_action(target_name) { |
| testonly = true |
| |
| # TODO(fxbug.dev/90619): maybe remove the line below. |
| hermetic_deps = false |
| |
| tool = "//tools/debug/generate_breakpad" |
| outputs = [ binary_manifest ] |
| |
| if (is_linux) { |
| # The breakpad dumpsyms prebuilt is only available for |
| # and exercised on Linux at this time. |
| inputs = [ breakpad_dump_syms_prebuilt ] |
| } |
| |
| depfile = "$target_gen_dir/$target_name.d" |
| |
| args = [ |
| "-build-id-dir-in", |
| rebase_path(invoker.build_id_dir), |
| "-build-id-dir-out", |
| rebase_path("$root_build_dir/.build-id", root_build_dir), |
| "-cpu", |
| target_cpu, |
| "-os", |
| target_os, |
| "-output-manifest", |
| rebase_path(binary_manifest, root_build_dir), |
| "-dump-syms", |
| breakpad_dump_syms, |
| "-depfile", |
| rebase_path(depfile, root_build_dir), |
| ] |
| |
| metadata = { |
| prebuilt_binaries = [ |
| { |
| name = target_name |
| manifest = rebase_path(binary_manifest, root_build_dir) |
| }, |
| ] |
| } |
| } |
| } |