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

pkg_config("config") {
  packages = [ "openh264" ]
}

shim_headers("openh264_shim") {
  prefix = "wels/"
  root_path = "src/codec/api/svc"
  headers = [
    "codec_api.h",
    "codec_app_def.h",
    "codec_def.h",
    "codec_ver.h",
  ]
}

source_set("common") {
  deps = [ ":openh264_shim" ]
  public_configs = [ ":config" ]
}

source_set("processing") {
  deps = [ ":openh264_shim" ]
  public_configs = [ ":config" ]
}

source_set("encoder") {
  deps = [ ":openh264_shim" ]
  public_configs = [ ":config" ]
}
