# 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")
import("../../../testing/test.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 = [
    "../../../core/fxcrt",
    "//third_party/icu:icuuc",
  ]
  configs += [
    "../../../:pdfium_core_config",
    "../../:xfa_warnings",
  ]
  visibility = [ "../../../*" ]
}

pdfium_unittest_source_set("unittests") {
  sources = [
    "cxfa_fmexpression_unittest.cpp",
    "cxfa_fmlexer_unittest.cpp",
    "cxfa_fmparser_unittest.cpp",
    "cxfa_fmsimpleexpression_unittest.cpp",
  ]
  deps = [
    ":fm2js",
  ]
  pdfium_root_dir = "../../../"
}
