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

import("//build/util/generate_wrapper.gni")

# Generates a script in the bin directory that runs
# //chromecast/resource_sizes/chromecast_resource_sizes.py for the provided configuration.
template("chromecast_resource_sizes_test") {
  generate_wrapper(target_name) {
    forward_variables_from(invoker, [ "data_deps" ])
    executable = "//chromecast/resource_sizes/chromecast_resource_sizes.py"
    wrapper_script = "$root_out_dir/bin/run_${target_name}"

    deps = [ "//chromecast/resource_sizes:chromecast_resource_sizes_py" ]
    executable_args = [
      "--chromium-output-directory",
      "@WrappedPath(.)",
    ]
  }
}
