# Copyright 2018 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/package.gni")

jiri_snapshot_file = "//.jiri_root/update_history/latest"
last_update_file = "$target_gen_dir/last-update.txt"

package("deprecated_build_info") {
  deprecated_system_image = true
  deps = [ ":last-update.txt" ]
  resources = [
    {
      dest = "build/last-update"
      path = last_update_file
    },
    {
      dest = "build/snapshot"
      path = jiri_snapshot_file
    },
  ]
}

package("build-info") {
  deps = [ ":last-update.txt" ]
  resources = [
    {
      dest = "last-update"
      path = last_update_file
    },
    {
      dest = "snapshot"
      path = jiri_snapshot_file
    },
  ]
}

action("last-update.txt") {
  visibility = [ ":*" ]
  sources = [ jiri_snapshot_file ]
  outputs = [ last_update_file ]
  script = "tools/gen-last-update"
  args = rebase_path(sources + outputs, root_build_dir)
}
