# Copyright 2018 The PDFium 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("../../../pdfium.gni")

assert(pdf_enable_xfa)

source_set("graphics") {
  sources = [
    "cfgas_gecolor.cpp",
    "cfgas_gecolor.h",
    "cfgas_gegraphics.cpp",
    "cfgas_gegraphics.h",
    "cfgas_gepath.cpp",
    "cfgas_gepath.h",
    "cfgas_gepattern.cpp",
    "cfgas_gepattern.h",
    "cfgas_geshading.cpp",
    "cfgas_geshading.h",
  ]
  configs += [
    "../../../:pdfium_strict_config",
    "../../../:pdfium_noshorten_config",
    "../../:xfa_warnings",
  ]
  deps = [
    "../../../core/fxcrt",
    "../../../core/fxge",
  ]
  visibility = [ "../../../*" ]
}
