# 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("edit") {
  sources = [
    "cpdf_contentstream_write_utils.cpp",
    "cpdf_contentstream_write_utils.h",
    "cpdf_creator.cpp",
    "cpdf_creator.h",
    "cpdf_pagecontentgenerator.cpp",
    "cpdf_pagecontentgenerator.h",
    "cpdf_pagecontentmanager.cpp",
    "cpdf_pagecontentmanager.h",
    "cpdf_stringarchivestream.cpp",
    "cpdf_stringarchivestream.h",
  ]
  configs += [ "../../../:pdfium_core_config" ]
  deps = [
    "../../../constants",
    "../../../third_party:skia_shared",
    "../../fxcrt",
    "../font",
    "../page",
    "../parser",
  ]
  visibility = [ "../../../*" ]
}

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

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