# 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")

assert(pdf_enable_xfa)

jumbo_source_set("fpdfxfa") {
  sources = [
    "cpdfxfa_context.cpp",
    "cpdfxfa_context.h",
    "cpdfxfa_docenvironment.cpp",
    "cpdfxfa_docenvironment.h",
    "cpdfxfa_page.cpp",
    "cpdfxfa_page.h",
    "cpdfxfa_widgethandler.cpp",
    "cpdfxfa_widgethandler.h",
    "cxfa_fwladaptertimermgr.cpp",
    "cxfa_fwladaptertimermgr.h",
  ]
  deps = [
    "../../:pdfium_public_headers",
    "../../core/fpdfapi/page",
    "../../core/fpdfapi/parser",
    "../../core/fpdfapi/render",
    "../../core/fpdfdoc",
    "../../core/fxcrt",
    "../../fxjs",
    "../../xfa/fwl",
    "../../xfa/fxfa",
    "../../xfa/fxfa/parser",
    "../../xfa/fxgraphics",
  ]
  configs += [ "../../:pdfium_core_config" ]
  visibility = [ "../../*" ]
}

pdfium_embeddertest_source_set("embeddertests") {
  sources = [
    "cpdfxfa_docenvironment_embeddertest.cpp",
  ]
  configs = [ "//v8:external_startup_data" ]
  deps = [
    "../../fxjs",
  ]
  pdfium_root_dir = "../../"
}
