# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/features.gni")
import("//build/config/ui.gni")

component("codec") {
  sources = [
    "codec_export.h",
    "jpeg_codec.cc",
    "jpeg_codec.h",
    "png_codec.cc",
    "png_codec.h",
    "vector_wstream.cc",
    "vector_wstream.h",
    "webp_codec.cc",
    "webp_codec.h",
  ]

  deps = [
    "//base",
    "//skia",
    "//third_party/libpng",
    "//ui/gfx:gfx_export",
    "//ui/gfx:gfx_skia",
    "//ui/gfx/geometry",
  ]

  if (!use_blink) {
    sources -= [
      "jpeg_codec.cc",
      "jpeg_codec.h",
    ]
  } else {
    deps += [ "//third_party:jpeg" ]
  }

  if (is_win) {
    cflags = [ "/wd4324" ]  # Structure was padded due to __declspec(align()),
                            # which is uninteresting.
  }

  defines = [ "CODEC_IMPLEMENTATION" ]
}
