# Copyright 2019 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

assert(is_fuchsia)

# Creates a tarball of unstripped binaries, structured according to the
# ".build_ids" convention used by the symbolizer and GNU GDB.
#
# Parameters:
#   deps: Must all be fuchsia_package() targets.
#   ids_txt: The "ids.txt" file which lists the relative paths to unstripped
#            executables and libraries, along with their build IDs.
#   archive_name: The path to the compressed tarball that will be generated.
template("symbol_archive") {
  assert(!is_debug)

  action(target_name) {
    _ids_txt = invoker.ids_txt
    _build_ids = invoker.archive_name

    script = "//build/config/fuchsia/build_symbol_archive.py"

    inputs = [ _ids_txt ]

    outputs = [ _build_ids ]

    # For each package in |deps| it is necessary to additionally depend upon
    # the corresponding archive-manifest target, which is what creates the
    # ids.txt file.
    deps = []
    foreach(package, invoker.deps) {
      deps += [
        package,
        package + "__archive-manifest",
      ]
    }

    args = [
      rebase_path(_ids_txt),
      "-o",
      rebase_path(_build_ids),
      "--fuchsia-build-id-dir",
      rebase_path("//third_party/fuchsia-sdk/sdk/.build-id"),
    ]
  }
}