# 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/linux/pkg_config.gni")
import("//build/shim_headers.gni")

pkg_config("system_libvpx") {
  packages = [ "vpx" ]
}

shim_headers("libvpx_shim") {
  root_path = "source/libvpx"
  headers = [
    "vpx/vp8.h",
    "vpx/vp8cx.h",
    "vpx/vp8dx.h",
    "vpx/vpx_codec.h",
    "vpx/vpx_codec_impl_bottom.h",
    "vpx/vpx_codec_impl_top.h",
    "vpx/vpx_decoder.h",
    "vpx/vpx_encoder.h",
    "vpx/vpx_frame_buffer.h",
    "vpx/vpx_image.h",
    "vpx/vpx_integer.h",
  ]
}

source_set("libvpx") {
  deps = [ ":libvpx_shim" ]
  public_configs = [ ":system_libvpx" ]
}
