# Copyright 2018 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")

source_set("fpdftext") {
  sources = [
    "cpdf_linkextract.cpp",
    "cpdf_linkextract.h",
    "cpdf_textpage.cpp",
    "cpdf_textpage.h",
    "cpdf_textpagefind.cpp",
    "cpdf_textpagefind.h",
    "unicodenormalizationdata.cpp",
    "unicodenormalizationdata.h",
  ]
  configs += [ "../../:pdfium_strict_config" ]
  deps = [
    "../fpdfapi/font",
    "../fpdfapi/page",
    "../fpdfapi/parser",
    "../fxcrt",
  ]
  visibility = [ "../../*" ]
}

pdfium_unittest_source_set("unittests") {
  sources = [ "cpdf_linkextract_unittest.cpp" ]
  deps = [ ":fpdftext" ]
  pdfium_root_dir = "../../"
}
