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