# 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")
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/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 = "../../"
}
