# Copyright 2018 The PDFium Authors
# 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("crt") {
  sources = [
    "cfgas_decimal.cpp",
    "cfgas_decimal.h",
    "cfgas_stringformatter.cpp",
    "cfgas_stringformatter.h",
    "locale_iface.h",
    "locale_mgr_iface.h",
  ]
  configs += [
    "../../../:pdfium_strict_config",
    "../../../:pdfium_noshorten_config",
    "../../:xfa_warnings",
  ]
  deps = [
    "../../../core/fpdfapi/page",
    "../../../core/fxcrt",
  ]
  visibility = [ "../../../*" ]
}

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