# Copyright 2015 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.

# Used to generate an assets_list file. To use supply the argument 'dir', which
# is where the assets can be found.
# TODO(sky): Perhaps combine this with the copy step?
template("generate_mojo_shell_assets_list") {
  action(target_name) {
    script = "//mojo/tools/generate_mojo_shell_assets_list.py"
    args = [
      "--dir",
      rebase_path(invoker.dir, root_build_dir),
    ]
    outputs = [
      invoker.dir + "/assets_list",
    ]
    if (defined(invoker.deps)) {
      deps = invoker.deps
    }
  }
}
