# 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("crt") {
  sources = [
    "cfgas_decimal.cpp",
    "cfgas_decimal.h",
    "cfgas_stringformatter.cpp",
    "cfgas_stringformatter.h",
    "locale_iface.h",
    "locale_mgr_iface.h",
  ]
  cflags = []
  configs += [
    "../../../:pdfium_strict_config",
    "../../:xfa_warnings",
  ]
  deps = [
    "../../../core/fpdfapi/page",
    "../../../core/fxcrt",
  ]
  visibility = [ "../../../*" ]
  if (is_clang) {
    cflags += [ "-Wshorten-64-to-32" ]
  }
}

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