# 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("//build/config/jumbo.gni")
import("../../../pdfium.gni")
import("../../../testing/test.gni")

jumbo_source_set("render") {
  sources = [
    "cpdf_charposlist.cpp",
    "cpdf_charposlist.h",
    "cpdf_devicebuffer.cpp",
    "cpdf_devicebuffer.h",
    "cpdf_dibbase.cpp",
    "cpdf_dibbase.h",
    "cpdf_dibtransferfunc.cpp",
    "cpdf_dibtransferfunc.h",
    "cpdf_docrenderdata.cpp",
    "cpdf_docrenderdata.h",
    "cpdf_imagecacheentry.cpp",
    "cpdf_imagecacheentry.h",
    "cpdf_imageloader.cpp",
    "cpdf_imageloader.h",
    "cpdf_imagerenderer.cpp",
    "cpdf_imagerenderer.h",
    "cpdf_pagerendercache.cpp",
    "cpdf_pagerendercache.h",
    "cpdf_progressiverenderer.cpp",
    "cpdf_progressiverenderer.h",
    "cpdf_rendercontext.cpp",
    "cpdf_rendercontext.h",
    "cpdf_renderoptions.cpp",
    "cpdf_renderoptions.h",
    "cpdf_renderstatus.cpp",
    "cpdf_renderstatus.h",
    "cpdf_scaledrenderbuffer.cpp",
    "cpdf_scaledrenderbuffer.h",
    "cpdf_textrenderer.cpp",
    "cpdf_textrenderer.h",
    "cpdf_transferfunc.cpp",
    "cpdf_transferfunc.h",
    "cpdf_transparency.cpp",
    "cpdf_transparency.h",
    "cpdf_type3cache.cpp",
    "cpdf_type3cache.h",
    "cpdf_type3glyphs.cpp",
    "cpdf_type3glyphs.h",
  ]
  configs += [ "../../../:pdfium_core_config" ]
  deps = [
    "../../../constants",
    "../../fxcodec",
    "../../fxcrt",
    "../../fxge",
    "../font",
    "../page",
    "../parser",
  ]
  allow_circular_includes_from = [
    "../parser",
    "../page",
  ]
  visibility = [ "../../../*" ]
}

pdfium_unittest_source_set("unittests") {
  sources = [
    "cpdf_docrenderdata_unittest.cpp",
  ]
  deps = [
    ":render",
    "../parser",
  ]
  pdfium_root_dir = "../../../"
}

pdfium_embeddertest_source_set("embeddertests") {
  sources = [
    "fpdf_render_loadimage_embeddertest.cpp",
    "fpdf_render_pattern_embeddertest.cpp",
  ]
  pdfium_root_dir = "../../../"
}
