Split xfa build rules into various BUILD.gn files in xfa/.

Change-Id: I3e6624d0e7af6c4f7ec9674d5990ae25cc3954d0
Reviewed-on: https://pdfium-review.googlesource.com/c/43941
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index e65fb2d..7de811e 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -92,13 +92,6 @@
   configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
 }
 
-config("xfa_warnings") {
-  visibility = [ ":*" ]
-  if (is_posix && !is_clang) {  # When GCC.
-    cflags = [ "-Wno-strict-overflow" ]
-  }
-}
-
 jumbo_static_library("pdfium") {
   sources = [
     "fpdfsdk/cfx_systemhandler.cpp",
@@ -925,6 +918,7 @@
   configs += [ ":pdfium_core_config" ]
   visibility += [
     "fxbarcode:*",
+    "xfa/*",
     "third_party:*",
   ]
   deps = [
@@ -1683,1056 +1677,10 @@
     deps = [
       ":fxcrt",
       ":fxjs",
-      ":xfa",
+      "xfa",
     ]
     configs += [ ":pdfium_core_config" ]
   }
-
-  group("xfa") {
-    deps = [
-      ":xfa_fde",
-      ":xfa_fgas",
-      ":xfa_fwl",
-      ":xfa_fxfa",
-      ":xfa_fxfa_fm2js",
-      ":xfa_fxfa_parser",
-      ":xfa_fxgraphics",
-    ]
-  }
-
-  jumbo_source_set("xfa_fde") {
-    sources = [
-      "xfa/fde/cfde_data.h",
-      "xfa/fde/cfde_texteditengine.cpp",
-      "xfa/fde/cfde_texteditengine.h",
-      "xfa/fde/cfde_textout.cpp",
-      "xfa/fde/cfde_textout.h",
-      "xfa/fde/cfde_wordbreak_data.cpp",
-      "xfa/fde/cfde_wordbreak_data.h",
-    ]
-    deps = [
-      ":fxcrt",
-    ]
-    configs += [
-      ":pdfium_core_config",
-      ":xfa_warnings",
-    ]
-  }
-
-  jumbo_source_set("xfa_fgas") {
-    sources = [
-      "xfa/fgas/crt/cfgas_formatstring.cpp",
-      "xfa/fgas/crt/cfgas_formatstring.h",
-      "xfa/fgas/font/cfgas_defaultfontmanager.cpp",
-      "xfa/fgas/font/cfgas_defaultfontmanager.h",
-      "xfa/fgas/font/cfgas_fontmgr.cpp",
-      "xfa/fgas/font/cfgas_fontmgr.h",
-      "xfa/fgas/font/cfgas_gefont.cpp",
-      "xfa/fgas/font/cfgas_gefont.h",
-      "xfa/fgas/font/cfgas_pdffontmgr.cpp",
-      "xfa/fgas/font/cfgas_pdffontmgr.h",
-      "xfa/fgas/font/fgas_fontutils.cpp",
-      "xfa/fgas/font/fgas_fontutils.h",
-      "xfa/fgas/layout/cfx_break.cpp",
-      "xfa/fgas/layout/cfx_break.h",
-      "xfa/fgas/layout/cfx_breakline.cpp",
-      "xfa/fgas/layout/cfx_breakline.h",
-      "xfa/fgas/layout/cfx_breakpiece.cpp",
-      "xfa/fgas/layout/cfx_breakpiece.h",
-      "xfa/fgas/layout/cfx_linebreak.cpp",
-      "xfa/fgas/layout/cfx_linebreak.h",
-      "xfa/fgas/layout/cfx_rtfbreak.cpp",
-      "xfa/fgas/layout/cfx_rtfbreak.h",
-      "xfa/fgas/layout/cfx_txtbreak.cpp",
-      "xfa/fgas/layout/cfx_txtbreak.h",
-    ]
-    deps = [
-      ":fxcrt",
-    ]
-    configs += [
-      ":pdfium_core_config",
-      ":xfa_warnings",
-    ]
-
-    if (!is_win) {
-      sources += [
-        "xfa/fgas/font/cfx_fontsourceenum_file.cpp",
-        "xfa/fgas/font/cfx_fontsourceenum_file.h",
-      ]
-    }
-  }
-
-  jumbo_source_set("xfa_fwl") {
-    sources = [
-      "xfa/fwl/cfwl_app.cpp",
-      "xfa/fwl/cfwl_app.h",
-      "xfa/fwl/cfwl_barcode.cpp",
-      "xfa/fwl/cfwl_barcode.h",
-      "xfa/fwl/cfwl_caret.cpp",
-      "xfa/fwl/cfwl_caret.h",
-      "xfa/fwl/cfwl_checkbox.cpp",
-      "xfa/fwl/cfwl_checkbox.h",
-      "xfa/fwl/cfwl_combobox.cpp",
-      "xfa/fwl/cfwl_combobox.h",
-      "xfa/fwl/cfwl_comboedit.cpp",
-      "xfa/fwl/cfwl_comboedit.h",
-      "xfa/fwl/cfwl_combolist.cpp",
-      "xfa/fwl/cfwl_combolist.h",
-      "xfa/fwl/cfwl_datetimeedit.cpp",
-      "xfa/fwl/cfwl_datetimeedit.h",
-      "xfa/fwl/cfwl_datetimepicker.cpp",
-      "xfa/fwl/cfwl_datetimepicker.h",
-      "xfa/fwl/cfwl_edit.cpp",
-      "xfa/fwl/cfwl_edit.h",
-      "xfa/fwl/cfwl_event.cpp",
-      "xfa/fwl/cfwl_event.h",
-      "xfa/fwl/cfwl_eventmouse.cpp",
-      "xfa/fwl/cfwl_eventmouse.h",
-      "xfa/fwl/cfwl_eventscroll.cpp",
-      "xfa/fwl/cfwl_eventscroll.h",
-      "xfa/fwl/cfwl_eventselectchanged.cpp",
-      "xfa/fwl/cfwl_eventselectchanged.h",
-      "xfa/fwl/cfwl_eventtarget.cpp",
-      "xfa/fwl/cfwl_eventtarget.h",
-      "xfa/fwl/cfwl_eventtextwillchange.cpp",
-      "xfa/fwl/cfwl_eventtextwillchange.h",
-      "xfa/fwl/cfwl_eventvalidate.cpp",
-      "xfa/fwl/cfwl_eventvalidate.h",
-      "xfa/fwl/cfwl_form.cpp",
-      "xfa/fwl/cfwl_form.h",
-      "xfa/fwl/cfwl_listbox.cpp",
-      "xfa/fwl/cfwl_listbox.h",
-      "xfa/fwl/cfwl_listitem.cpp",
-      "xfa/fwl/cfwl_listitem.h",
-      "xfa/fwl/cfwl_message.cpp",
-      "xfa/fwl/cfwl_message.h",
-      "xfa/fwl/cfwl_messagekey.cpp",
-      "xfa/fwl/cfwl_messagekey.h",
-      "xfa/fwl/cfwl_messagekillfocus.cpp",
-      "xfa/fwl/cfwl_messagekillfocus.h",
-      "xfa/fwl/cfwl_messagemouse.cpp",
-      "xfa/fwl/cfwl_messagemouse.h",
-      "xfa/fwl/cfwl_messagemousewheel.cpp",
-      "xfa/fwl/cfwl_messagemousewheel.h",
-      "xfa/fwl/cfwl_messagesetfocus.cpp",
-      "xfa/fwl/cfwl_messagesetfocus.h",
-      "xfa/fwl/cfwl_monthcalendar.cpp",
-      "xfa/fwl/cfwl_monthcalendar.h",
-      "xfa/fwl/cfwl_notedriver.cpp",
-      "xfa/fwl/cfwl_notedriver.h",
-      "xfa/fwl/cfwl_noteloop.cpp",
-      "xfa/fwl/cfwl_noteloop.h",
-      "xfa/fwl/cfwl_picturebox.cpp",
-      "xfa/fwl/cfwl_picturebox.h",
-      "xfa/fwl/cfwl_pushbutton.cpp",
-      "xfa/fwl/cfwl_pushbutton.h",
-      "xfa/fwl/cfwl_scrollbar.cpp",
-      "xfa/fwl/cfwl_scrollbar.h",
-      "xfa/fwl/cfwl_themebackground.h",
-      "xfa/fwl/cfwl_themepart.cpp",
-      "xfa/fwl/cfwl_themepart.h",
-      "xfa/fwl/cfwl_themetext.h",
-      "xfa/fwl/cfwl_timer.cpp",
-      "xfa/fwl/cfwl_timer.h",
-      "xfa/fwl/cfwl_timerinfo.cpp",
-      "xfa/fwl/cfwl_timerinfo.h",
-      "xfa/fwl/cfwl_widget.cpp",
-      "xfa/fwl/cfwl_widget.h",
-      "xfa/fwl/cfwl_widgetmgr.cpp",
-      "xfa/fwl/cfwl_widgetmgr.h",
-      "xfa/fwl/cfwl_widgetproperties.cpp",
-      "xfa/fwl/cfwl_widgetproperties.h",
-      "xfa/fwl/cfx_barcode.cpp",
-      "xfa/fwl/cfx_barcode.h",
-      "xfa/fwl/fwl_widgetdef.h",
-      "xfa/fwl/fwl_widgethit.h",
-      "xfa/fwl/ifwl_adaptertimermgr.h",
-      "xfa/fwl/ifwl_themeprovider.h",
-      "xfa/fwl/ifwl_widgetdelegate.h",
-      "xfa/fwl/theme/cfwl_barcodetp.cpp",
-      "xfa/fwl/theme/cfwl_barcodetp.h",
-      "xfa/fwl/theme/cfwl_carettp.cpp",
-      "xfa/fwl/theme/cfwl_carettp.h",
-      "xfa/fwl/theme/cfwl_checkboxtp.cpp",
-      "xfa/fwl/theme/cfwl_checkboxtp.h",
-      "xfa/fwl/theme/cfwl_comboboxtp.cpp",
-      "xfa/fwl/theme/cfwl_comboboxtp.h",
-      "xfa/fwl/theme/cfwl_datetimepickertp.cpp",
-      "xfa/fwl/theme/cfwl_datetimepickertp.h",
-      "xfa/fwl/theme/cfwl_edittp.cpp",
-      "xfa/fwl/theme/cfwl_edittp.h",
-      "xfa/fwl/theme/cfwl_listboxtp.cpp",
-      "xfa/fwl/theme/cfwl_listboxtp.h",
-      "xfa/fwl/theme/cfwl_monthcalendartp.cpp",
-      "xfa/fwl/theme/cfwl_monthcalendartp.h",
-      "xfa/fwl/theme/cfwl_pictureboxtp.cpp",
-      "xfa/fwl/theme/cfwl_pictureboxtp.h",
-      "xfa/fwl/theme/cfwl_pushbuttontp.cpp",
-      "xfa/fwl/theme/cfwl_pushbuttontp.h",
-      "xfa/fwl/theme/cfwl_scrollbartp.cpp",
-      "xfa/fwl/theme/cfwl_scrollbartp.h",
-      "xfa/fwl/theme/cfwl_utils.h",
-      "xfa/fwl/theme/cfwl_widgettp.cpp",
-      "xfa/fwl/theme/cfwl_widgettp.h",
-    ]
-    deps = [
-      ":fxcrt",
-      ":xfa_fgas",
-      "fxbarcode",
-    ]
-    configs += [
-      ":pdfium_core_config",
-      ":xfa_warnings",
-    ]
-  }
-
-  jumbo_source_set("xfa_fxfa") {
-    sources = [
-      "xfa/fxfa/cxfa_eventparam.cpp",
-      "xfa/fxfa/cxfa_eventparam.h",
-      "xfa/fxfa/cxfa_ffapp.cpp",
-      "xfa/fxfa/cxfa_ffapp.h",
-      "xfa/fxfa/cxfa_ffarc.cpp",
-      "xfa/fxfa/cxfa_ffarc.h",
-      "xfa/fxfa/cxfa_ffbarcode.cpp",
-      "xfa/fxfa/cxfa_ffbarcode.h",
-      "xfa/fxfa/cxfa_ffcheckbutton.cpp",
-      "xfa/fxfa/cxfa_ffcheckbutton.h",
-      "xfa/fxfa/cxfa_ffcombobox.cpp",
-      "xfa/fxfa/cxfa_ffcombobox.h",
-      "xfa/fxfa/cxfa_ffdatetimeedit.cpp",
-      "xfa/fxfa/cxfa_ffdatetimeedit.h",
-      "xfa/fxfa/cxfa_ffdoc.cpp",
-      "xfa/fxfa/cxfa_ffdoc.h",
-      "xfa/fxfa/cxfa_ffdocview.cpp",
-      "xfa/fxfa/cxfa_ffdocview.h",
-      "xfa/fxfa/cxfa_ffdropdown.cpp",
-      "xfa/fxfa/cxfa_ffdropdown.h",
-      "xfa/fxfa/cxfa_ffexclgroup.cpp",
-      "xfa/fxfa/cxfa_ffexclgroup.h",
-      "xfa/fxfa/cxfa_fffield.cpp",
-      "xfa/fxfa/cxfa_fffield.h",
-      "xfa/fxfa/cxfa_ffimage.cpp",
-      "xfa/fxfa/cxfa_ffimage.h",
-      "xfa/fxfa/cxfa_ffimageedit.cpp",
-      "xfa/fxfa/cxfa_ffimageedit.h",
-      "xfa/fxfa/cxfa_ffline.cpp",
-      "xfa/fxfa/cxfa_ffline.h",
-      "xfa/fxfa/cxfa_fflistbox.cpp",
-      "xfa/fxfa/cxfa_fflistbox.h",
-      "xfa/fxfa/cxfa_ffnotify.cpp",
-      "xfa/fxfa/cxfa_ffnotify.h",
-      "xfa/fxfa/cxfa_ffnumericedit.cpp",
-      "xfa/fxfa/cxfa_ffnumericedit.h",
-      "xfa/fxfa/cxfa_ffpageview.cpp",
-      "xfa/fxfa/cxfa_ffpageview.h",
-      "xfa/fxfa/cxfa_ffpasswordedit.cpp",
-      "xfa/fxfa/cxfa_ffpasswordedit.h",
-      "xfa/fxfa/cxfa_ffpushbutton.cpp",
-      "xfa/fxfa/cxfa_ffpushbutton.h",
-      "xfa/fxfa/cxfa_ffrectangle.cpp",
-      "xfa/fxfa/cxfa_ffrectangle.h",
-      "xfa/fxfa/cxfa_ffsignature.cpp",
-      "xfa/fxfa/cxfa_ffsignature.h",
-      "xfa/fxfa/cxfa_fftext.cpp",
-      "xfa/fxfa/cxfa_fftext.h",
-      "xfa/fxfa/cxfa_fftextedit.cpp",
-      "xfa/fxfa/cxfa_fftextedit.h",
-      "xfa/fxfa/cxfa_ffwidget.cpp",
-      "xfa/fxfa/cxfa_ffwidget.h",
-      "xfa/fxfa/cxfa_ffwidgethandler.cpp",
-      "xfa/fxfa/cxfa_ffwidgethandler.h",
-      "xfa/fxfa/cxfa_fontmgr.cpp",
-      "xfa/fxfa/cxfa_fontmgr.h",
-      "xfa/fxfa/cxfa_fwladapterwidgetmgr.cpp",
-      "xfa/fxfa/cxfa_fwladapterwidgetmgr.h",
-      "xfa/fxfa/cxfa_fwltheme.cpp",
-      "xfa/fxfa/cxfa_fwltheme.h",
-      "xfa/fxfa/cxfa_imagerenderer.cpp",
-      "xfa/fxfa/cxfa_imagerenderer.h",
-      "xfa/fxfa/cxfa_linkuserdata.cpp",
-      "xfa/fxfa/cxfa_linkuserdata.h",
-      "xfa/fxfa/cxfa_loadercontext.cpp",
-      "xfa/fxfa/cxfa_loadercontext.h",
-      "xfa/fxfa/cxfa_pieceline.cpp",
-      "xfa/fxfa/cxfa_pieceline.h",
-      "xfa/fxfa/cxfa_readynodeiterator.cpp",
-      "xfa/fxfa/cxfa_readynodeiterator.h",
-      "xfa/fxfa/cxfa_rendercontext.cpp",
-      "xfa/fxfa/cxfa_rendercontext.h",
-      "xfa/fxfa/cxfa_textlayout.cpp",
-      "xfa/fxfa/cxfa_textlayout.h",
-      "xfa/fxfa/cxfa_textparsecontext.cpp",
-      "xfa/fxfa/cxfa_textparsecontext.h",
-      "xfa/fxfa/cxfa_textparser.cpp",
-      "xfa/fxfa/cxfa_textparser.h",
-      "xfa/fxfa/cxfa_textpiece.cpp",
-      "xfa/fxfa/cxfa_textpiece.h",
-      "xfa/fxfa/cxfa_textprovider.cpp",
-      "xfa/fxfa/cxfa_textprovider.h",
-      "xfa/fxfa/cxfa_texttabstopscontext.cpp",
-      "xfa/fxfa/cxfa_texttabstopscontext.h",
-      "xfa/fxfa/cxfa_textuserdata.cpp",
-      "xfa/fxfa/cxfa_textuserdata.h",
-      "xfa/fxfa/fxfa.h",
-      "xfa/fxfa/fxfa_basic.h",
-    ]
-    deps = [
-      ":fxcrt",
-      ":fxjs",
-      ":xfa_fde",
-      ":xfa_fgas",
-    ]
-    configs += [
-      ":pdfium_core_config",
-      ":xfa_warnings",
-    ]
-  }
-
-  jumbo_source_set("xfa_fxfa_fm2js") {
-    sources = [
-      "xfa/fxfa/fm2js/cxfa_fmexpression.cpp",
-      "xfa/fxfa/fm2js/cxfa_fmexpression.h",
-      "xfa/fxfa/fm2js/cxfa_fmlexer.cpp",
-      "xfa/fxfa/fm2js/cxfa_fmlexer.h",
-      "xfa/fxfa/fm2js/cxfa_fmparser.cpp",
-      "xfa/fxfa/fm2js/cxfa_fmparser.h",
-      "xfa/fxfa/fm2js/cxfa_fmsimpleexpression.cpp",
-      "xfa/fxfa/fm2js/cxfa_fmsimpleexpression.h",
-      "xfa/fxfa/fm2js/cxfa_fmtojavascriptdepth.cpp",
-      "xfa/fxfa/fm2js/cxfa_fmtojavascriptdepth.h",
-    ]
-    deps = [
-      "//third_party/icu:icuuc",
-    ]
-    configs += [
-      ":pdfium_core_config",
-      ":xfa_warnings",
-    ]
-  }
-
-  jumbo_source_set("xfa_fxfa_parser") {
-    sources = [
-      "xfa/fxfa/parser/cscript_datawindow.cpp",
-      "xfa/fxfa/parser/cscript_datawindow.h",
-      "xfa/fxfa/parser/cscript_eventpseudomodel.cpp",
-      "xfa/fxfa/parser/cscript_eventpseudomodel.h",
-      "xfa/fxfa/parser/cscript_hostpseudomodel.cpp",
-      "xfa/fxfa/parser/cscript_hostpseudomodel.h",
-      "xfa/fxfa/parser/cscript_layoutpseudomodel.cpp",
-      "xfa/fxfa/parser/cscript_layoutpseudomodel.h",
-      "xfa/fxfa/parser/cscript_logpseudomodel.cpp",
-      "xfa/fxfa/parser/cscript_logpseudomodel.h",
-      "xfa/fxfa/parser/cscript_signaturepseudomodel.cpp",
-      "xfa/fxfa/parser/cscript_signaturepseudomodel.h",
-      "xfa/fxfa/parser/cxfa_accessiblecontent.cpp",
-      "xfa/fxfa/parser/cxfa_accessiblecontent.h",
-      "xfa/fxfa/parser/cxfa_acrobat.cpp",
-      "xfa/fxfa/parser/cxfa_acrobat.h",
-      "xfa/fxfa/parser/cxfa_acrobat7.cpp",
-      "xfa/fxfa/parser/cxfa_acrobat7.h",
-      "xfa/fxfa/parser/cxfa_adbe_jsconsole.cpp",
-      "xfa/fxfa/parser/cxfa_adbe_jsconsole.h",
-      "xfa/fxfa/parser/cxfa_adbe_jsdebugger.cpp",
-      "xfa/fxfa/parser/cxfa_adbe_jsdebugger.h",
-      "xfa/fxfa/parser/cxfa_addsilentprint.cpp",
-      "xfa/fxfa/parser/cxfa_addsilentprint.h",
-      "xfa/fxfa/parser/cxfa_addviewerpreferences.cpp",
-      "xfa/fxfa/parser/cxfa_addviewerpreferences.h",
-      "xfa/fxfa/parser/cxfa_adjustdata.cpp",
-      "xfa/fxfa/parser/cxfa_adjustdata.h",
-      "xfa/fxfa/parser/cxfa_adobeextensionlevel.cpp",
-      "xfa/fxfa/parser/cxfa_adobeextensionlevel.h",
-      "xfa/fxfa/parser/cxfa_agent.cpp",
-      "xfa/fxfa/parser/cxfa_agent.h",
-      "xfa/fxfa/parser/cxfa_alwaysembed.cpp",
-      "xfa/fxfa/parser/cxfa_alwaysembed.h",
-      "xfa/fxfa/parser/cxfa_amd.cpp",
-      "xfa/fxfa/parser/cxfa_amd.h",
-      "xfa/fxfa/parser/cxfa_appearancefilter.cpp",
-      "xfa/fxfa/parser/cxfa_appearancefilter.h",
-      "xfa/fxfa/parser/cxfa_arc.cpp",
-      "xfa/fxfa/parser/cxfa_arc.h",
-      "xfa/fxfa/parser/cxfa_area.cpp",
-      "xfa/fxfa/parser/cxfa_area.h",
-      "xfa/fxfa/parser/cxfa_arraynodelist.cpp",
-      "xfa/fxfa/parser/cxfa_arraynodelist.h",
-      "xfa/fxfa/parser/cxfa_assist.cpp",
-      "xfa/fxfa/parser/cxfa_assist.h",
-      "xfa/fxfa/parser/cxfa_attachnodelist.cpp",
-      "xfa/fxfa/parser/cxfa_attachnodelist.h",
-      "xfa/fxfa/parser/cxfa_attributes.cpp",
-      "xfa/fxfa/parser/cxfa_attributes.h",
-      "xfa/fxfa/parser/cxfa_autosave.cpp",
-      "xfa/fxfa/parser/cxfa_autosave.h",
-      "xfa/fxfa/parser/cxfa_barcode.cpp",
-      "xfa/fxfa/parser/cxfa_barcode.h",
-      "xfa/fxfa/parser/cxfa_base.cpp",
-      "xfa/fxfa/parser/cxfa_base.h",
-      "xfa/fxfa/parser/cxfa_batchoutput.cpp",
-      "xfa/fxfa/parser/cxfa_batchoutput.h",
-      "xfa/fxfa/parser/cxfa_behavioroverride.cpp",
-      "xfa/fxfa/parser/cxfa_behavioroverride.h",
-      "xfa/fxfa/parser/cxfa_bind.cpp",
-      "xfa/fxfa/parser/cxfa_bind.h",
-      "xfa/fxfa/parser/cxfa_binditems.cpp",
-      "xfa/fxfa/parser/cxfa_binditems.h",
-      "xfa/fxfa/parser/cxfa_bookend.cpp",
-      "xfa/fxfa/parser/cxfa_bookend.h",
-      "xfa/fxfa/parser/cxfa_boolean.cpp",
-      "xfa/fxfa/parser/cxfa_boolean.h",
-      "xfa/fxfa/parser/cxfa_border.cpp",
-      "xfa/fxfa/parser/cxfa_border.h",
-      "xfa/fxfa/parser/cxfa_box.cpp",
-      "xfa/fxfa/parser/cxfa_box.h",
-      "xfa/fxfa/parser/cxfa_break.cpp",
-      "xfa/fxfa/parser/cxfa_break.h",
-      "xfa/fxfa/parser/cxfa_breakafter.cpp",
-      "xfa/fxfa/parser/cxfa_breakafter.h",
-      "xfa/fxfa/parser/cxfa_breakbefore.cpp",
-      "xfa/fxfa/parser/cxfa_breakbefore.h",
-      "xfa/fxfa/parser/cxfa_button.cpp",
-      "xfa/fxfa/parser/cxfa_button.h",
-      "xfa/fxfa/parser/cxfa_cache.cpp",
-      "xfa/fxfa/parser/cxfa_cache.h",
-      "xfa/fxfa/parser/cxfa_calculate.cpp",
-      "xfa/fxfa/parser/cxfa_calculate.h",
-      "xfa/fxfa/parser/cxfa_calendarsymbols.cpp",
-      "xfa/fxfa/parser/cxfa_calendarsymbols.h",
-      "xfa/fxfa/parser/cxfa_caption.cpp",
-      "xfa/fxfa/parser/cxfa_caption.h",
-      "xfa/fxfa/parser/cxfa_certificate.cpp",
-      "xfa/fxfa/parser/cxfa_certificate.h",
-      "xfa/fxfa/parser/cxfa_certificates.cpp",
-      "xfa/fxfa/parser/cxfa_certificates.h",
-      "xfa/fxfa/parser/cxfa_change.cpp",
-      "xfa/fxfa/parser/cxfa_change.h",
-      "xfa/fxfa/parser/cxfa_checkbutton.cpp",
-      "xfa/fxfa/parser/cxfa_checkbutton.h",
-      "xfa/fxfa/parser/cxfa_choicelist.cpp",
-      "xfa/fxfa/parser/cxfa_choicelist.h",
-      "xfa/fxfa/parser/cxfa_color.cpp",
-      "xfa/fxfa/parser/cxfa_color.h",
-      "xfa/fxfa/parser/cxfa_comb.cpp",
-      "xfa/fxfa/parser/cxfa_comb.h",
-      "xfa/fxfa/parser/cxfa_command.cpp",
-      "xfa/fxfa/parser/cxfa_command.h",
-      "xfa/fxfa/parser/cxfa_common.cpp",
-      "xfa/fxfa/parser/cxfa_common.h",
-      "xfa/fxfa/parser/cxfa_compress.cpp",
-      "xfa/fxfa/parser/cxfa_compress.h",
-      "xfa/fxfa/parser/cxfa_compression.cpp",
-      "xfa/fxfa/parser/cxfa_compression.h",
-      "xfa/fxfa/parser/cxfa_compresslogicalstructure.cpp",
-      "xfa/fxfa/parser/cxfa_compresslogicalstructure.h",
-      "xfa/fxfa/parser/cxfa_compressobjectstream.cpp",
-      "xfa/fxfa/parser/cxfa_compressobjectstream.h",
-      "xfa/fxfa/parser/cxfa_config.cpp",
-      "xfa/fxfa/parser/cxfa_config.h",
-      "xfa/fxfa/parser/cxfa_conformance.cpp",
-      "xfa/fxfa/parser/cxfa_conformance.h",
-      "xfa/fxfa/parser/cxfa_connect.cpp",
-      "xfa/fxfa/parser/cxfa_connect.h",
-      "xfa/fxfa/parser/cxfa_connectionset.cpp",
-      "xfa/fxfa/parser/cxfa_connectionset.h",
-      "xfa/fxfa/parser/cxfa_connectstring.cpp",
-      "xfa/fxfa/parser/cxfa_connectstring.h",
-      "xfa/fxfa/parser/cxfa_containerlayoutitem.cpp",
-      "xfa/fxfa/parser/cxfa_containerlayoutitem.h",
-      "xfa/fxfa/parser/cxfa_contentarea.cpp",
-      "xfa/fxfa/parser/cxfa_contentarea.h",
-      "xfa/fxfa/parser/cxfa_contentcopy.cpp",
-      "xfa/fxfa/parser/cxfa_contentcopy.h",
-      "xfa/fxfa/parser/cxfa_contentlayoutitem.cpp",
-      "xfa/fxfa/parser/cxfa_contentlayoutitem.h",
-      "xfa/fxfa/parser/cxfa_copies.cpp",
-      "xfa/fxfa/parser/cxfa_copies.h",
-      "xfa/fxfa/parser/cxfa_corner.cpp",
-      "xfa/fxfa/parser/cxfa_corner.h",
-      "xfa/fxfa/parser/cxfa_creator.cpp",
-      "xfa/fxfa/parser/cxfa_creator.h",
-      "xfa/fxfa/parser/cxfa_currencysymbol.cpp",
-      "xfa/fxfa/parser/cxfa_currencysymbol.h",
-      "xfa/fxfa/parser/cxfa_currencysymbols.cpp",
-      "xfa/fxfa/parser/cxfa_currencysymbols.h",
-      "xfa/fxfa/parser/cxfa_currentpage.cpp",
-      "xfa/fxfa/parser/cxfa_currentpage.h",
-      "xfa/fxfa/parser/cxfa_data.cpp",
-      "xfa/fxfa/parser/cxfa_data.h",
-      "xfa/fxfa/parser/cxfa_dataexporter.cpp",
-      "xfa/fxfa/parser/cxfa_dataexporter.h",
-      "xfa/fxfa/parser/cxfa_datagroup.cpp",
-      "xfa/fxfa/parser/cxfa_datagroup.h",
-      "xfa/fxfa/parser/cxfa_datamodel.cpp",
-      "xfa/fxfa/parser/cxfa_datamodel.h",
-      "xfa/fxfa/parser/cxfa_datavalue.cpp",
-      "xfa/fxfa/parser/cxfa_datavalue.h",
-      "xfa/fxfa/parser/cxfa_date.cpp",
-      "xfa/fxfa/parser/cxfa_date.h",
-      "xfa/fxfa/parser/cxfa_datepattern.cpp",
-      "xfa/fxfa/parser/cxfa_datepattern.h",
-      "xfa/fxfa/parser/cxfa_datepatterns.cpp",
-      "xfa/fxfa/parser/cxfa_datepatterns.h",
-      "xfa/fxfa/parser/cxfa_datetime.cpp",
-      "xfa/fxfa/parser/cxfa_datetime.h",
-      "xfa/fxfa/parser/cxfa_datetimeedit.cpp",
-      "xfa/fxfa/parser/cxfa_datetimeedit.h",
-      "xfa/fxfa/parser/cxfa_datetimesymbols.cpp",
-      "xfa/fxfa/parser/cxfa_datetimesymbols.h",
-      "xfa/fxfa/parser/cxfa_day.cpp",
-      "xfa/fxfa/parser/cxfa_day.h",
-      "xfa/fxfa/parser/cxfa_daynames.cpp",
-      "xfa/fxfa/parser/cxfa_daynames.h",
-      "xfa/fxfa/parser/cxfa_debug.cpp",
-      "xfa/fxfa/parser/cxfa_debug.h",
-      "xfa/fxfa/parser/cxfa_decimal.cpp",
-      "xfa/fxfa/parser/cxfa_decimal.h",
-      "xfa/fxfa/parser/cxfa_defaulttypeface.cpp",
-      "xfa/fxfa/parser/cxfa_defaulttypeface.h",
-      "xfa/fxfa/parser/cxfa_defaultui.cpp",
-      "xfa/fxfa/parser/cxfa_defaultui.h",
-      "xfa/fxfa/parser/cxfa_delete.cpp",
-      "xfa/fxfa/parser/cxfa_delete.h",
-      "xfa/fxfa/parser/cxfa_delta.cpp",
-      "xfa/fxfa/parser/cxfa_delta.h",
-      "xfa/fxfa/parser/cxfa_deltas.cpp",
-      "xfa/fxfa/parser/cxfa_deltas.h",
-      "xfa/fxfa/parser/cxfa_desc.cpp",
-      "xfa/fxfa/parser/cxfa_desc.h",
-      "xfa/fxfa/parser/cxfa_destination.cpp",
-      "xfa/fxfa/parser/cxfa_destination.h",
-      "xfa/fxfa/parser/cxfa_digestmethod.cpp",
-      "xfa/fxfa/parser/cxfa_digestmethod.h",
-      "xfa/fxfa/parser/cxfa_digestmethods.cpp",
-      "xfa/fxfa/parser/cxfa_digestmethods.h",
-      "xfa/fxfa/parser/cxfa_document.cpp",
-      "xfa/fxfa/parser/cxfa_document.h",
-      "xfa/fxfa/parser/cxfa_document_parser.cpp",
-      "xfa/fxfa/parser/cxfa_document_parser.h",
-      "xfa/fxfa/parser/cxfa_documentassembly.cpp",
-      "xfa/fxfa/parser/cxfa_documentassembly.h",
-      "xfa/fxfa/parser/cxfa_draw.cpp",
-      "xfa/fxfa/parser/cxfa_draw.h",
-      "xfa/fxfa/parser/cxfa_driver.cpp",
-      "xfa/fxfa/parser/cxfa_driver.h",
-      "xfa/fxfa/parser/cxfa_dsigdata.cpp",
-      "xfa/fxfa/parser/cxfa_dsigdata.h",
-      "xfa/fxfa/parser/cxfa_duplexoption.cpp",
-      "xfa/fxfa/parser/cxfa_duplexoption.h",
-      "xfa/fxfa/parser/cxfa_dynamicrender.cpp",
-      "xfa/fxfa/parser/cxfa_dynamicrender.h",
-      "xfa/fxfa/parser/cxfa_edge.cpp",
-      "xfa/fxfa/parser/cxfa_edge.h",
-      "xfa/fxfa/parser/cxfa_effectiveinputpolicy.cpp",
-      "xfa/fxfa/parser/cxfa_effectiveinputpolicy.h",
-      "xfa/fxfa/parser/cxfa_effectiveoutputpolicy.cpp",
-      "xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h",
-      "xfa/fxfa/parser/cxfa_embed.cpp",
-      "xfa/fxfa/parser/cxfa_embed.h",
-      "xfa/fxfa/parser/cxfa_encoding.cpp",
-      "xfa/fxfa/parser/cxfa_encoding.h",
-      "xfa/fxfa/parser/cxfa_encodings.cpp",
-      "xfa/fxfa/parser/cxfa_encodings.h",
-      "xfa/fxfa/parser/cxfa_encrypt.cpp",
-      "xfa/fxfa/parser/cxfa_encrypt.h",
-      "xfa/fxfa/parser/cxfa_encryption.cpp",
-      "xfa/fxfa/parser/cxfa_encryption.h",
-      "xfa/fxfa/parser/cxfa_encryptionlevel.cpp",
-      "xfa/fxfa/parser/cxfa_encryptionlevel.h",
-      "xfa/fxfa/parser/cxfa_encryptionmethod.cpp",
-      "xfa/fxfa/parser/cxfa_encryptionmethod.h",
-      "xfa/fxfa/parser/cxfa_encryptionmethods.cpp",
-      "xfa/fxfa/parser/cxfa_encryptionmethods.h",
-      "xfa/fxfa/parser/cxfa_enforce.cpp",
-      "xfa/fxfa/parser/cxfa_enforce.h",
-      "xfa/fxfa/parser/cxfa_equate.cpp",
-      "xfa/fxfa/parser/cxfa_equate.h",
-      "xfa/fxfa/parser/cxfa_equaterange.cpp",
-      "xfa/fxfa/parser/cxfa_equaterange.h",
-      "xfa/fxfa/parser/cxfa_era.cpp",
-      "xfa/fxfa/parser/cxfa_era.h",
-      "xfa/fxfa/parser/cxfa_eranames.cpp",
-      "xfa/fxfa/parser/cxfa_eranames.h",
-      "xfa/fxfa/parser/cxfa_event.cpp",
-      "xfa/fxfa/parser/cxfa_event.h",
-      "xfa/fxfa/parser/cxfa_exclgroup.cpp",
-      "xfa/fxfa/parser/cxfa_exclgroup.h",
-      "xfa/fxfa/parser/cxfa_exclude.cpp",
-      "xfa/fxfa/parser/cxfa_exclude.h",
-      "xfa/fxfa/parser/cxfa_excludens.cpp",
-      "xfa/fxfa/parser/cxfa_excludens.h",
-      "xfa/fxfa/parser/cxfa_exdata.cpp",
-      "xfa/fxfa/parser/cxfa_exdata.h",
-      "xfa/fxfa/parser/cxfa_execute.cpp",
-      "xfa/fxfa/parser/cxfa_execute.h",
-      "xfa/fxfa/parser/cxfa_exobject.cpp",
-      "xfa/fxfa/parser/cxfa_exobject.h",
-      "xfa/fxfa/parser/cxfa_extras.cpp",
-      "xfa/fxfa/parser/cxfa_extras.h",
-      "xfa/fxfa/parser/cxfa_field.cpp",
-      "xfa/fxfa/parser/cxfa_field.h",
-      "xfa/fxfa/parser/cxfa_fill.cpp",
-      "xfa/fxfa/parser/cxfa_fill.h",
-      "xfa/fxfa/parser/cxfa_filter.cpp",
-      "xfa/fxfa/parser/cxfa_filter.h",
-      "xfa/fxfa/parser/cxfa_fliplabel.cpp",
-      "xfa/fxfa/parser/cxfa_fliplabel.h",
-      "xfa/fxfa/parser/cxfa_float.cpp",
-      "xfa/fxfa/parser/cxfa_float.h",
-      "xfa/fxfa/parser/cxfa_font.cpp",
-      "xfa/fxfa/parser/cxfa_font.h",
-      "xfa/fxfa/parser/cxfa_fontinfo.cpp",
-      "xfa/fxfa/parser/cxfa_fontinfo.h",
-      "xfa/fxfa/parser/cxfa_form.cpp",
-      "xfa/fxfa/parser/cxfa_form.h",
-      "xfa/fxfa/parser/cxfa_format.cpp",
-      "xfa/fxfa/parser/cxfa_format.h",
-      "xfa/fxfa/parser/cxfa_formfieldfilling.cpp",
-      "xfa/fxfa/parser/cxfa_formfieldfilling.h",
-      "xfa/fxfa/parser/cxfa_groupparent.cpp",
-      "xfa/fxfa/parser/cxfa_groupparent.h",
-      "xfa/fxfa/parser/cxfa_handler.cpp",
-      "xfa/fxfa/parser/cxfa_handler.h",
-      "xfa/fxfa/parser/cxfa_hyphenation.cpp",
-      "xfa/fxfa/parser/cxfa_hyphenation.h",
-      "xfa/fxfa/parser/cxfa_ifempty.cpp",
-      "xfa/fxfa/parser/cxfa_ifempty.h",
-      "xfa/fxfa/parser/cxfa_image.cpp",
-      "xfa/fxfa/parser/cxfa_image.h",
-      "xfa/fxfa/parser/cxfa_imageedit.cpp",
-      "xfa/fxfa/parser/cxfa_imageedit.h",
-      "xfa/fxfa/parser/cxfa_includexdpcontent.cpp",
-      "xfa/fxfa/parser/cxfa_includexdpcontent.h",
-      "xfa/fxfa/parser/cxfa_incrementalload.cpp",
-      "xfa/fxfa/parser/cxfa_incrementalload.h",
-      "xfa/fxfa/parser/cxfa_incrementalmerge.cpp",
-      "xfa/fxfa/parser/cxfa_incrementalmerge.h",
-      "xfa/fxfa/parser/cxfa_insert.cpp",
-      "xfa/fxfa/parser/cxfa_insert.h",
-      "xfa/fxfa/parser/cxfa_instancemanager.cpp",
-      "xfa/fxfa/parser/cxfa_instancemanager.h",
-      "xfa/fxfa/parser/cxfa_integer.cpp",
-      "xfa/fxfa/parser/cxfa_integer.h",
-      "xfa/fxfa/parser/cxfa_interactive.cpp",
-      "xfa/fxfa/parser/cxfa_interactive.h",
-      "xfa/fxfa/parser/cxfa_issuers.cpp",
-      "xfa/fxfa/parser/cxfa_issuers.h",
-      "xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp",
-      "xfa/fxfa/parser/cxfa_itemlayoutprocessor.h",
-      "xfa/fxfa/parser/cxfa_items.cpp",
-      "xfa/fxfa/parser/cxfa_items.h",
-      "xfa/fxfa/parser/cxfa_jog.cpp",
-      "xfa/fxfa/parser/cxfa_jog.h",
-      "xfa/fxfa/parser/cxfa_keep.cpp",
-      "xfa/fxfa/parser/cxfa_keep.h",
-      "xfa/fxfa/parser/cxfa_keyusage.cpp",
-      "xfa/fxfa/parser/cxfa_keyusage.h",
-      "xfa/fxfa/parser/cxfa_labelprinter.cpp",
-      "xfa/fxfa/parser/cxfa_labelprinter.h",
-      "xfa/fxfa/parser/cxfa_layout.cpp",
-      "xfa/fxfa/parser/cxfa_layout.h",
-      "xfa/fxfa/parser/cxfa_layoutcontext.cpp",
-      "xfa/fxfa/parser/cxfa_layoutcontext.h",
-      "xfa/fxfa/parser/cxfa_layoutitem.cpp",
-      "xfa/fxfa/parser/cxfa_layoutitem.h",
-      "xfa/fxfa/parser/cxfa_layoutpagemgr.cpp",
-      "xfa/fxfa/parser/cxfa_layoutpagemgr.h",
-      "xfa/fxfa/parser/cxfa_layoutprocessor.cpp",
-      "xfa/fxfa/parser/cxfa_layoutprocessor.h",
-      "xfa/fxfa/parser/cxfa_level.cpp",
-      "xfa/fxfa/parser/cxfa_level.h",
-      "xfa/fxfa/parser/cxfa_line.cpp",
-      "xfa/fxfa/parser/cxfa_line.h",
-      "xfa/fxfa/parser/cxfa_linear.cpp",
-      "xfa/fxfa/parser/cxfa_linear.h",
-      "xfa/fxfa/parser/cxfa_linearized.cpp",
-      "xfa/fxfa/parser/cxfa_linearized.h",
-      "xfa/fxfa/parser/cxfa_list.cpp",
-      "xfa/fxfa/parser/cxfa_list.h",
-      "xfa/fxfa/parser/cxfa_locale.cpp",
-      "xfa/fxfa/parser/cxfa_locale.h",
-      "xfa/fxfa/parser/cxfa_localemgr.cpp",
-      "xfa/fxfa/parser/cxfa_localemgr.h",
-      "xfa/fxfa/parser/cxfa_localeset.cpp",
-      "xfa/fxfa/parser/cxfa_localeset.h",
-      "xfa/fxfa/parser/cxfa_localevalue.cpp",
-      "xfa/fxfa/parser/cxfa_localevalue.h",
-      "xfa/fxfa/parser/cxfa_lockdocument.cpp",
-      "xfa/fxfa/parser/cxfa_lockdocument.h",
-      "xfa/fxfa/parser/cxfa_log.cpp",
-      "xfa/fxfa/parser/cxfa_log.h",
-      "xfa/fxfa/parser/cxfa_manifest.cpp",
-      "xfa/fxfa/parser/cxfa_manifest.h",
-      "xfa/fxfa/parser/cxfa_map.cpp",
-      "xfa/fxfa/parser/cxfa_map.h",
-      "xfa/fxfa/parser/cxfa_margin.cpp",
-      "xfa/fxfa/parser/cxfa_margin.h",
-      "xfa/fxfa/parser/cxfa_mdp.cpp",
-      "xfa/fxfa/parser/cxfa_mdp.h",
-      "xfa/fxfa/parser/cxfa_measurement.cpp",
-      "xfa/fxfa/parser/cxfa_measurement.h",
-      "xfa/fxfa/parser/cxfa_medium.cpp",
-      "xfa/fxfa/parser/cxfa_medium.h",
-      "xfa/fxfa/parser/cxfa_mediuminfo.cpp",
-      "xfa/fxfa/parser/cxfa_mediuminfo.h",
-      "xfa/fxfa/parser/cxfa_meridiem.cpp",
-      "xfa/fxfa/parser/cxfa_meridiem.h",
-      "xfa/fxfa/parser/cxfa_meridiemnames.cpp",
-      "xfa/fxfa/parser/cxfa_meridiemnames.h",
-      "xfa/fxfa/parser/cxfa_message.cpp",
-      "xfa/fxfa/parser/cxfa_message.h",
-      "xfa/fxfa/parser/cxfa_messaging.cpp",
-      "xfa/fxfa/parser/cxfa_messaging.h",
-      "xfa/fxfa/parser/cxfa_mode.cpp",
-      "xfa/fxfa/parser/cxfa_mode.h",
-      "xfa/fxfa/parser/cxfa_modifyannots.cpp",
-      "xfa/fxfa/parser/cxfa_modifyannots.h",
-      "xfa/fxfa/parser/cxfa_month.cpp",
-      "xfa/fxfa/parser/cxfa_month.h",
-      "xfa/fxfa/parser/cxfa_monthnames.cpp",
-      "xfa/fxfa/parser/cxfa_monthnames.h",
-      "xfa/fxfa/parser/cxfa_msgid.cpp",
-      "xfa/fxfa/parser/cxfa_msgid.h",
-      "xfa/fxfa/parser/cxfa_nameattr.cpp",
-      "xfa/fxfa/parser/cxfa_nameattr.h",
-      "xfa/fxfa/parser/cxfa_neverembed.cpp",
-      "xfa/fxfa/parser/cxfa_neverembed.h",
-      "xfa/fxfa/parser/cxfa_node.cpp",
-      "xfa/fxfa/parser/cxfa_node.h",
-      "xfa/fxfa/parser/cxfa_node_statics.cpp",
-      "xfa/fxfa/parser/cxfa_nodehelper.cpp",
-      "xfa/fxfa/parser/cxfa_nodehelper.h",
-      "xfa/fxfa/parser/cxfa_nodeiteratortemplate.h",
-      "xfa/fxfa/parser/cxfa_nodelocale.cpp",
-      "xfa/fxfa/parser/cxfa_nodelocale.h",
-      "xfa/fxfa/parser/cxfa_nodeowner.cpp",
-      "xfa/fxfa/parser/cxfa_nodeowner.h",
-      "xfa/fxfa/parser/cxfa_numberofcopies.cpp",
-      "xfa/fxfa/parser/cxfa_numberofcopies.h",
-      "xfa/fxfa/parser/cxfa_numberpattern.cpp",
-      "xfa/fxfa/parser/cxfa_numberpattern.h",
-      "xfa/fxfa/parser/cxfa_numberpatterns.cpp",
-      "xfa/fxfa/parser/cxfa_numberpatterns.h",
-      "xfa/fxfa/parser/cxfa_numbersymbol.cpp",
-      "xfa/fxfa/parser/cxfa_numbersymbol.h",
-      "xfa/fxfa/parser/cxfa_numbersymbols.cpp",
-      "xfa/fxfa/parser/cxfa_numbersymbols.h",
-      "xfa/fxfa/parser/cxfa_numericedit.cpp",
-      "xfa/fxfa/parser/cxfa_numericedit.h",
-      "xfa/fxfa/parser/cxfa_object.cpp",
-      "xfa/fxfa/parser/cxfa_object.h",
-      "xfa/fxfa/parser/cxfa_occur.cpp",
-      "xfa/fxfa/parser/cxfa_occur.h",
-      "xfa/fxfa/parser/cxfa_oid.cpp",
-      "xfa/fxfa/parser/cxfa_oid.h",
-      "xfa/fxfa/parser/cxfa_oids.cpp",
-      "xfa/fxfa/parser/cxfa_oids.h",
-      "xfa/fxfa/parser/cxfa_openaction.cpp",
-      "xfa/fxfa/parser/cxfa_openaction.h",
-      "xfa/fxfa/parser/cxfa_operation.cpp",
-      "xfa/fxfa/parser/cxfa_operation.h",
-      "xfa/fxfa/parser/cxfa_output.cpp",
-      "xfa/fxfa/parser/cxfa_output.h",
-      "xfa/fxfa/parser/cxfa_outputbin.cpp",
-      "xfa/fxfa/parser/cxfa_outputbin.h",
-      "xfa/fxfa/parser/cxfa_outputxsl.cpp",
-      "xfa/fxfa/parser/cxfa_outputxsl.h",
-      "xfa/fxfa/parser/cxfa_overflow.cpp",
-      "xfa/fxfa/parser/cxfa_overflow.h",
-      "xfa/fxfa/parser/cxfa_overprint.cpp",
-      "xfa/fxfa/parser/cxfa_overprint.h",
-      "xfa/fxfa/parser/cxfa_packet.cpp",
-      "xfa/fxfa/parser/cxfa_packet.h",
-      "xfa/fxfa/parser/cxfa_packets.cpp",
-      "xfa/fxfa/parser/cxfa_packets.h",
-      "xfa/fxfa/parser/cxfa_pagearea.cpp",
-      "xfa/fxfa/parser/cxfa_pagearea.h",
-      "xfa/fxfa/parser/cxfa_pageoffset.cpp",
-      "xfa/fxfa/parser/cxfa_pageoffset.h",
-      "xfa/fxfa/parser/cxfa_pagerange.cpp",
-      "xfa/fxfa/parser/cxfa_pagerange.h",
-      "xfa/fxfa/parser/cxfa_pageset.cpp",
-      "xfa/fxfa/parser/cxfa_pageset.h",
-      "xfa/fxfa/parser/cxfa_pagination.cpp",
-      "xfa/fxfa/parser/cxfa_pagination.h",
-      "xfa/fxfa/parser/cxfa_paginationoverride.cpp",
-      "xfa/fxfa/parser/cxfa_paginationoverride.h",
-      "xfa/fxfa/parser/cxfa_para.cpp",
-      "xfa/fxfa/parser/cxfa_para.h",
-      "xfa/fxfa/parser/cxfa_part.cpp",
-      "xfa/fxfa/parser/cxfa_part.h",
-      "xfa/fxfa/parser/cxfa_password.cpp",
-      "xfa/fxfa/parser/cxfa_password.h",
-      "xfa/fxfa/parser/cxfa_passwordedit.cpp",
-      "xfa/fxfa/parser/cxfa_passwordedit.h",
-      "xfa/fxfa/parser/cxfa_pattern.cpp",
-      "xfa/fxfa/parser/cxfa_pattern.h",
-      "xfa/fxfa/parser/cxfa_pcl.cpp",
-      "xfa/fxfa/parser/cxfa_pcl.h",
-      "xfa/fxfa/parser/cxfa_pdf.cpp",
-      "xfa/fxfa/parser/cxfa_pdf.h",
-      "xfa/fxfa/parser/cxfa_pdfa.cpp",
-      "xfa/fxfa/parser/cxfa_pdfa.h",
-      "xfa/fxfa/parser/cxfa_permissions.cpp",
-      "xfa/fxfa/parser/cxfa_permissions.h",
-      "xfa/fxfa/parser/cxfa_picktraybypdfsize.cpp",
-      "xfa/fxfa/parser/cxfa_picktraybypdfsize.h",
-      "xfa/fxfa/parser/cxfa_picture.cpp",
-      "xfa/fxfa/parser/cxfa_picture.h",
-      "xfa/fxfa/parser/cxfa_plaintextmetadata.cpp",
-      "xfa/fxfa/parser/cxfa_plaintextmetadata.h",
-      "xfa/fxfa/parser/cxfa_presence.cpp",
-      "xfa/fxfa/parser/cxfa_presence.h",
-      "xfa/fxfa/parser/cxfa_present.cpp",
-      "xfa/fxfa/parser/cxfa_present.h",
-      "xfa/fxfa/parser/cxfa_print.cpp",
-      "xfa/fxfa/parser/cxfa_print.h",
-      "xfa/fxfa/parser/cxfa_printername.cpp",
-      "xfa/fxfa/parser/cxfa_printername.h",
-      "xfa/fxfa/parser/cxfa_printhighquality.cpp",
-      "xfa/fxfa/parser/cxfa_printhighquality.h",
-      "xfa/fxfa/parser/cxfa_printscaling.cpp",
-      "xfa/fxfa/parser/cxfa_printscaling.h",
-      "xfa/fxfa/parser/cxfa_producer.cpp",
-      "xfa/fxfa/parser/cxfa_producer.h",
-      "xfa/fxfa/parser/cxfa_proto.cpp",
-      "xfa/fxfa/parser/cxfa_proto.h",
-      "xfa/fxfa/parser/cxfa_ps.cpp",
-      "xfa/fxfa/parser/cxfa_ps.h",
-      "xfa/fxfa/parser/cxfa_psmap.cpp",
-      "xfa/fxfa/parser/cxfa_psmap.h",
-      "xfa/fxfa/parser/cxfa_query.cpp",
-      "xfa/fxfa/parser/cxfa_query.h",
-      "xfa/fxfa/parser/cxfa_radial.cpp",
-      "xfa/fxfa/parser/cxfa_radial.h",
-      "xfa/fxfa/parser/cxfa_range.cpp",
-      "xfa/fxfa/parser/cxfa_range.h",
-      "xfa/fxfa/parser/cxfa_reason.cpp",
-      "xfa/fxfa/parser/cxfa_reason.h",
-      "xfa/fxfa/parser/cxfa_reasons.cpp",
-      "xfa/fxfa/parser/cxfa_reasons.h",
-      "xfa/fxfa/parser/cxfa_record.cpp",
-      "xfa/fxfa/parser/cxfa_record.h",
-      "xfa/fxfa/parser/cxfa_recordset.cpp",
-      "xfa/fxfa/parser/cxfa_recordset.h",
-      "xfa/fxfa/parser/cxfa_rectangle.cpp",
-      "xfa/fxfa/parser/cxfa_rectangle.h",
-      "xfa/fxfa/parser/cxfa_ref.cpp",
-      "xfa/fxfa/parser/cxfa_ref.h",
-      "xfa/fxfa/parser/cxfa_relevant.cpp",
-      "xfa/fxfa/parser/cxfa_relevant.h",
-      "xfa/fxfa/parser/cxfa_rename.cpp",
-      "xfa/fxfa/parser/cxfa_rename.h",
-      "xfa/fxfa/parser/cxfa_renderpolicy.cpp",
-      "xfa/fxfa/parser/cxfa_renderpolicy.h",
-      "xfa/fxfa/parser/cxfa_rootelement.cpp",
-      "xfa/fxfa/parser/cxfa_rootelement.h",
-      "xfa/fxfa/parser/cxfa_runscripts.cpp",
-      "xfa/fxfa/parser/cxfa_runscripts.h",
-      "xfa/fxfa/parser/cxfa_script.cpp",
-      "xfa/fxfa/parser/cxfa_script.h",
-      "xfa/fxfa/parser/cxfa_scriptmodel.cpp",
-      "xfa/fxfa/parser/cxfa_scriptmodel.h",
-      "xfa/fxfa/parser/cxfa_select.cpp",
-      "xfa/fxfa/parser/cxfa_select.h",
-      "xfa/fxfa/parser/cxfa_setproperty.cpp",
-      "xfa/fxfa/parser/cxfa_setproperty.h",
-      "xfa/fxfa/parser/cxfa_severity.cpp",
-      "xfa/fxfa/parser/cxfa_severity.h",
-      "xfa/fxfa/parser/cxfa_sharptext.cpp",
-      "xfa/fxfa/parser/cxfa_sharptext.h",
-      "xfa/fxfa/parser/cxfa_sharpxhtml.cpp",
-      "xfa/fxfa/parser/cxfa_sharpxhtml.h",
-      "xfa/fxfa/parser/cxfa_sharpxml.cpp",
-      "xfa/fxfa/parser/cxfa_sharpxml.h",
-      "xfa/fxfa/parser/cxfa_signature.cpp",
-      "xfa/fxfa/parser/cxfa_signature.h",
-      "xfa/fxfa/parser/cxfa_signatureproperties.cpp",
-      "xfa/fxfa/parser/cxfa_signatureproperties.h",
-      "xfa/fxfa/parser/cxfa_signdata.cpp",
-      "xfa/fxfa/parser/cxfa_signdata.h",
-      "xfa/fxfa/parser/cxfa_signing.cpp",
-      "xfa/fxfa/parser/cxfa_signing.h",
-      "xfa/fxfa/parser/cxfa_silentprint.cpp",
-      "xfa/fxfa/parser/cxfa_silentprint.h",
-      "xfa/fxfa/parser/cxfa_soapaction.cpp",
-      "xfa/fxfa/parser/cxfa_soapaction.h",
-      "xfa/fxfa/parser/cxfa_soapaddress.cpp",
-      "xfa/fxfa/parser/cxfa_soapaddress.h",
-      "xfa/fxfa/parser/cxfa_solid.cpp",
-      "xfa/fxfa/parser/cxfa_solid.h",
-      "xfa/fxfa/parser/cxfa_source.cpp",
-      "xfa/fxfa/parser/cxfa_source.h",
-      "xfa/fxfa/parser/cxfa_sourceset.cpp",
-      "xfa/fxfa/parser/cxfa_sourceset.h",
-      "xfa/fxfa/parser/cxfa_speak.cpp",
-      "xfa/fxfa/parser/cxfa_speak.h",
-      "xfa/fxfa/parser/cxfa_staple.cpp",
-      "xfa/fxfa/parser/cxfa_staple.h",
-      "xfa/fxfa/parser/cxfa_startnode.cpp",
-      "xfa/fxfa/parser/cxfa_startnode.h",
-      "xfa/fxfa/parser/cxfa_startpage.cpp",
-      "xfa/fxfa/parser/cxfa_startpage.h",
-      "xfa/fxfa/parser/cxfa_stipple.cpp",
-      "xfa/fxfa/parser/cxfa_stipple.h",
-      "xfa/fxfa/parser/cxfa_stroke.cpp",
-      "xfa/fxfa/parser/cxfa_stroke.h",
-      "xfa/fxfa/parser/cxfa_subform.cpp",
-      "xfa/fxfa/parser/cxfa_subform.h",
-      "xfa/fxfa/parser/cxfa_subformset.cpp",
-      "xfa/fxfa/parser/cxfa_subformset.h",
-      "xfa/fxfa/parser/cxfa_subjectdn.cpp",
-      "xfa/fxfa/parser/cxfa_subjectdn.h",
-      "xfa/fxfa/parser/cxfa_subjectdns.cpp",
-      "xfa/fxfa/parser/cxfa_subjectdns.h",
-      "xfa/fxfa/parser/cxfa_submit.cpp",
-      "xfa/fxfa/parser/cxfa_submit.h",
-      "xfa/fxfa/parser/cxfa_submitformat.cpp",
-      "xfa/fxfa/parser/cxfa_submitformat.h",
-      "xfa/fxfa/parser/cxfa_submiturl.cpp",
-      "xfa/fxfa/parser/cxfa_submiturl.h",
-      "xfa/fxfa/parser/cxfa_subsetbelow.cpp",
-      "xfa/fxfa/parser/cxfa_subsetbelow.h",
-      "xfa/fxfa/parser/cxfa_suppressbanner.cpp",
-      "xfa/fxfa/parser/cxfa_suppressbanner.h",
-      "xfa/fxfa/parser/cxfa_tagged.cpp",
-      "xfa/fxfa/parser/cxfa_tagged.h",
-      "xfa/fxfa/parser/cxfa_template.cpp",
-      "xfa/fxfa/parser/cxfa_template.h",
-      "xfa/fxfa/parser/cxfa_templatecache.cpp",
-      "xfa/fxfa/parser/cxfa_templatecache.h",
-      "xfa/fxfa/parser/cxfa_text.cpp",
-      "xfa/fxfa/parser/cxfa_text.h",
-      "xfa/fxfa/parser/cxfa_textedit.cpp",
-      "xfa/fxfa/parser/cxfa_textedit.h",
-      "xfa/fxfa/parser/cxfa_thisproxy.cpp",
-      "xfa/fxfa/parser/cxfa_thisproxy.h",
-      "xfa/fxfa/parser/cxfa_threshold.cpp",
-      "xfa/fxfa/parser/cxfa_threshold.h",
-      "xfa/fxfa/parser/cxfa_time.cpp",
-      "xfa/fxfa/parser/cxfa_time.h",
-      "xfa/fxfa/parser/cxfa_timepattern.cpp",
-      "xfa/fxfa/parser/cxfa_timepattern.h",
-      "xfa/fxfa/parser/cxfa_timepatterns.cpp",
-      "xfa/fxfa/parser/cxfa_timepatterns.h",
-      "xfa/fxfa/parser/cxfa_timestamp.cpp",
-      "xfa/fxfa/parser/cxfa_timestamp.h",
-      "xfa/fxfa/parser/cxfa_timezoneprovider.cpp",
-      "xfa/fxfa/parser/cxfa_timezoneprovider.h",
-      "xfa/fxfa/parser/cxfa_to.cpp",
-      "xfa/fxfa/parser/cxfa_to.h",
-      "xfa/fxfa/parser/cxfa_tooltip.cpp",
-      "xfa/fxfa/parser/cxfa_tooltip.h",
-      "xfa/fxfa/parser/cxfa_trace.cpp",
-      "xfa/fxfa/parser/cxfa_trace.h",
-      "xfa/fxfa/parser/cxfa_transform.cpp",
-      "xfa/fxfa/parser/cxfa_transform.h",
-      "xfa/fxfa/parser/cxfa_traversal.cpp",
-      "xfa/fxfa/parser/cxfa_traversal.h",
-      "xfa/fxfa/parser/cxfa_traverse.cpp",
-      "xfa/fxfa/parser/cxfa_traverse.h",
-      "xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h",
-      "xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h",
-      "xfa/fxfa/parser/cxfa_traversestrategy_xfacontainernode.h",
-      "xfa/fxfa/parser/cxfa_traversestrategy_xfanode.h",
-      "xfa/fxfa/parser/cxfa_treelist.cpp",
-      "xfa/fxfa/parser/cxfa_treelist.h",
-      "xfa/fxfa/parser/cxfa_type.cpp",
-      "xfa/fxfa/parser/cxfa_type.h",
-      "xfa/fxfa/parser/cxfa_typeface.cpp",
-      "xfa/fxfa/parser/cxfa_typeface.h",
-      "xfa/fxfa/parser/cxfa_typefaces.cpp",
-      "xfa/fxfa/parser/cxfa_typefaces.h",
-      "xfa/fxfa/parser/cxfa_ui.cpp",
-      "xfa/fxfa/parser/cxfa_ui.h",
-      "xfa/fxfa/parser/cxfa_update.cpp",
-      "xfa/fxfa/parser/cxfa_update.h",
-      "xfa/fxfa/parser/cxfa_uri.cpp",
-      "xfa/fxfa/parser/cxfa_uri.h",
-      "xfa/fxfa/parser/cxfa_user.cpp",
-      "xfa/fxfa/parser/cxfa_user.h",
-      "xfa/fxfa/parser/cxfa_validate.cpp",
-      "xfa/fxfa/parser/cxfa_validate.h",
-      "xfa/fxfa/parser/cxfa_validateapprovalsignatures.cpp",
-      "xfa/fxfa/parser/cxfa_validateapprovalsignatures.h",
-      "xfa/fxfa/parser/cxfa_validationmessaging.cpp",
-      "xfa/fxfa/parser/cxfa_validationmessaging.h",
-      "xfa/fxfa/parser/cxfa_value.cpp",
-      "xfa/fxfa/parser/cxfa_value.h",
-      "xfa/fxfa/parser/cxfa_variables.cpp",
-      "xfa/fxfa/parser/cxfa_variables.h",
-      "xfa/fxfa/parser/cxfa_version.cpp",
-      "xfa/fxfa/parser/cxfa_version.h",
-      "xfa/fxfa/parser/cxfa_versioncontrol.cpp",
-      "xfa/fxfa/parser/cxfa_versioncontrol.h",
-      "xfa/fxfa/parser/cxfa_viewerpreferences.cpp",
-      "xfa/fxfa/parser/cxfa_viewerpreferences.h",
-      "xfa/fxfa/parser/cxfa_webclient.cpp",
-      "xfa/fxfa/parser/cxfa_webclient.h",
-      "xfa/fxfa/parser/cxfa_whitespace.cpp",
-      "xfa/fxfa/parser/cxfa_whitespace.h",
-      "xfa/fxfa/parser/cxfa_window.cpp",
-      "xfa/fxfa/parser/cxfa_window.h",
-      "xfa/fxfa/parser/cxfa_wsdladdress.cpp",
-      "xfa/fxfa/parser/cxfa_wsdladdress.h",
-      "xfa/fxfa/parser/cxfa_wsdlconnection.cpp",
-      "xfa/fxfa/parser/cxfa_wsdlconnection.h",
-      "xfa/fxfa/parser/cxfa_xdc.cpp",
-      "xfa/fxfa/parser/cxfa_xdc.h",
-      "xfa/fxfa/parser/cxfa_xdp.cpp",
-      "xfa/fxfa/parser/cxfa_xdp.h",
-      "xfa/fxfa/parser/cxfa_xfa.cpp",
-      "xfa/fxfa/parser/cxfa_xfa.h",
-      "xfa/fxfa/parser/cxfa_xmlconnection.cpp",
-      "xfa/fxfa/parser/cxfa_xmlconnection.h",
-      "xfa/fxfa/parser/cxfa_xmllocale.cpp",
-      "xfa/fxfa/parser/cxfa_xmllocale.h",
-      "xfa/fxfa/parser/cxfa_xsdconnection.cpp",
-      "xfa/fxfa/parser/cxfa_xsdconnection.h",
-      "xfa/fxfa/parser/cxfa_xsl.cpp",
-      "xfa/fxfa/parser/cxfa_xsl.h",
-      "xfa/fxfa/parser/cxfa_zpl.cpp",
-      "xfa/fxfa/parser/cxfa_zpl.h",
-      "xfa/fxfa/parser/xfa_basic_data.h",
-      "xfa/fxfa/parser/xfa_basic_data_element_script.cpp",
-      "xfa/fxfa/parser/xfa_basic_data_enum.cpp",
-      "xfa/fxfa/parser/xfa_document_datamerger_imp.cpp",
-      "xfa/fxfa/parser/xfa_document_datamerger_imp.h",
-      "xfa/fxfa/parser/xfa_resolvenode_rs.h",
-      "xfa/fxfa/parser/xfa_utils.cpp",
-      "xfa/fxfa/parser/xfa_utils.h",
-    ]
-    deps = [
-      ":fxcrt",
-      ":fxjs",
-      ":xfa_fde",
-      ":xfa_fgas",
-      ":xfa_fxfa",
-    ]
-    configs += [
-      ":pdfium_core_config",
-      ":xfa_warnings",
-    ]
-  }
-
-  jumbo_source_set("xfa_fxgraphics") {
-    sources = [
-      "xfa/fxgraphics/cxfa_gecolor.cpp",
-      "xfa/fxgraphics/cxfa_gecolor.h",
-      "xfa/fxgraphics/cxfa_gepath.cpp",
-      "xfa/fxgraphics/cxfa_gepath.h",
-      "xfa/fxgraphics/cxfa_gepattern.cpp",
-      "xfa/fxgraphics/cxfa_gepattern.h",
-      "xfa/fxgraphics/cxfa_geshading.cpp",
-      "xfa/fxgraphics/cxfa_geshading.h",
-      "xfa/fxgraphics/cxfa_graphics.cpp",
-      "xfa/fxgraphics/cxfa_graphics.h",
-    ]
-    configs += [
-      ":pdfium_core_config",
-      ":xfa_warnings",
-    ]
-  }
 }
 
 test("pdfium_unittests") {
diff --git a/xfa/BUILD.gn b/xfa/BUILD.gn
new file mode 100644
index 0000000..3453a40
--- /dev/null
+++ b/xfa/BUILD.gn
@@ -0,0 +1,27 @@
+# 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")
+
+assert(pdf_enable_xfa)
+
+config("xfa_warnings") {
+  visibility = [ ":*" ]
+  if (is_posix && !is_clang) {  # When GCC.
+    cflags = [ "-Wno-strict-overflow" ]
+  }
+}
+
+group("xfa") {
+  deps = [
+    "fde",
+    "fgas",
+    "fwl",
+    "fxfa",
+    "fxfa/fm2js",
+    "fxfa/parser",
+    "fxgraphics",
+  ]
+  visibility = [ "../*" ]
+}
diff --git a/xfa/fde/BUILD.gn b/xfa/fde/BUILD.gn
new file mode 100644
index 0000000..ecfbbb2
--- /dev/null
+++ b/xfa/fde/BUILD.gn
@@ -0,0 +1,28 @@
+# 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")
+
+assert(pdf_enable_xfa)
+
+jumbo_source_set("fde") {
+  sources = [
+    "cfde_data.h",
+    "cfde_texteditengine.cpp",
+    "cfde_texteditengine.h",
+    "cfde_textout.cpp",
+    "cfde_textout.h",
+    "cfde_wordbreak_data.cpp",
+    "cfde_wordbreak_data.h",
+  ]
+  deps = [
+    "../../:fxcrt",
+  ]
+  configs += [
+    "../../:pdfium_core_config",
+    "../:xfa_warnings",
+  ]
+  visibility = [ "../../*" ]
+}
diff --git a/xfa/fgas/BUILD.gn b/xfa/fgas/BUILD.gn
new file mode 100644
index 0000000..0cb74da
--- /dev/null
+++ b/xfa/fgas/BUILD.gn
@@ -0,0 +1,52 @@
+# 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")
+
+assert(pdf_enable_xfa)
+
+jumbo_source_set("fgas") {
+  sources = [
+    "crt/cfgas_formatstring.cpp",
+    "crt/cfgas_formatstring.h",
+    "font/cfgas_defaultfontmanager.cpp",
+    "font/cfgas_defaultfontmanager.h",
+    "font/cfgas_fontmgr.cpp",
+    "font/cfgas_fontmgr.h",
+    "font/cfgas_gefont.cpp",
+    "font/cfgas_gefont.h",
+    "font/cfgas_pdffontmgr.cpp",
+    "font/cfgas_pdffontmgr.h",
+    "font/fgas_fontutils.cpp",
+    "font/fgas_fontutils.h",
+    "layout/cfx_break.cpp",
+    "layout/cfx_break.h",
+    "layout/cfx_breakline.cpp",
+    "layout/cfx_breakline.h",
+    "layout/cfx_breakpiece.cpp",
+    "layout/cfx_breakpiece.h",
+    "layout/cfx_linebreak.cpp",
+    "layout/cfx_linebreak.h",
+    "layout/cfx_rtfbreak.cpp",
+    "layout/cfx_rtfbreak.h",
+    "layout/cfx_txtbreak.cpp",
+    "layout/cfx_txtbreak.h",
+  ]
+  deps = [
+    "../../:fxcrt",
+  ]
+  configs += [
+    "../../:pdfium_core_config",
+    "../:xfa_warnings",
+  ]
+  visibility = [ "../../*" ]
+
+  if (!is_win) {
+    sources += [
+      "font/cfx_fontsourceenum_file.cpp",
+      "font/cfx_fontsourceenum_file.h",
+    ]
+  }
+}
diff --git a/xfa/fwl/BUILD.gn b/xfa/fwl/BUILD.gn
new file mode 100644
index 0000000..6d6fbeb
--- /dev/null
+++ b/xfa/fwl/BUILD.gn
@@ -0,0 +1,133 @@
+# 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")
+
+assert(pdf_enable_xfa)
+
+jumbo_source_set("fwl") {
+  sources = [
+    "cfwl_app.cpp",
+    "cfwl_app.h",
+    "cfwl_barcode.cpp",
+    "cfwl_barcode.h",
+    "cfwl_caret.cpp",
+    "cfwl_caret.h",
+    "cfwl_checkbox.cpp",
+    "cfwl_checkbox.h",
+    "cfwl_combobox.cpp",
+    "cfwl_combobox.h",
+    "cfwl_comboedit.cpp",
+    "cfwl_comboedit.h",
+    "cfwl_combolist.cpp",
+    "cfwl_combolist.h",
+    "cfwl_datetimeedit.cpp",
+    "cfwl_datetimeedit.h",
+    "cfwl_datetimepicker.cpp",
+    "cfwl_datetimepicker.h",
+    "cfwl_edit.cpp",
+    "cfwl_edit.h",
+    "cfwl_event.cpp",
+    "cfwl_event.h",
+    "cfwl_eventmouse.cpp",
+    "cfwl_eventmouse.h",
+    "cfwl_eventscroll.cpp",
+    "cfwl_eventscroll.h",
+    "cfwl_eventselectchanged.cpp",
+    "cfwl_eventselectchanged.h",
+    "cfwl_eventtarget.cpp",
+    "cfwl_eventtarget.h",
+    "cfwl_eventtextwillchange.cpp",
+    "cfwl_eventtextwillchange.h",
+    "cfwl_eventvalidate.cpp",
+    "cfwl_eventvalidate.h",
+    "cfwl_form.cpp",
+    "cfwl_form.h",
+    "cfwl_listbox.cpp",
+    "cfwl_listbox.h",
+    "cfwl_listitem.cpp",
+    "cfwl_listitem.h",
+    "cfwl_message.cpp",
+    "cfwl_message.h",
+    "cfwl_messagekey.cpp",
+    "cfwl_messagekey.h",
+    "cfwl_messagekillfocus.cpp",
+    "cfwl_messagekillfocus.h",
+    "cfwl_messagemouse.cpp",
+    "cfwl_messagemouse.h",
+    "cfwl_messagemousewheel.cpp",
+    "cfwl_messagemousewheel.h",
+    "cfwl_messagesetfocus.cpp",
+    "cfwl_messagesetfocus.h",
+    "cfwl_monthcalendar.cpp",
+    "cfwl_monthcalendar.h",
+    "cfwl_notedriver.cpp",
+    "cfwl_notedriver.h",
+    "cfwl_noteloop.cpp",
+    "cfwl_noteloop.h",
+    "cfwl_picturebox.cpp",
+    "cfwl_picturebox.h",
+    "cfwl_pushbutton.cpp",
+    "cfwl_pushbutton.h",
+    "cfwl_scrollbar.cpp",
+    "cfwl_scrollbar.h",
+    "cfwl_themebackground.h",
+    "cfwl_themepart.cpp",
+    "cfwl_themepart.h",
+    "cfwl_themetext.h",
+    "cfwl_timer.cpp",
+    "cfwl_timer.h",
+    "cfwl_timerinfo.cpp",
+    "cfwl_timerinfo.h",
+    "cfwl_widget.cpp",
+    "cfwl_widget.h",
+    "cfwl_widgetmgr.cpp",
+    "cfwl_widgetmgr.h",
+    "cfwl_widgetproperties.cpp",
+    "cfwl_widgetproperties.h",
+    "cfx_barcode.cpp",
+    "cfx_barcode.h",
+    "fwl_widgetdef.h",
+    "fwl_widgethit.h",
+    "ifwl_adaptertimermgr.h",
+    "ifwl_themeprovider.h",
+    "ifwl_widgetdelegate.h",
+    "theme/cfwl_barcodetp.cpp",
+    "theme/cfwl_barcodetp.h",
+    "theme/cfwl_carettp.cpp",
+    "theme/cfwl_carettp.h",
+    "theme/cfwl_checkboxtp.cpp",
+    "theme/cfwl_checkboxtp.h",
+    "theme/cfwl_comboboxtp.cpp",
+    "theme/cfwl_comboboxtp.h",
+    "theme/cfwl_datetimepickertp.cpp",
+    "theme/cfwl_datetimepickertp.h",
+    "theme/cfwl_edittp.cpp",
+    "theme/cfwl_edittp.h",
+    "theme/cfwl_listboxtp.cpp",
+    "theme/cfwl_listboxtp.h",
+    "theme/cfwl_monthcalendartp.cpp",
+    "theme/cfwl_monthcalendartp.h",
+    "theme/cfwl_pictureboxtp.cpp",
+    "theme/cfwl_pictureboxtp.h",
+    "theme/cfwl_pushbuttontp.cpp",
+    "theme/cfwl_pushbuttontp.h",
+    "theme/cfwl_scrollbartp.cpp",
+    "theme/cfwl_scrollbartp.h",
+    "theme/cfwl_utils.h",
+    "theme/cfwl_widgettp.cpp",
+    "theme/cfwl_widgettp.h",
+  ]
+  deps = [
+    "../../:fxcrt",
+    "../../fxbarcode",
+    "../fgas",
+  ]
+  configs += [
+    "../../:pdfium_core_config",
+    "../:xfa_warnings",
+  ]
+  visibility = [ "../../*" ]
+}
diff --git a/xfa/fxfa/BUILD.gn b/xfa/fxfa/BUILD.gn
new file mode 100644
index 0000000..c6e4b98
--- /dev/null
+++ b/xfa/fxfa/BUILD.gn
@@ -0,0 +1,112 @@
+# 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")
+
+assert(pdf_enable_xfa)
+
+jumbo_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_linkuserdata.cpp",
+    "cxfa_linkuserdata.h",
+    "cxfa_loadercontext.cpp",
+    "cxfa_loadercontext.h",
+    "cxfa_pieceline.cpp",
+    "cxfa_pieceline.h",
+    "cxfa_readynodeiterator.cpp",
+    "cxfa_readynodeiterator.h",
+    "cxfa_rendercontext.cpp",
+    "cxfa_rendercontext.h",
+    "cxfa_textlayout.cpp",
+    "cxfa_textlayout.h",
+    "cxfa_textparsecontext.cpp",
+    "cxfa_textparsecontext.h",
+    "cxfa_textparser.cpp",
+    "cxfa_textparser.h",
+    "cxfa_textpiece.cpp",
+    "cxfa_textpiece.h",
+    "cxfa_textprovider.cpp",
+    "cxfa_textprovider.h",
+    "cxfa_texttabstopscontext.cpp",
+    "cxfa_texttabstopscontext.h",
+    "cxfa_textuserdata.cpp",
+    "cxfa_textuserdata.h",
+    "fxfa.h",
+    "fxfa_basic.h",
+  ]
+  deps = [
+    "../../:fxcrt",
+    "../../:fxjs",
+    "../fde",
+    "../fgas",
+  ]
+  configs += [
+    "../../:pdfium_core_config",
+    "../:xfa_warnings",
+  ]
+  visibility = [ "../../*" ]
+}
diff --git a/xfa/fxfa/fm2js/BUILD.gn b/xfa/fxfa/fm2js/BUILD.gn
new file mode 100644
index 0000000..d34265f
--- /dev/null
+++ b/xfa/fxfa/fm2js/BUILD.gn
@@ -0,0 +1,31 @@
+# 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")
+
+assert(pdf_enable_xfa)
+
+jumbo_source_set("fm2js") {
+  sources = [
+    "cxfa_fmexpression.cpp",
+    "cxfa_fmexpression.h",
+    "cxfa_fmlexer.cpp",
+    "cxfa_fmlexer.h",
+    "cxfa_fmparser.cpp",
+    "cxfa_fmparser.h",
+    "cxfa_fmsimpleexpression.cpp",
+    "cxfa_fmsimpleexpression.h",
+    "cxfa_fmtojavascriptdepth.cpp",
+    "cxfa_fmtojavascriptdepth.h",
+  ]
+  deps = [
+    "//third_party/icu:icuuc",
+  ]
+  configs += [
+    "../../../:pdfium_core_config",
+    "../../:xfa_warnings",
+  ]
+  visibility = [ "../../../*" ]
+}
diff --git a/xfa/fxfa/parser/BUILD.gn b/xfa/fxfa/parser/BUILD.gn
new file mode 100644
index 0000000..6391e0d
--- /dev/null
+++ b/xfa/fxfa/parser/BUILD.gn
@@ -0,0 +1,713 @@
+# 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")
+
+assert(pdf_enable_xfa)
+
+jumbo_source_set("parser") {
+  sources = [
+    "cscript_datawindow.cpp",
+    "cscript_datawindow.h",
+    "cscript_eventpseudomodel.cpp",
+    "cscript_eventpseudomodel.h",
+    "cscript_hostpseudomodel.cpp",
+    "cscript_hostpseudomodel.h",
+    "cscript_layoutpseudomodel.cpp",
+    "cscript_layoutpseudomodel.h",
+    "cscript_logpseudomodel.cpp",
+    "cscript_logpseudomodel.h",
+    "cscript_signaturepseudomodel.cpp",
+    "cscript_signaturepseudomodel.h",
+    "cxfa_accessiblecontent.cpp",
+    "cxfa_accessiblecontent.h",
+    "cxfa_acrobat.cpp",
+    "cxfa_acrobat.h",
+    "cxfa_acrobat7.cpp",
+    "cxfa_acrobat7.h",
+    "cxfa_adbe_jsconsole.cpp",
+    "cxfa_adbe_jsconsole.h",
+    "cxfa_adbe_jsdebugger.cpp",
+    "cxfa_adbe_jsdebugger.h",
+    "cxfa_addsilentprint.cpp",
+    "cxfa_addsilentprint.h",
+    "cxfa_addviewerpreferences.cpp",
+    "cxfa_addviewerpreferences.h",
+    "cxfa_adjustdata.cpp",
+    "cxfa_adjustdata.h",
+    "cxfa_adobeextensionlevel.cpp",
+    "cxfa_adobeextensionlevel.h",
+    "cxfa_agent.cpp",
+    "cxfa_agent.h",
+    "cxfa_alwaysembed.cpp",
+    "cxfa_alwaysembed.h",
+    "cxfa_amd.cpp",
+    "cxfa_amd.h",
+    "cxfa_appearancefilter.cpp",
+    "cxfa_appearancefilter.h",
+    "cxfa_arc.cpp",
+    "cxfa_arc.h",
+    "cxfa_area.cpp",
+    "cxfa_area.h",
+    "cxfa_arraynodelist.cpp",
+    "cxfa_arraynodelist.h",
+    "cxfa_assist.cpp",
+    "cxfa_assist.h",
+    "cxfa_attachnodelist.cpp",
+    "cxfa_attachnodelist.h",
+    "cxfa_attributes.cpp",
+    "cxfa_attributes.h",
+    "cxfa_autosave.cpp",
+    "cxfa_autosave.h",
+    "cxfa_barcode.cpp",
+    "cxfa_barcode.h",
+    "cxfa_base.cpp",
+    "cxfa_base.h",
+    "cxfa_batchoutput.cpp",
+    "cxfa_batchoutput.h",
+    "cxfa_behavioroverride.cpp",
+    "cxfa_behavioroverride.h",
+    "cxfa_bind.cpp",
+    "cxfa_bind.h",
+    "cxfa_binditems.cpp",
+    "cxfa_binditems.h",
+    "cxfa_bookend.cpp",
+    "cxfa_bookend.h",
+    "cxfa_boolean.cpp",
+    "cxfa_boolean.h",
+    "cxfa_border.cpp",
+    "cxfa_border.h",
+    "cxfa_box.cpp",
+    "cxfa_box.h",
+    "cxfa_break.cpp",
+    "cxfa_break.h",
+    "cxfa_breakafter.cpp",
+    "cxfa_breakafter.h",
+    "cxfa_breakbefore.cpp",
+    "cxfa_breakbefore.h",
+    "cxfa_button.cpp",
+    "cxfa_button.h",
+    "cxfa_cache.cpp",
+    "cxfa_cache.h",
+    "cxfa_calculate.cpp",
+    "cxfa_calculate.h",
+    "cxfa_calendarsymbols.cpp",
+    "cxfa_calendarsymbols.h",
+    "cxfa_caption.cpp",
+    "cxfa_caption.h",
+    "cxfa_certificate.cpp",
+    "cxfa_certificate.h",
+    "cxfa_certificates.cpp",
+    "cxfa_certificates.h",
+    "cxfa_change.cpp",
+    "cxfa_change.h",
+    "cxfa_checkbutton.cpp",
+    "cxfa_checkbutton.h",
+    "cxfa_choicelist.cpp",
+    "cxfa_choicelist.h",
+    "cxfa_color.cpp",
+    "cxfa_color.h",
+    "cxfa_comb.cpp",
+    "cxfa_comb.h",
+    "cxfa_command.cpp",
+    "cxfa_command.h",
+    "cxfa_common.cpp",
+    "cxfa_common.h",
+    "cxfa_compress.cpp",
+    "cxfa_compress.h",
+    "cxfa_compression.cpp",
+    "cxfa_compression.h",
+    "cxfa_compresslogicalstructure.cpp",
+    "cxfa_compresslogicalstructure.h",
+    "cxfa_compressobjectstream.cpp",
+    "cxfa_compressobjectstream.h",
+    "cxfa_config.cpp",
+    "cxfa_config.h",
+    "cxfa_conformance.cpp",
+    "cxfa_conformance.h",
+    "cxfa_connect.cpp",
+    "cxfa_connect.h",
+    "cxfa_connectionset.cpp",
+    "cxfa_connectionset.h",
+    "cxfa_connectstring.cpp",
+    "cxfa_connectstring.h",
+    "cxfa_containerlayoutitem.cpp",
+    "cxfa_containerlayoutitem.h",
+    "cxfa_contentarea.cpp",
+    "cxfa_contentarea.h",
+    "cxfa_contentcopy.cpp",
+    "cxfa_contentcopy.h",
+    "cxfa_contentlayoutitem.cpp",
+    "cxfa_contentlayoutitem.h",
+    "cxfa_copies.cpp",
+    "cxfa_copies.h",
+    "cxfa_corner.cpp",
+    "cxfa_corner.h",
+    "cxfa_creator.cpp",
+    "cxfa_creator.h",
+    "cxfa_currencysymbol.cpp",
+    "cxfa_currencysymbol.h",
+    "cxfa_currencysymbols.cpp",
+    "cxfa_currencysymbols.h",
+    "cxfa_currentpage.cpp",
+    "cxfa_currentpage.h",
+    "cxfa_data.cpp",
+    "cxfa_data.h",
+    "cxfa_dataexporter.cpp",
+    "cxfa_dataexporter.h",
+    "cxfa_datagroup.cpp",
+    "cxfa_datagroup.h",
+    "cxfa_datamodel.cpp",
+    "cxfa_datamodel.h",
+    "cxfa_datavalue.cpp",
+    "cxfa_datavalue.h",
+    "cxfa_date.cpp",
+    "cxfa_date.h",
+    "cxfa_datepattern.cpp",
+    "cxfa_datepattern.h",
+    "cxfa_datepatterns.cpp",
+    "cxfa_datepatterns.h",
+    "cxfa_datetime.cpp",
+    "cxfa_datetime.h",
+    "cxfa_datetimeedit.cpp",
+    "cxfa_datetimeedit.h",
+    "cxfa_datetimesymbols.cpp",
+    "cxfa_datetimesymbols.h",
+    "cxfa_day.cpp",
+    "cxfa_day.h",
+    "cxfa_daynames.cpp",
+    "cxfa_daynames.h",
+    "cxfa_debug.cpp",
+    "cxfa_debug.h",
+    "cxfa_decimal.cpp",
+    "cxfa_decimal.h",
+    "cxfa_defaulttypeface.cpp",
+    "cxfa_defaulttypeface.h",
+    "cxfa_defaultui.cpp",
+    "cxfa_defaultui.h",
+    "cxfa_delete.cpp",
+    "cxfa_delete.h",
+    "cxfa_delta.cpp",
+    "cxfa_delta.h",
+    "cxfa_deltas.cpp",
+    "cxfa_deltas.h",
+    "cxfa_desc.cpp",
+    "cxfa_desc.h",
+    "cxfa_destination.cpp",
+    "cxfa_destination.h",
+    "cxfa_digestmethod.cpp",
+    "cxfa_digestmethod.h",
+    "cxfa_digestmethods.cpp",
+    "cxfa_digestmethods.h",
+    "cxfa_document.cpp",
+    "cxfa_document.h",
+    "cxfa_document_parser.cpp",
+    "cxfa_document_parser.h",
+    "cxfa_documentassembly.cpp",
+    "cxfa_documentassembly.h",
+    "cxfa_draw.cpp",
+    "cxfa_draw.h",
+    "cxfa_driver.cpp",
+    "cxfa_driver.h",
+    "cxfa_dsigdata.cpp",
+    "cxfa_dsigdata.h",
+    "cxfa_duplexoption.cpp",
+    "cxfa_duplexoption.h",
+    "cxfa_dynamicrender.cpp",
+    "cxfa_dynamicrender.h",
+    "cxfa_edge.cpp",
+    "cxfa_edge.h",
+    "cxfa_effectiveinputpolicy.cpp",
+    "cxfa_effectiveinputpolicy.h",
+    "cxfa_effectiveoutputpolicy.cpp",
+    "cxfa_effectiveoutputpolicy.h",
+    "cxfa_embed.cpp",
+    "cxfa_embed.h",
+    "cxfa_encoding.cpp",
+    "cxfa_encoding.h",
+    "cxfa_encodings.cpp",
+    "cxfa_encodings.h",
+    "cxfa_encrypt.cpp",
+    "cxfa_encrypt.h",
+    "cxfa_encryption.cpp",
+    "cxfa_encryption.h",
+    "cxfa_encryptionlevel.cpp",
+    "cxfa_encryptionlevel.h",
+    "cxfa_encryptionmethod.cpp",
+    "cxfa_encryptionmethod.h",
+    "cxfa_encryptionmethods.cpp",
+    "cxfa_encryptionmethods.h",
+    "cxfa_enforce.cpp",
+    "cxfa_enforce.h",
+    "cxfa_equate.cpp",
+    "cxfa_equate.h",
+    "cxfa_equaterange.cpp",
+    "cxfa_equaterange.h",
+    "cxfa_era.cpp",
+    "cxfa_era.h",
+    "cxfa_eranames.cpp",
+    "cxfa_eranames.h",
+    "cxfa_event.cpp",
+    "cxfa_event.h",
+    "cxfa_exclgroup.cpp",
+    "cxfa_exclgroup.h",
+    "cxfa_exclude.cpp",
+    "cxfa_exclude.h",
+    "cxfa_excludens.cpp",
+    "cxfa_excludens.h",
+    "cxfa_exdata.cpp",
+    "cxfa_exdata.h",
+    "cxfa_execute.cpp",
+    "cxfa_execute.h",
+    "cxfa_exobject.cpp",
+    "cxfa_exobject.h",
+    "cxfa_extras.cpp",
+    "cxfa_extras.h",
+    "cxfa_field.cpp",
+    "cxfa_field.h",
+    "cxfa_fill.cpp",
+    "cxfa_fill.h",
+    "cxfa_filter.cpp",
+    "cxfa_filter.h",
+    "cxfa_fliplabel.cpp",
+    "cxfa_fliplabel.h",
+    "cxfa_float.cpp",
+    "cxfa_float.h",
+    "cxfa_font.cpp",
+    "cxfa_font.h",
+    "cxfa_fontinfo.cpp",
+    "cxfa_fontinfo.h",
+    "cxfa_form.cpp",
+    "cxfa_form.h",
+    "cxfa_format.cpp",
+    "cxfa_format.h",
+    "cxfa_formfieldfilling.cpp",
+    "cxfa_formfieldfilling.h",
+    "cxfa_groupparent.cpp",
+    "cxfa_groupparent.h",
+    "cxfa_handler.cpp",
+    "cxfa_handler.h",
+    "cxfa_hyphenation.cpp",
+    "cxfa_hyphenation.h",
+    "cxfa_ifempty.cpp",
+    "cxfa_ifempty.h",
+    "cxfa_image.cpp",
+    "cxfa_image.h",
+    "cxfa_imageedit.cpp",
+    "cxfa_imageedit.h",
+    "cxfa_includexdpcontent.cpp",
+    "cxfa_includexdpcontent.h",
+    "cxfa_incrementalload.cpp",
+    "cxfa_incrementalload.h",
+    "cxfa_incrementalmerge.cpp",
+    "cxfa_incrementalmerge.h",
+    "cxfa_insert.cpp",
+    "cxfa_insert.h",
+    "cxfa_instancemanager.cpp",
+    "cxfa_instancemanager.h",
+    "cxfa_integer.cpp",
+    "cxfa_integer.h",
+    "cxfa_interactive.cpp",
+    "cxfa_interactive.h",
+    "cxfa_issuers.cpp",
+    "cxfa_issuers.h",
+    "cxfa_itemlayoutprocessor.cpp",
+    "cxfa_itemlayoutprocessor.h",
+    "cxfa_items.cpp",
+    "cxfa_items.h",
+    "cxfa_jog.cpp",
+    "cxfa_jog.h",
+    "cxfa_keep.cpp",
+    "cxfa_keep.h",
+    "cxfa_keyusage.cpp",
+    "cxfa_keyusage.h",
+    "cxfa_labelprinter.cpp",
+    "cxfa_labelprinter.h",
+    "cxfa_layout.cpp",
+    "cxfa_layout.h",
+    "cxfa_layoutcontext.cpp",
+    "cxfa_layoutcontext.h",
+    "cxfa_layoutitem.cpp",
+    "cxfa_layoutitem.h",
+    "cxfa_layoutpagemgr.cpp",
+    "cxfa_layoutpagemgr.h",
+    "cxfa_layoutprocessor.cpp",
+    "cxfa_layoutprocessor.h",
+    "cxfa_level.cpp",
+    "cxfa_level.h",
+    "cxfa_line.cpp",
+    "cxfa_line.h",
+    "cxfa_linear.cpp",
+    "cxfa_linear.h",
+    "cxfa_linearized.cpp",
+    "cxfa_linearized.h",
+    "cxfa_list.cpp",
+    "cxfa_list.h",
+    "cxfa_locale.cpp",
+    "cxfa_locale.h",
+    "cxfa_localemgr.cpp",
+    "cxfa_localemgr.h",
+    "cxfa_localeset.cpp",
+    "cxfa_localeset.h",
+    "cxfa_localevalue.cpp",
+    "cxfa_localevalue.h",
+    "cxfa_lockdocument.cpp",
+    "cxfa_lockdocument.h",
+    "cxfa_log.cpp",
+    "cxfa_log.h",
+    "cxfa_manifest.cpp",
+    "cxfa_manifest.h",
+    "cxfa_map.cpp",
+    "cxfa_map.h",
+    "cxfa_margin.cpp",
+    "cxfa_margin.h",
+    "cxfa_mdp.cpp",
+    "cxfa_mdp.h",
+    "cxfa_measurement.cpp",
+    "cxfa_measurement.h",
+    "cxfa_medium.cpp",
+    "cxfa_medium.h",
+    "cxfa_mediuminfo.cpp",
+    "cxfa_mediuminfo.h",
+    "cxfa_meridiem.cpp",
+    "cxfa_meridiem.h",
+    "cxfa_meridiemnames.cpp",
+    "cxfa_meridiemnames.h",
+    "cxfa_message.cpp",
+    "cxfa_message.h",
+    "cxfa_messaging.cpp",
+    "cxfa_messaging.h",
+    "cxfa_mode.cpp",
+    "cxfa_mode.h",
+    "cxfa_modifyannots.cpp",
+    "cxfa_modifyannots.h",
+    "cxfa_month.cpp",
+    "cxfa_month.h",
+    "cxfa_monthnames.cpp",
+    "cxfa_monthnames.h",
+    "cxfa_msgid.cpp",
+    "cxfa_msgid.h",
+    "cxfa_nameattr.cpp",
+    "cxfa_nameattr.h",
+    "cxfa_neverembed.cpp",
+    "cxfa_neverembed.h",
+    "cxfa_node.cpp",
+    "cxfa_node.h",
+    "cxfa_node_statics.cpp",
+    "cxfa_nodehelper.cpp",
+    "cxfa_nodehelper.h",
+    "cxfa_nodeiteratortemplate.h",
+    "cxfa_nodelocale.cpp",
+    "cxfa_nodelocale.h",
+    "cxfa_nodeowner.cpp",
+    "cxfa_nodeowner.h",
+    "cxfa_numberofcopies.cpp",
+    "cxfa_numberofcopies.h",
+    "cxfa_numberpattern.cpp",
+    "cxfa_numberpattern.h",
+    "cxfa_numberpatterns.cpp",
+    "cxfa_numberpatterns.h",
+    "cxfa_numbersymbol.cpp",
+    "cxfa_numbersymbol.h",
+    "cxfa_numbersymbols.cpp",
+    "cxfa_numbersymbols.h",
+    "cxfa_numericedit.cpp",
+    "cxfa_numericedit.h",
+    "cxfa_object.cpp",
+    "cxfa_object.h",
+    "cxfa_occur.cpp",
+    "cxfa_occur.h",
+    "cxfa_oid.cpp",
+    "cxfa_oid.h",
+    "cxfa_oids.cpp",
+    "cxfa_oids.h",
+    "cxfa_openaction.cpp",
+    "cxfa_openaction.h",
+    "cxfa_operation.cpp",
+    "cxfa_operation.h",
+    "cxfa_output.cpp",
+    "cxfa_output.h",
+    "cxfa_outputbin.cpp",
+    "cxfa_outputbin.h",
+    "cxfa_outputxsl.cpp",
+    "cxfa_outputxsl.h",
+    "cxfa_overflow.cpp",
+    "cxfa_overflow.h",
+    "cxfa_overprint.cpp",
+    "cxfa_overprint.h",
+    "cxfa_packet.cpp",
+    "cxfa_packet.h",
+    "cxfa_packets.cpp",
+    "cxfa_packets.h",
+    "cxfa_pagearea.cpp",
+    "cxfa_pagearea.h",
+    "cxfa_pageoffset.cpp",
+    "cxfa_pageoffset.h",
+    "cxfa_pagerange.cpp",
+    "cxfa_pagerange.h",
+    "cxfa_pageset.cpp",
+    "cxfa_pageset.h",
+    "cxfa_pagination.cpp",
+    "cxfa_pagination.h",
+    "cxfa_paginationoverride.cpp",
+    "cxfa_paginationoverride.h",
+    "cxfa_para.cpp",
+    "cxfa_para.h",
+    "cxfa_part.cpp",
+    "cxfa_part.h",
+    "cxfa_password.cpp",
+    "cxfa_password.h",
+    "cxfa_passwordedit.cpp",
+    "cxfa_passwordedit.h",
+    "cxfa_pattern.cpp",
+    "cxfa_pattern.h",
+    "cxfa_pcl.cpp",
+    "cxfa_pcl.h",
+    "cxfa_pdf.cpp",
+    "cxfa_pdf.h",
+    "cxfa_pdfa.cpp",
+    "cxfa_pdfa.h",
+    "cxfa_permissions.cpp",
+    "cxfa_permissions.h",
+    "cxfa_picktraybypdfsize.cpp",
+    "cxfa_picktraybypdfsize.h",
+    "cxfa_picture.cpp",
+    "cxfa_picture.h",
+    "cxfa_plaintextmetadata.cpp",
+    "cxfa_plaintextmetadata.h",
+    "cxfa_presence.cpp",
+    "cxfa_presence.h",
+    "cxfa_present.cpp",
+    "cxfa_present.h",
+    "cxfa_print.cpp",
+    "cxfa_print.h",
+    "cxfa_printername.cpp",
+    "cxfa_printername.h",
+    "cxfa_printhighquality.cpp",
+    "cxfa_printhighquality.h",
+    "cxfa_printscaling.cpp",
+    "cxfa_printscaling.h",
+    "cxfa_producer.cpp",
+    "cxfa_producer.h",
+    "cxfa_proto.cpp",
+    "cxfa_proto.h",
+    "cxfa_ps.cpp",
+    "cxfa_ps.h",
+    "cxfa_psmap.cpp",
+    "cxfa_psmap.h",
+    "cxfa_query.cpp",
+    "cxfa_query.h",
+    "cxfa_radial.cpp",
+    "cxfa_radial.h",
+    "cxfa_range.cpp",
+    "cxfa_range.h",
+    "cxfa_reason.cpp",
+    "cxfa_reason.h",
+    "cxfa_reasons.cpp",
+    "cxfa_reasons.h",
+    "cxfa_record.cpp",
+    "cxfa_record.h",
+    "cxfa_recordset.cpp",
+    "cxfa_recordset.h",
+    "cxfa_rectangle.cpp",
+    "cxfa_rectangle.h",
+    "cxfa_ref.cpp",
+    "cxfa_ref.h",
+    "cxfa_relevant.cpp",
+    "cxfa_relevant.h",
+    "cxfa_rename.cpp",
+    "cxfa_rename.h",
+    "cxfa_renderpolicy.cpp",
+    "cxfa_renderpolicy.h",
+    "cxfa_rootelement.cpp",
+    "cxfa_rootelement.h",
+    "cxfa_runscripts.cpp",
+    "cxfa_runscripts.h",
+    "cxfa_script.cpp",
+    "cxfa_script.h",
+    "cxfa_scriptmodel.cpp",
+    "cxfa_scriptmodel.h",
+    "cxfa_select.cpp",
+    "cxfa_select.h",
+    "cxfa_setproperty.cpp",
+    "cxfa_setproperty.h",
+    "cxfa_severity.cpp",
+    "cxfa_severity.h",
+    "cxfa_sharptext.cpp",
+    "cxfa_sharptext.h",
+    "cxfa_sharpxhtml.cpp",
+    "cxfa_sharpxhtml.h",
+    "cxfa_sharpxml.cpp",
+    "cxfa_sharpxml.h",
+    "cxfa_signature.cpp",
+    "cxfa_signature.h",
+    "cxfa_signatureproperties.cpp",
+    "cxfa_signatureproperties.h",
+    "cxfa_signdata.cpp",
+    "cxfa_signdata.h",
+    "cxfa_signing.cpp",
+    "cxfa_signing.h",
+    "cxfa_silentprint.cpp",
+    "cxfa_silentprint.h",
+    "cxfa_soapaction.cpp",
+    "cxfa_soapaction.h",
+    "cxfa_soapaddress.cpp",
+    "cxfa_soapaddress.h",
+    "cxfa_solid.cpp",
+    "cxfa_solid.h",
+    "cxfa_source.cpp",
+    "cxfa_source.h",
+    "cxfa_sourceset.cpp",
+    "cxfa_sourceset.h",
+    "cxfa_speak.cpp",
+    "cxfa_speak.h",
+    "cxfa_staple.cpp",
+    "cxfa_staple.h",
+    "cxfa_startnode.cpp",
+    "cxfa_startnode.h",
+    "cxfa_startpage.cpp",
+    "cxfa_startpage.h",
+    "cxfa_stipple.cpp",
+    "cxfa_stipple.h",
+    "cxfa_stroke.cpp",
+    "cxfa_stroke.h",
+    "cxfa_subform.cpp",
+    "cxfa_subform.h",
+    "cxfa_subformset.cpp",
+    "cxfa_subformset.h",
+    "cxfa_subjectdn.cpp",
+    "cxfa_subjectdn.h",
+    "cxfa_subjectdns.cpp",
+    "cxfa_subjectdns.h",
+    "cxfa_submit.cpp",
+    "cxfa_submit.h",
+    "cxfa_submitformat.cpp",
+    "cxfa_submitformat.h",
+    "cxfa_submiturl.cpp",
+    "cxfa_submiturl.h",
+    "cxfa_subsetbelow.cpp",
+    "cxfa_subsetbelow.h",
+    "cxfa_suppressbanner.cpp",
+    "cxfa_suppressbanner.h",
+    "cxfa_tagged.cpp",
+    "cxfa_tagged.h",
+    "cxfa_template.cpp",
+    "cxfa_template.h",
+    "cxfa_templatecache.cpp",
+    "cxfa_templatecache.h",
+    "cxfa_text.cpp",
+    "cxfa_text.h",
+    "cxfa_textedit.cpp",
+    "cxfa_textedit.h",
+    "cxfa_thisproxy.cpp",
+    "cxfa_thisproxy.h",
+    "cxfa_threshold.cpp",
+    "cxfa_threshold.h",
+    "cxfa_time.cpp",
+    "cxfa_time.h",
+    "cxfa_timepattern.cpp",
+    "cxfa_timepattern.h",
+    "cxfa_timepatterns.cpp",
+    "cxfa_timepatterns.h",
+    "cxfa_timestamp.cpp",
+    "cxfa_timestamp.h",
+    "cxfa_timezoneprovider.cpp",
+    "cxfa_timezoneprovider.h",
+    "cxfa_to.cpp",
+    "cxfa_to.h",
+    "cxfa_tooltip.cpp",
+    "cxfa_tooltip.h",
+    "cxfa_trace.cpp",
+    "cxfa_trace.h",
+    "cxfa_transform.cpp",
+    "cxfa_transform.h",
+    "cxfa_traversal.cpp",
+    "cxfa_traversal.h",
+    "cxfa_traverse.cpp",
+    "cxfa_traverse.h",
+    "cxfa_traversestrategy_contentareacontainerlayoutitem.h",
+    "cxfa_traversestrategy_layoutitem.h",
+    "cxfa_traversestrategy_xfacontainernode.h",
+    "cxfa_traversestrategy_xfanode.h",
+    "cxfa_treelist.cpp",
+    "cxfa_treelist.h",
+    "cxfa_type.cpp",
+    "cxfa_type.h",
+    "cxfa_typeface.cpp",
+    "cxfa_typeface.h",
+    "cxfa_typefaces.cpp",
+    "cxfa_typefaces.h",
+    "cxfa_ui.cpp",
+    "cxfa_ui.h",
+    "cxfa_update.cpp",
+    "cxfa_update.h",
+    "cxfa_uri.cpp",
+    "cxfa_uri.h",
+    "cxfa_user.cpp",
+    "cxfa_user.h",
+    "cxfa_validate.cpp",
+    "cxfa_validate.h",
+    "cxfa_validateapprovalsignatures.cpp",
+    "cxfa_validateapprovalsignatures.h",
+    "cxfa_validationmessaging.cpp",
+    "cxfa_validationmessaging.h",
+    "cxfa_value.cpp",
+    "cxfa_value.h",
+    "cxfa_variables.cpp",
+    "cxfa_variables.h",
+    "cxfa_version.cpp",
+    "cxfa_version.h",
+    "cxfa_versioncontrol.cpp",
+    "cxfa_versioncontrol.h",
+    "cxfa_viewerpreferences.cpp",
+    "cxfa_viewerpreferences.h",
+    "cxfa_webclient.cpp",
+    "cxfa_webclient.h",
+    "cxfa_whitespace.cpp",
+    "cxfa_whitespace.h",
+    "cxfa_window.cpp",
+    "cxfa_window.h",
+    "cxfa_wsdladdress.cpp",
+    "cxfa_wsdladdress.h",
+    "cxfa_wsdlconnection.cpp",
+    "cxfa_wsdlconnection.h",
+    "cxfa_xdc.cpp",
+    "cxfa_xdc.h",
+    "cxfa_xdp.cpp",
+    "cxfa_xdp.h",
+    "cxfa_xfa.cpp",
+    "cxfa_xfa.h",
+    "cxfa_xmlconnection.cpp",
+    "cxfa_xmlconnection.h",
+    "cxfa_xmllocale.cpp",
+    "cxfa_xmllocale.h",
+    "cxfa_xsdconnection.cpp",
+    "cxfa_xsdconnection.h",
+    "cxfa_xsl.cpp",
+    "cxfa_xsl.h",
+    "cxfa_zpl.cpp",
+    "cxfa_zpl.h",
+    "xfa_basic_data.h",
+    "xfa_basic_data_element_script.cpp",
+    "xfa_basic_data_enum.cpp",
+    "xfa_document_datamerger_imp.cpp",
+    "xfa_document_datamerger_imp.h",
+    "xfa_resolvenode_rs.h",
+    "xfa_utils.cpp",
+    "xfa_utils.h",
+  ]
+  deps = [
+    "../../../:fxcrt",
+    "../../../:fxjs",
+    "../../fde",
+    "../../fgas",
+    "../../fxfa",
+  ]
+  configs += [
+    "../../../:pdfium_core_config",
+    "../../:xfa_warnings",
+  ]
+  visibility = [ "../../../*" ]
+}
diff --git a/xfa/fxgraphics/BUILD.gn b/xfa/fxgraphics/BUILD.gn
new file mode 100644
index 0000000..99087f6
--- /dev/null
+++ b/xfa/fxgraphics/BUILD.gn
@@ -0,0 +1,28 @@
+# 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")
+
+assert(pdf_enable_xfa)
+
+jumbo_source_set("fxgraphics") {
+  sources = [
+    "cxfa_gecolor.cpp",
+    "cxfa_gecolor.h",
+    "cxfa_gepath.cpp",
+    "cxfa_gepath.h",
+    "cxfa_gepattern.cpp",
+    "cxfa_gepattern.h",
+    "cxfa_geshading.cpp",
+    "cxfa_geshading.h",
+    "cxfa_graphics.cpp",
+    "cxfa_graphics.h",
+  ]
+  configs += [
+    "../../:pdfium_core_config",
+    "../:xfa_warnings",
+  ]
+  visibility = [ "../../*" ]
+}