# Copyright 2017 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/features.gni")

source_set("hid") {
  # HID is not implemented on Android and we want to be particularly careful
  # about not bloating binary size by accidentially including it.
  assert(!is_android)

  sources = [
    "fake_input_service_linux.cc",
    "fake_input_service_linux.h",
    "hid_collection.cc",
    "hid_collection.h",
    "hid_device_filter.cc",
    "hid_device_filter.h",
    "hid_item_state_table.cc",
    "hid_item_state_table.h",
    "hid_report_descriptor.cc",
    "hid_report_descriptor.h",
    "hid_report_descriptor_item.cc",
    "hid_report_descriptor_item.h",
    "hid_report_item.cc",
    "hid_report_item.h",
    "hid_usage_and_page.cc",
    "hid_usage_and_page.h",
  ]

  deps = [
    "//services/device/public/mojom",
    "//services/service_manager/public/cpp",
  ]
}
