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

import("//build/config/fuchsia/rules.gni")
import("//build/package.gni")

config("extend_bits_include_config") {
  include_dirs = [ "include" ]
}

source_set("extend_bits") {
  sources = [ "extend_bits.cc" ]
  include_dirs = [ "include" ]
  public = [ "include/lib/media/extend_bits/extend_bits.h" ]
  public_configs = [ ":extend_bits_include_config" ]
}

group("tests") {
  testonly = true
  deps = [ "unit_tests" ]
}
