# 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("layout") {
  sources = [
    "cfx_break.cpp",
    "cfx_break.h",
    "cfx_breakline.cpp",
    "cfx_breakline.h",
    "cfx_breakpiece.cpp",
    "cfx_breakpiece.h",
    "cfx_char.cpp",
    "cfx_char.h",
    "cfx_linkuserdata.cpp",
    "cfx_linkuserdata.h",
    "cfx_rtfbreak.cpp",
    "cfx_rtfbreak.h",
    "cfx_textpiece.cpp",
    "cfx_textpiece.h",
    "cfx_textuserdata.cpp",
    "cfx_textuserdata.h",
    "cfx_txtbreak.cpp",
    "cfx_txtbreak.h",
    "fx_arabic.cpp",
    "fx_arabic.h",
    "fx_linebreak.cpp",
    "fx_linebreak.h",
  ]
  deps = [
    "../:fgas",
    "../../../core/fxcrt",
    "../../../core/fxcrt/css",
    "../../../core/fxge",
  ]
  configs += [
    "../../../:pdfium_core_config",
    "../../:xfa_warnings",
  ]
  visibility = [ "../../../*" ]
}

pdfium_unittest_source_set("unittests") {
  sources = [
    "cfx_rtfbreak_unittest.cpp",
    "cfx_txtbreak_unittest.cpp",
  ]
  deps = [
    ":layout",
    "../:fgas",
    "../../../core/fxge",
    "../../../testing:unit_test_support",
  ]
  pdfium_root_dir = "../../../"
}
