# 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_flac") {
  packages = [ "flac" ]
}

shim_headers("flac_shim") {
  root_path = "include"
  headers = [
    "FLAC/all.h",
    "FLAC/assert.h",
    "FLAC/callback.h",
    "FLAC/export.h",
    "FLAC/format.h",
    "FLAC/metadata.h",
    "FLAC/ordinals.h",
    "FLAC/stream_decoder.h",
    "FLAC/stream_encoder.h",
  ]
}

source_set("flac") {
  deps = [
    ":flac_shim",
  ]
  public_configs = [ ":system_flac" ]
}
