# Copyright 2019 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("layout") {
  sources = [
    "cxfa_contentlayoutitem.cpp",
    "cxfa_contentlayoutitem.h",
    "cxfa_contentlayoutprocessor.cpp",
    "cxfa_contentlayoutprocessor.h",
    "cxfa_layoutitem.cpp",
    "cxfa_layoutitem.h",
    "cxfa_layoutprocessor.cpp",
    "cxfa_layoutprocessor.h",
    "cxfa_traversestrategy_layoutitem.h",
    "cxfa_viewlayoutitem.cpp",
    "cxfa_viewlayoutitem.h",
    "cxfa_viewlayoutprocessor.cpp",
    "cxfa_viewlayoutprocessor.h",
  ]
  allow_circular_includes_from = [ "../../../fxjs" ]
  configs += [
    "../../../:pdfium_strict_config",
    "../../../:pdfium_noshorten_config",
    "../../:xfa_warnings",
  ]
  deps = [
    "../../../core/fxcrt",
    "../../../fxjs",
    "../../../fxjs:gc",
    "../parser",
  ]
  visibility = [ "../../../*" ]
}

pdfium_embeddertest_source_set("embeddertests") {
  sources = [ "cxfa_layoutitem_embeddertest.cpp" ]
  deps = [ "../../../fxjs:gc" ]
  pdfium_root_dir = "../../../"
}
