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

# This file defines a template to invoke grit repack in a consistent manner.
#
# Parameters:
#   sources  [required]
#       List of pak files that need to be combined.
#
#   output  [required]
#       File name (single string) of the output file.
#
#   repack_options  [optional]
#       List of extra arguments to pass.
#
#   deps  [optional]
#   visibility  [optional]
#       Normal meaning.
template("repack") {
  action(target_name) {
    assert(defined(invoker.sources), "Need sources for $target_name")
    assert(defined(invoker.output), "Need output for $target_name")

    if (defined(invoker.visibility)) {
      visibility = invoker.visibility
    }

    script = "//tools/grit/grit/format/repack.py"

    inputs = invoker.sources
    outputs = [
      invoker.output,
    ]

    args = []
    if (defined(invoker.repack_options)) {
      args += invoker.repack_options
    }
    args += [ rebase_path(invoker.output, root_build_dir) ]
    args += rebase_path(invoker.sources, root_build_dir)

    if (defined(invoker.deps)) {
      deps = invoker.deps
    }
  }
}
