• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("//bazel:flags.bzl", "bool_flag", "selects")
2load("//bazel:skia_rules.bzl", "exports_files_legacy", "generate_cpp_files_for_headers", "skia_cc_deps", "skia_cc_library", "skia_filegroup", "split_srcs_and_hdrs")
3
4package(
5    default_applicable_licenses = ["//:license"],
6)
7
8licenses(["notice"])
9
10exports_files_legacy()
11
12PDF_FILES = [
13    "SkBitmapKey.h",
14    "SkClusterator.cpp",
15    "SkClusterator.h",
16    "SkDeflate.cpp",
17    "SkDeflate.h",
18    "SkKeyedImage.cpp",
19    "SkKeyedImage.h",
20    "SkPDFBitmap.cpp",
21    "SkPDFBitmap.h",
22    "SkPDFDevice.cpp",
23    "SkPDFDevice.h",
24    "SkPDFDocument.cpp",
25    "SkPDFDocumentPriv.h",
26    "SkPDFFont.cpp",
27    "SkPDFFont.h",
28    "SkPDFFormXObject.cpp",
29    "SkPDFFormXObject.h",
30    "SkPDFGlyphUse.h",
31    "SkPDFGradientShader.cpp",
32    "SkPDFGradientShader.h",
33    "SkPDFGraphicStackState.cpp",
34    "SkPDFGraphicStackState.h",
35    "SkPDFGraphicState.cpp",
36    "SkPDFGraphicState.h",
37    "SkPDFMakeCIDGlyphWidthsArray.cpp",
38    "SkPDFMakeCIDGlyphWidthsArray.h",
39    "SkPDFMakeToUnicodeCmap.cpp",
40    "SkPDFMakeToUnicodeCmap.h",
41    "SkPDFMetadata.cpp",
42    "SkPDFMetadata.h",
43    "SkPDFResourceDict.cpp",
44    "SkPDFResourceDict.h",
45    "SkPDFShader.cpp",
46    "SkPDFShader.h",
47    "SkPDFSubsetFont.cpp",
48    "SkPDFSubsetFont.h",
49    "SkPDFTag.cpp",
50    "SkPDFTag.h",
51    "SkPDFType1Font.cpp",
52    "SkPDFType1Font.h",
53    "SkPDFTypes.cpp",
54    "SkPDFTypes.h",
55    "SkPDFUnion.h",
56    "SkPDFUtils.cpp",
57    "SkPDFUtils.h",
58    "SkUUID.h",
59]
60
61split_srcs_and_hdrs(
62    name = "_pdf",
63    files = PDF_FILES,
64)
65
66#TODO: remove after Chromium no longer references this.
67skia_filegroup(
68    name = "jpeg_info_libjpeg",
69    srcs = ["SkJpegInfo_libjpegturbo.cpp"],
70)
71
72#TODO: remove after Chromium no longer references this.
73skia_filegroup(
74    name = "jpeg_info_none",
75    srcs = ["SkJpegInfo_none.cpp"],
76)
77
78skia_filegroup(
79    name = "srcs",
80    srcs = [
81        ":_pdf_srcs",
82    ],
83    visibility = ["//src:__pkg__"],
84)
85
86skia_filegroup(
87    name = "private_hdrs",
88    srcs = [
89        ":_pdf_hdrs",
90    ],
91    visibility = ["//src:__pkg__"],
92)
93
94bool_flag(
95    name = "enable_pdf_backend",
96    default = False,
97)
98
99bool_flag(
100    name = "enable_pdf_subset_harfbuzz",
101    default = True,  # This defaults it to be on if icu and harfbuzz are on
102)
103
104selects.config_setting_group(
105    name = "uses_harfbuzz",
106    match_all = [
107        "//bazel/common_config_settings:use_icu_true",
108        "//bazel/common_config_settings:use_harfbuzz_true",
109        ":enable_pdf_subset_harfbuzz_true",
110    ],
111)
112
113# TODO(kjlubick) delete after pdf backend is modularized
114skia_cc_library(
115    name = "legacy_harfbuzz",
116    deps = ["@harfbuzz"],
117)
118
119skia_cc_deps(
120    name = "deps",
121    visibility = ["//src:__pkg__"],
122    deps = [
123        "@zlib_skia//:zlib",
124        #"//src/codec:jpeg_decode",
125        #"//src/encode:jpeg_encode",
126    ] + select({
127        ":uses_harfbuzz": [":legacy_harfbuzz"],
128        "//conditions:default": [],
129    }),
130)
131
132generate_cpp_files_for_headers(
133    name = "headers_to_compile",
134    headers = [
135        "SkBitmapKey.h",
136        "SkPDFDocumentPriv.h",
137        "SkPDFUnion.h",
138        "SkUUID.h",
139    ],
140)
141
142skia_cc_library(
143    name = "pdf",
144    srcs = [
145        ":_pdf_hdrs",
146        ":_pdf_srcs",
147    ],
148    hdrs = [
149        "//include/docs:pdf_hdrs",
150    ],
151    local_defines = ["SK_PDF_USE_HARFBUZZ_SUBSET"],
152    visibility = ["//:__pkg__"],
153    deps = [
154        "//:core",
155        "//:jpeg_decode_codec",
156        "//:jpeg_encode_codec",
157        "//:pathops",
158        "//src/core:core_priv",
159        "//src/utils:clip_stack_utils",
160        "//src/utils:float_to_decimal",
161        "@zlib_skia//:zlib",
162    ] +
163    # We have this harfbuzz dependency all by itself because we need to turn this into a
164    # select statement when rolling into G3.
165    [
166        "@harfbuzz",
167    ],
168)
169