# 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_fmsimpleexpression.cpp",
    "cxfa_fmsimpleexpression.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",
    "cxfa_fmsimpleexpression_unittest.cpp",
  ]
  deps = [ ":fm2js" ]
  pdfium_root_dir = "../../../"
}
