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

jumbo_source_set("fpdfdoc") {
  sources = [
    "cba_fontmap.cpp",
    "cba_fontmap.h",
    "cline.cpp",
    "cline.h",
    "cpdf_aaction.cpp",
    "cpdf_aaction.h",
    "cpdf_action.cpp",
    "cpdf_action.h",
    "cpdf_actionfields.cpp",
    "cpdf_actionfields.h",
    "cpdf_annot.cpp",
    "cpdf_annot.h",
    "cpdf_annotlist.cpp",
    "cpdf_annotlist.h",
    "cpdf_apsettings.cpp",
    "cpdf_apsettings.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_docjsactions.cpp",
    "cpdf_docjsactions.h",
    "cpdf_filespec.cpp",
    "cpdf_filespec.h",
    "cpdf_formcontrol.cpp",
    "cpdf_formcontrol.h",
    "cpdf_formfield.cpp",
    "cpdf_formfield.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_variabletext.cpp",
    "cpdf_variabletext.h",
    "cpdf_viewerpreferences.cpp",
    "cpdf_viewerpreferences.h",
    "cpvt_floatrect.h",
    "cpvt_fontmap.cpp",
    "cpvt_fontmap.h",
    "cpvt_generateap.cpp",
    "cpvt_generateap.h",
    "cpvt_line.h",
    "cpvt_lineinfo.h",
    "cpvt_word.h",
    "cpvt_wordinfo.cpp",
    "cpvt_wordinfo.h",
    "cpvt_wordplace.h",
    "cpvt_wordrange.h",
    "csection.cpp",
    "csection.h",
    "ctypeset.cpp",
    "ctypeset.h",
    "ipdf_formnotify.h",
    "ipvt_fontmap.h",
  ]
  configs += [ "../../:pdfium_core_config" ]
  deps = [
    "../../constants",
    "../fpdfapi/font",
    "../fpdfapi/page",
    "../fpdfapi/parser",
    "../fpdfapi/render",
    "../fxcrt",
    "../fxge",
  ]
  visibility = [ "../../*" ]
}

pdfium_unittest_source_set("unittests") {
  sources = [
    "cpdf_annot_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",
    "../fpdfapi/parser",
  ]
  pdfium_root_dir = "../../"
}
