# 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("font") {
  sources = [
    "cfx_cttgsubtable.cpp",
    "cfx_cttgsubtable.h",
    "cfx_stockfontarray.cpp",
    "cfx_stockfontarray.h",
    "cpdf_cid2unicodemap.cpp",
    "cpdf_cid2unicodemap.h",
    "cpdf_cidfont.cpp",
    "cpdf_cidfont.h",
    "cpdf_cmap.cpp",
    "cpdf_cmap.h",
    "cpdf_cmapmanager.cpp",
    "cpdf_cmapmanager.h",
    "cpdf_cmapparser.cpp",
    "cpdf_cmapparser.h",
    "cpdf_font.cpp",
    "cpdf_font.h",
    "cpdf_fontencoding.cpp",
    "cpdf_fontencoding.h",
    "cpdf_fontglobals.cpp",
    "cpdf_fontglobals.h",
    "cpdf_simplefont.cpp",
    "cpdf_simplefont.h",
    "cpdf_tounicodemap.cpp",
    "cpdf_tounicodemap.h",
    "cpdf_truetypefont.cpp",
    "cpdf_truetypefont.h",
    "cpdf_type1font.cpp",
    "cpdf_type1font.h",
    "cpdf_type3char.cpp",
    "cpdf_type3char.h",
    "cpdf_type3font.cpp",
    "cpdf_type3font.h",
  ]
  configs += [ "../../../:pdfium_core_config" ]
  deps = [
    "../../fxcrt",
    "../../fxge",
    "../cmaps",
    "../parser",
  ]
  allow_circular_includes_from = [
    "../../fxge",
    "../cmaps",
    "../parser",
  ]
  visibility = [ "../../../*" ]
}

pdfium_unittest_source_set("unittests") {
  sources = [
    "cpdf_cidfont_unittest.cpp",
    "cpdf_cmapparser_unittest.cpp",
    "cpdf_fontencoding_unittest.cpp",
    "cpdf_tounicodemap_unittest.cpp",
  ]
  deps = [
    ":font",
    "../../fpdfapi",
    "../parser",
  ]
  pdfium_root_dir = "../../../"
}
