# 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("fxfa") {
  sources = [
    "cxfa_eventparam.cpp",
    "cxfa_eventparam.h",
    "cxfa_ffapp.cpp",
    "cxfa_ffapp.h",
    "cxfa_ffarc.cpp",
    "cxfa_ffarc.h",
    "cxfa_ffbarcode.cpp",
    "cxfa_ffbarcode.h",
    "cxfa_ffcheckbutton.cpp",
    "cxfa_ffcheckbutton.h",
    "cxfa_ffcombobox.cpp",
    "cxfa_ffcombobox.h",
    "cxfa_ffdatetimeedit.cpp",
    "cxfa_ffdatetimeedit.h",
    "cxfa_ffdoc.cpp",
    "cxfa_ffdoc.h",
    "cxfa_ffdocview.cpp",
    "cxfa_ffdocview.h",
    "cxfa_ffdropdown.cpp",
    "cxfa_ffdropdown.h",
    "cxfa_ffexclgroup.cpp",
    "cxfa_ffexclgroup.h",
    "cxfa_fffield.cpp",
    "cxfa_fffield.h",
    "cxfa_ffimage.cpp",
    "cxfa_ffimage.h",
    "cxfa_ffimageedit.cpp",
    "cxfa_ffimageedit.h",
    "cxfa_ffline.cpp",
    "cxfa_ffline.h",
    "cxfa_fflistbox.cpp",
    "cxfa_fflistbox.h",
    "cxfa_ffnotify.cpp",
    "cxfa_ffnotify.h",
    "cxfa_ffnumericedit.cpp",
    "cxfa_ffnumericedit.h",
    "cxfa_ffpageview.cpp",
    "cxfa_ffpageview.h",
    "cxfa_ffpasswordedit.cpp",
    "cxfa_ffpasswordedit.h",
    "cxfa_ffpushbutton.cpp",
    "cxfa_ffpushbutton.h",
    "cxfa_ffrectangle.cpp",
    "cxfa_ffrectangle.h",
    "cxfa_ffsignature.cpp",
    "cxfa_ffsignature.h",
    "cxfa_fftext.cpp",
    "cxfa_fftext.h",
    "cxfa_fftextedit.cpp",
    "cxfa_fftextedit.h",
    "cxfa_ffwidget.cpp",
    "cxfa_ffwidget.h",
    "cxfa_ffwidgethandler.cpp",
    "cxfa_ffwidgethandler.h",
    "cxfa_fontmgr.cpp",
    "cxfa_fontmgr.h",
    "cxfa_fwladapterwidgetmgr.cpp",
    "cxfa_fwladapterwidgetmgr.h",
    "cxfa_fwltheme.cpp",
    "cxfa_fwltheme.h",
    "cxfa_imagerenderer.cpp",
    "cxfa_imagerenderer.h",
    "cxfa_readynodeiterator.cpp",
    "cxfa_readynodeiterator.h",
    "cxfa_textlayout.cpp",
    "cxfa_textlayout.h",
    "cxfa_textparser.cpp",
    "cxfa_textparser.h",
    "cxfa_textprovider.cpp",
    "cxfa_textprovider.h",
    "cxfa_texttabstopscontext.cpp",
    "cxfa_texttabstopscontext.h",
    "fxfa.h",
    "fxfa_basic.h",
  ]
  deps = [
    "../../core/fpdfapi/parser",
    "../../core/fpdfdoc",
    "../../core/fxcodec",
    "../../core/fxcrt",
    "../../core/fxcrt/css",
    "../../core/fxge",
    "../../fxbarcode",
    "../../fxjs",
    "../../fxjs:gc",
    "../fde",
    "../fgas",
    "../fgas/graphics",
    "../fgas/layout",
    "../fwl",
    "layout",
    "parser",
  ]
  allow_circular_includes_from = [
    "../../fxjs",
    "layout",
    "parser",
  ]
  configs += [
    "../../:pdfium_core_config",
    "../:xfa_warnings",
  ]
  visibility = [ "../../*" ]
}

pdfium_unittest_source_set("unittests") {
  sources = [
    "cxfa_ffbarcode_unittest.cpp",
    "cxfa_textparser_unittest.cpp",
    "fxfa_basic_unittest.cpp",
  ]
  deps = [
    ":fxfa",
    "../../fxjs:gc",
  ]
  pdfium_root_dir = "../../"
}
