| # Copyright 2016 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/gn/packages.gni") |
| |
| # Generates breakpad symbol data for unstripped binaries. |
| # |
| # This symbol data is consumed by infrastructure tools and uploaded to Crash |
| # servers to enable crash reporting. These files are uniquely important for |
| # release builds and this step may take a few minutes to complete, so it is |
| # not recommended that this be included in the default build. |
| action("breakpad_symbols") { |
| testonly = true |
| script = "//buildtools/${host_platform}/dump_breakpad_symbols" |
| |
| deps = [ |
| "//build/images:ids.txt", |
| ] |
| |
| inputs = [ |
| "//buildtools/${host_platform}/dump_syms/dump_syms", |
| ] |
| sources = [ |
| "$root_out_dir/ids.txt", |
| ] |
| |
| # This action generates a single xxx.sym file for each binary in the ids file |
| # and produces an archived output of them all. |
| outputs = [ |
| "$root_out_dir/breakpad_symbols/breakpad_symbols.tar.gz", |
| ] |
| |
| depfile = "${outputs[0]}.d" |
| |
| args = [ |
| "-out-dir", |
| rebase_path("$root_out_dir/breakpad_symbols"), |
| "-dump-syms-path", |
| rebase_path("//buildtools/${host_platform}/dump_syms/dump_syms"), |
| "-depfile", |
| rebase_path(depfile, root_build_dir), |
| "-tar-file", |
| rebase_path(outputs[0], root_build_dir), |
| ] + rebase_path(sources, root_build_dir) |
| } |
| |
| # Generates an archive of package metadata. |
| amber_files = rebase_path("$root_build_dir/amber-files") |
| host_out_dir = get_label_info("//anything($host_toolchain)", "root_out_dir") |
| pm_tool = rebase_path("$host_out_dir/pm") |
| pkg_archive_contents = [ |
| "amber-files/repository=$amber_files/repository", |
| |
| # TODO(IN-915): this should never contain the root key. In the future, this |
| # should contain no keys, once infra is managing key material itself. |
| # These keys are consumed by the infra train promote scripts. |
| "amber-files/keys=$amber_files/keys", |
| "pm=$pm_tool", |
| ] |
| pkg_archive_manifest = "$target_gen_dir/package_archive_manifest" |
| write_file(pkg_archive_manifest, pkg_archive_contents) |
| |
| pkg_archive = "$root_build_dir/packages.tar.gz" |
| compiled_action("package_archive") { |
| testonly = true |
| tool = "//build/tools/tar_maker" |
| inputs = [ |
| pkg_archive_manifest, |
| ] |
| outputs = [ |
| pkg_archive, |
| ] |
| args = [ |
| "-manifest", |
| rebase_path(pkg_archive_manifest), |
| "-output", |
| rebase_path(pkg_archive), |
| ] |
| deps = [ |
| "//build/images:updates", |
| ] |
| } |