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

##########################################
# Though under //zircon, this build file #
# is meant to be used in the Fuchsia GN  #
# build.                                 #
# See fxb/36548.                         #
##########################################

assert(!defined(zx) || zx != "/",
       "This file can only be used in the Fuchsia GN build.")

import("//build/unification/zx_library.gni")

zx_library("hid-parser") {
  sdk = "static"
  sdk_headers = [
    "hid-parser/item.h",
    "hid-parser/parser.h",
    "hid-parser/usages.h",
    "hid-parser/descriptor.h",
  ]
  sources = [
    "descriptor.cc",
    "item.cc",
    "parser.cc",
    "report.cc",
    "units.cc",
  ]
  deps = [ "//zircon/public/lib/fbl" ]
}
