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

import("../../pdfium.gni")
import("../../testing/test.gni")

assert(pdf_enable_xfa)

source_set("fpdfxfa") {
  sources = [
    "cpdfxfa_context.cpp",
    "cpdfxfa_context.h",
    "cpdfxfa_docenvironment.cpp",
    "cpdfxfa_docenvironment.h",
    "cpdfxfa_page.cpp",
    "cpdfxfa_page.h",
    "cpdfxfa_widget.cpp",
    "cpdfxfa_widget.h",
  ]
  configs += [
    "../../:pdfium_strict_config",
    "../../:pdfium_noshorten_config",
  ]
  deps = [
    "../../:pdfium_public_headers",
    "../../core/fpdfapi/page",
    "../../core/fpdfapi/parser",
    "../../core/fpdfapi/render",
    "../../core/fxcodec",
    "../../core/fxcrt",
    "../../fxbarcode",
    "../../fxjs",
    "../../fxjs:gc",
    "../../xfa/fgas/font",
    "../../xfa/fgas/graphics",
    "../../xfa/fwl",
    "../../xfa/fxfa",
    "../../xfa/fxfa/parser",
  ]
  visibility = [ "../../*" ]
}

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