# 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("fpdfdoc") {
  sources = [
    "cpdf_aaction.cpp",
    "cpdf_aaction.h",
    "cpdf_action.cpp",
    "cpdf_action.h",
    "cpdf_annot.cpp",
    "cpdf_annot.h",
    "cpdf_annotlist.cpp",
    "cpdf_annotlist.h",
    "cpdf_apsettings.cpp",
    "cpdf_apsettings.h",
    "cpdf_bafontmap.cpp",
    "cpdf_bafontmap.h",
    "cpdf_bookmark.cpp",
    "cpdf_bookmark.h",
    "cpdf_bookmarktree.cpp",
    "cpdf_bookmarktree.h",
    "cpdf_color_utils.cpp",
    "cpdf_color_utils.h",
    "cpdf_defaultappearance.cpp",
    "cpdf_defaultappearance.h",
    "cpdf_dest.cpp",
    "cpdf_dest.h",
    "cpdf_filespec.cpp",
    "cpdf_filespec.h",
    "cpdf_formcontrol.cpp",
    "cpdf_formcontrol.h",
    "cpdf_formfield.cpp",
    "cpdf_formfield.h",
    "cpdf_generateap.cpp",
    "cpdf_generateap.h",
    "cpdf_icon.cpp",
    "cpdf_icon.h",
    "cpdf_iconfit.cpp",
    "cpdf_iconfit.h",
    "cpdf_interactiveform.cpp",
    "cpdf_interactiveform.h",
    "cpdf_link.cpp",
    "cpdf_link.h",
    "cpdf_linklist.cpp",
    "cpdf_linklist.h",
    "cpdf_metadata.cpp",
    "cpdf_metadata.h",
    "cpdf_nametree.cpp",
    "cpdf_nametree.h",
    "cpdf_numbertree.cpp",
    "cpdf_numbertree.h",
    "cpdf_pagelabel.cpp",
    "cpdf_pagelabel.h",
    "cpdf_structelement.cpp",
    "cpdf_structelement.h",
    "cpdf_structtree.cpp",
    "cpdf_structtree.h",
    "cpdf_viewerpreferences.cpp",
    "cpdf_viewerpreferences.h",
    "cpvt_floatrect.h",
    "cpvt_fontmap.cpp",
    "cpvt_fontmap.h",
    "cpvt_line.h",
    "cpvt_lineinfo.h",
    "cpvt_section.cpp",
    "cpvt_section.h",
    "cpvt_variabletext.cpp",
    "cpvt_variabletext.h",
    "cpvt_word.h",
    "cpvt_wordinfo.cpp",
    "cpvt_wordinfo.h",
    "cpvt_wordplace.h",
    "cpvt_wordrange.h",
    "ipvt_fontmap.h",
  ]
  configs += [
    "../../:pdfium_strict_config",
    "../../:pdfium_noshorten_config",
  ]
  deps = [
    "../../constants",
    "../fpdfapi/font",
    "../fpdfapi/page",
    "../fpdfapi/parser",
    "../fpdfapi/render",
    "../fxcrt",
    "../fxge",
  ]
  visibility = [ "../../*" ]
}

pdfium_unittest_source_set("unittests") {
  sources = [
    "cpdf_action_unittest.cpp",
    "cpdf_annot_unittest.cpp",
    "cpdf_annotlist_unittest.cpp",
    "cpdf_bafontmap_unittest.cpp",
    "cpdf_defaultappearance_unittest.cpp",
    "cpdf_dest_unittest.cpp",
    "cpdf_filespec_unittest.cpp",
    "cpdf_formfield_unittest.cpp",
    "cpdf_metadata_unittest.cpp",
    "cpdf_nametree_unittest.cpp",
  ]
  deps = [
    ":fpdfdoc",
    "../../constants",
    "../fpdfapi/font",
    "../fpdfapi/page",
    "../fpdfapi/page:unit_test_support",
    "../fpdfapi/parser",
    "../fpdfapi/parser:unit_test_support",
    "../fpdfapi/render",
  ]
  pdfium_root_dir = "../../"
}
