1load( 2 "//bazel:skia_rules.bzl", 3 "generate_cpp_files_for_headers", 4 "skia_cc_library", 5 "skia_filegroup", 6 "split_srcs_and_hdrs", 7) 8 9package( 10 default_applicable_licenses = ["//:license"], 11) 12 13licenses(["notice"]) 14 15PRIVATE_CODEC_HEADERS = [ 16 "SkCodecPriv.h", 17 "SkColorPalette.h", 18 "SkFrameHolder.h", 19 "SkMaskSwizzler.h", 20 "SkParseEncodedOrigin.h", 21 "SkSampler.h", 22 "SkScalingCodec.h", 23 "SkSwizzler.h", 24 "SkPixmapUtilsPriv.h", 25 "//include/private:decode_srcs", 26] 27 28# We put any file that is used by more than one codec here to avoid potential issues if clients 29# depend on multiple codecs. This is not a problem for a statically linked binary, but could maybe 30# cause issues with producing a shared library (e.g. duplicate symbols showing up). 31skia_cc_library( 32 name = "any_decoder", 33 srcs = [ 34 "SkCodec.cpp", 35 "SkCodecImageGenerator.cpp", 36 "SkCodecImageGenerator.h", 37 "SkColorPalette.cpp", 38 "SkEncodedInfo.cpp", 39 "SkExif.cpp", 40 "SkGainmapInfo.cpp", 41 "SkImageGenerator_FromEncoded.cpp", 42 "SkMaskSwizzler.cpp", 43 "SkParseEncodedOrigin.cpp", 44 "SkPixmapUtils.cpp", 45 "SkSampler.cpp", 46 "SkSwizzler.cpp", 47 "SkTiffUtility.cpp", 48 "SkTiffUtility.h", 49 "//include/codec:any_codec_hdrs", 50 ], 51 hdrs = PRIVATE_CODEC_HEADERS, 52 features = ["layering_check"], 53 local_defines = ["SK_DISABLE_LEGACY_INIT_DECODERS"], 54 visibility = [ 55 "//experimental/rust_png:__subpackages__", 56 "//src/encode:__pkg__", 57 "//src/pdf:__pkg__", 58 "//src/ports:__pkg__", 59 ], 60 deps = [ 61 "//modules/skcms", 62 "//src/base", 63 "//src/core", 64 "//src/core:core_priv", 65 ], 66) 67 68skia_cc_library( 69 name = "codec_support", 70 # This is its own rule (with no srcs) to explicitly expose any_codec_hdrs 71 # as public in case a client does not want to use any of our codecs, but 72 # still register their own and/or make use of SkImage::DeferredFromEncodedData 73 hdrs = [ 74 "//include/codec:any_codec_hdrs", 75 ], 76 visibility = [ 77 "//:__pkg__", 78 ], 79 deps = [ 80 ":any_decoder", 81 ], 82) 83 84skia_cc_library( 85 name = "codec_support_priv", 86 hdrs = [ 87 "SkCodecImageGenerator.h", 88 "//include/codec:any_codec_hdrs", 89 ] + PRIVATE_CODEC_HEADERS, 90 visibility = [ 91 "//modules/skottie:__pkg__", 92 "//modules/skottie/src:__pkg__", 93 "//modules/skresources:__pkg__", 94 "//src/android:__pkg__", 95 "//src/pdf:__pkg__", 96 "//tools:__pkg__", 97 ], 98 deps = [ 99 ":any_decoder", 100 ], 101) 102 103skia_cc_library( 104 name = "android_codec", 105 srcs = [ 106 "SkAndroidCodec.cpp", 107 "SkAndroidCodecAdapter.cpp", 108 "SkAndroidCodecAdapter.h", 109 "SkSampledCodec.cpp", 110 "SkSampledCodec.h", 111 ], 112 hdrs = [ 113 "//include/codec:android_public_hdrs", 114 "//include/codec:any_codec_hdrs", 115 ], 116 features = ["layering_check"], 117 visibility = ["//:__subpackages__"], 118 deps = [ 119 ":any_decoder", 120 "//modules/skcms", 121 "//src/base", 122 "//src/core", 123 "//src/core:core_priv", 124 ], 125) 126 127skia_cc_library( 128 name = "bmp_decode", 129 srcs = [ 130 "SkBmpBaseCodec.cpp", 131 "SkBmpBaseCodec.h", 132 "SkBmpCodec.cpp", 133 "SkBmpCodec.h", 134 "SkBmpMaskCodec.cpp", 135 "SkBmpMaskCodec.h", 136 "SkBmpRLECodec.cpp", 137 "SkBmpRLECodec.h", 138 "SkBmpStandardCodec.cpp", 139 "SkBmpStandardCodec.h", 140 ], 141 hdrs = [ 142 "//include/codec:any_codec_hdrs", 143 "//include/codec:bmp_public_hdrs", 144 ], 145 defines = ["SK_CODEC_DECODES_BMP"], 146 features = ["layering_check"], 147 visibility = ["//:__subpackages__"], 148 deps = [ 149 ":any_decoder", 150 "//modules/skcms", 151 "//src/base", 152 "//src/core", 153 "//src/core:core_priv", 154 ], 155) 156 157skia_cc_library( 158 name = "gif_decode", 159 srcs = [ 160 "SkWuffsCodec.cpp", 161 ], 162 hdrs = [ 163 "//include/codec:any_codec_hdrs", 164 "//include/codec:gif_public_hdrs", 165 ], 166 defines = ["SK_CODEC_DECODES_GIF"], 167 features = ["layering_check"], 168 visibility = ["//:__subpackages__"], 169 deps = [ 170 ":any_decoder", 171 "//modules/skcms", 172 "//src/base", 173 "//src/core", 174 "//src/core:core_priv", 175 "@wuffs", 176 ], 177) 178 179skia_cc_library( 180 name = "ico_decode", 181 srcs = [ 182 "SkBmpCodec.h", 183 "SkIcoCodec.cpp", 184 "SkIcoCodec.h", 185 ], 186 hdrs = [ 187 "//include/codec:any_codec_hdrs", 188 "//include/codec:ico_public_hdrs", 189 ], 190 defines = ["SK_CODEC_DECODES_ICO"], 191 features = ["layering_check"], 192 visibility = ["//:__subpackages__"], 193 deps = [ 194 "//src/base", 195 "//src/core", 196 "//src/core:core_priv", 197 "//modules/skcms", 198 ":any_decoder", 199 # icos can be either PNG or BMP 200 ":bmp_decode", 201 ":png_decode", 202 ], 203) 204 205skia_filegroup( 206 name = "common_jpeg_srcs", 207 srcs = [ 208 "SkJpegConstants.h", 209 "SkJpegPriv.h", 210 ], 211 visibility = ["//src/encode:__pkg__"], 212) 213 214skia_cc_library( 215 name = "jpeg_decode", 216 srcs = [ 217 "SkJpegCodec.cpp", 218 "SkJpegCodec.h", 219 "SkJpegDecoderMgr.cpp", 220 "SkJpegDecoderMgr.h", 221 "SkJpegMetadataDecoderImpl.cpp", 222 "SkJpegMetadataDecoderImpl.h", 223 "SkJpegSourceMgr.cpp", 224 "SkJpegSourceMgr.h", 225 "SkJpegUtility.cpp", 226 "SkJpegUtility.h", 227 ":common_jpeg_srcs", 228 "//include/private:jpeg_decode_srcs", 229 ], 230 hdrs = [ 231 "//include/codec:any_codec_hdrs", 232 "//include/codec:jpeg_public_hdrs", 233 ], 234 defines = ["SK_CODEC_DECODES_JPEG"], 235 features = ["layering_check"], 236 visibility = ["//:__subpackages__"], 237 deps = [ 238 ":any_decoder", 239 "//modules/skcms", 240 "//src/base", 241 "//src/core", 242 "//src/core:core_priv", 243 "@libjpeg_turbo", 244 ], 245) 246 247skia_cc_library( 248 name = "jpegxl_decode", 249 srcs = [ 250 "SkJpegxlCodec.cpp", 251 "SkJpegxlCodec.h", 252 ":common_jpeg_srcs", 253 ], 254 hdrs = [ 255 "//include/codec:any_codec_hdrs", 256 "//include/codec:jpegxl_public_hdrs", 257 ], 258 defines = ["SK_CODEC_DECODES_JPEGXL"], 259 features = ["layering_check"], 260 visibility = ["//:__subpackages__"], 261 deps = [ 262 ":any_decoder", 263 "//modules/skcms", 264 "//src/base", 265 "//src/core", 266 "//src/core:core_priv", 267 "@libjxl", 268 ], 269) 270 271skia_filegroup( 272 name = "png_codec_base_srcs", 273 srcs = ["SkPngCodecBase.cpp"], 274) 275 276skia_filegroup( 277 name = "png_codec_base_hdrs", 278 srcs = ["SkPngCodecBase.h"], 279) 280 281skia_cc_library( 282 name = "png_codec_base", 283 srcs = [":png_codec_base_srcs"], 284 hdrs = [ 285 ":png_codec_base_hdrs", 286 "//include/codec:any_codec_hdrs", 287 ], 288 features = ["layering_check"], 289 visibility = ["//experimental/rust_png/decoder:__pkg__"], 290 deps = [ 291 ":any_decoder", 292 "//modules/skcms", 293 "//src/base", 294 "//src/core", 295 "//src/core:core_priv", 296 ], 297) 298 299skia_filegroup( 300 name = "buffet_libpng_srcs", 301 srcs = [ 302 "SkPngCodec.cpp", 303 "SkPngCodec.h", 304 "SkPngCompositeChunkReader.cpp", 305 "SkPngCompositeChunkReader.h", 306 ], 307) 308 309skia_filegroup( 310 name = "common_libpng_srcs", 311 srcs = [ 312 "SkPngPriv.h", 313 ], 314 visibility = ["//src/encode:__pkg__"], 315) 316 317skia_cc_library( 318 name = "png_decode", 319 srcs = [ 320 ":buffet_libpng_srcs", 321 ":common_libpng_srcs", 322 ], 323 hdrs = [ 324 "//include/codec:any_codec_hdrs", 325 "//include/codec:png_public_hdrs", 326 ], 327 defines = [ 328 "SK_CODEC_DECODES_PNG", 329 "SK_CODEC_DECODES_PNG_WITH_LIBPNG", 330 ], 331 features = ["layering_check"], 332 visibility = ["//:__subpackages__"], 333 deps = [ 334 ":any_decoder", 335 ":png_codec_base", 336 "//modules/skcms", 337 "//src/base", 338 "//src/core", 339 "//src/core:core_priv", 340 "@libpng", 341 ], 342) 343 344skia_cc_library( 345 name = "wbmp_decode", 346 srcs = [ 347 "SkBmpBaseCodec.h", 348 "SkBmpCodec.h", 349 "SkBmpMaskCodec.h", 350 "SkBmpRLECodec.h", 351 "SkBmpStandardCodec.h", 352 "SkWbmpCodec.cpp", 353 "SkWbmpCodec.h", 354 "//include/codec:bmp_public_hdrs", 355 ], 356 hdrs = [ 357 "//include/codec:any_codec_hdrs", 358 "//include/codec:wbmp_public_hdrs", 359 ], 360 defines = ["SK_CODEC_DECODES_WBMP"], 361 features = ["layering_check"], 362 visibility = ["//:__subpackages__"], 363 deps = [ 364 ":any_decoder", 365 ":bmp_decode", # Avoid ODR violations by not duplicating .cpp files 366 "//modules/skcms", 367 "//src/base", 368 "//src/core", 369 "//src/core:core_priv", 370 ], 371) 372 373skia_cc_library( 374 name = "webp_decode", 375 srcs = [ 376 "SkWebpCodec.cpp", 377 "SkWebpCodec.h", 378 ], 379 hdrs = [ 380 "//include/codec:any_codec_hdrs", 381 "//include/codec:webp_public_hdrs", 382 ], 383 defines = ["SK_CODEC_DECODES_WEBP"], 384 features = ["layering_check"], 385 visibility = ["//:__subpackages__"], 386 deps = [ 387 ":any_decoder", 388 "//modules/skcms", 389 "//src/base", 390 "//src/core", 391 "//src/core:core_priv", 392 "@libwebp", 393 ], 394) 395 396generate_cpp_files_for_headers( 397 name = "headers_to_compile", 398 headers = [ 399 "SkPixmapUtilsPriv.h", 400 "SkScalingCodec.h", 401 ], 402) 403 404# The following are not yet incorporated into the Bazel build 405skia_filegroup( 406 name = "xmp_srcs", 407 srcs = [ 408 "SkXmp.cpp", 409 ], 410) 411 412split_srcs_and_hdrs( 413 name = "jpeg_xmp", 414 files = [ 415 "SkJpegXmp.cpp", 416 "SkJpegXmp.h", 417 ], 418) 419