# Copyright 2016 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/config/python.gni")

# TODO(crbug.com/1112471): Get this to run cleanly under Python 3.
python2_action("usb_gadget") {
  script = "//tools/usb_gadget/package.py"
  inputs = [
    "__init__.py",
    "__main__.py",
    "composite_echo_gadget.py",
    "composite_gadget.py",
    "default_gadget.py",
    "echo_gadget.py",
    "gadget.py",
    "hid_constants.py",
    "hid_descriptors.py",
    "hid_echo_gadget.py",
    "hid_gadget.py",
    "keyboard_gadget.py",
    "linux_gadgetfs.py",
    "mouse_gadget.py",
    "msos20_descriptors.py",
    "server.py",
    "usb_constants.py",
    "usb_descriptors.py",
  ]
  package_path = "$root_build_dir/usb_gadget.zip"
  hash_path = "$root_build_dir/usb_gadget.zip.md5"
  outputs = [
    package_path,
    hash_path,
  ]
  args = [
           "--zip-file",
           rebase_path(package_path, root_build_dir),
           "--hash-file",
           rebase_path(hash_path, root_build_dir),
         ] + rebase_path(inputs, root_build_dir)
}
