# 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("fm2js") {
  sources = [
    "cxfa_fmexpression.cpp",
    "cxfa_fmexpression.h",
    "cxfa_fmlexer.cpp",
    "cxfa_fmlexer.h",
    "cxfa_fmparser.cpp",
    "cxfa_fmparser.h",
    "cxfa_fmtojavascriptdepth.cpp",
    "cxfa_fmtojavascriptdepth.h",
  ]
  deps = [ "../../../core/fxcrt" ]
  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",
  ]
  deps = [ ":fm2js" ]
  pdfium_root_dir = "../../../"
}
