# 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("fgas") {
  sources = [
    "crt/cfgas_decimal.cpp",
    "crt/cfgas_decimal.h",
    "crt/cfgas_stringformatter.cpp",
    "crt/cfgas_stringformatter.h",
    "crt/locale_iface.h",
    "crt/locale_mgr_iface.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_gemodule.cpp",
    "font/cfgas_gemodule.h",
    "font/cfgas_pdffontmgr.cpp",
    "font/cfgas_pdffontmgr.h",
    "font/fgas_fontutils.cpp",
    "font/fgas_fontutils.h",
  ]
  deps = [
    "../../core/fpdfapi/font",
    "../../core/fpdfapi/page",
    "../../core/fpdfapi/parser",
    "../../core/fxcrt",
    "../../core/fxge",
  ]
  configs += [
    "../../:pdfium_core_config",
    "../:xfa_warnings",
  ]
  visibility = [ "../../*" ]
}

pdfium_unittest_source_set("unittests") {
  sources = [
    "crt/cfgas_decimal_unittest.cpp",
    "crt/cfgas_stringformatter_unittest.cpp",
  ]
  deps = [
    ":fgas",
    "../../core/fpdfapi/page",
    "../../fxjs:gc",
    "../fxfa/parser",
  ]
  pdfium_root_dir = "../../"
}
