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