| load( |
| "//bazel:skia_rules.bzl", |
| "generate_cpp_files_for_headers", |
| "skia_cc_library", |
| "skia_filegroup", |
| "split_srcs_and_hdrs", |
| ) |
| |
| package( |
| default_applicable_licenses = ["//:license"], |
| ) |
| |
| licenses(["notice"]) |
| |
| PRIVATE_CODEC_HEADERS = [ |
| "SkCodecPriv.h", |
| "SkColorPalette.h", |
| "SkFrameHolder.h", |
| "SkMaskSwizzler.h", |
| "SkParseEncodedOrigin.h", |
| "SkSampler.h", |
| "SkScalingCodec.h", |
| "SkSwizzler.h", |
| "SkPixmapUtilsPriv.h", |
| "//include/private:decode_srcs", |
| ] |
| |
| # We put any file that is used by more than one codec here to avoid potential issues if clients |
| # depend on multiple codecs. This is not a problem for a statically linked binary, but could maybe |
| # cause issues with producing a shared library (e.g. duplicate symbols showing up). |
| skia_cc_library( |
| name = "any_decoder", |
| srcs = [ |
| "SkCodec.cpp", |
| "SkCodecImageGenerator.cpp", |
| "SkCodecImageGenerator.h", |
| "SkColorPalette.cpp", |
| "SkEncodedInfo.cpp", |
| "SkExif.cpp", |
| "SkGainmapInfo.cpp", |
| "SkImageGenerator_FromEncoded.cpp", |
| "SkMaskSwizzler.cpp", |
| "SkParseEncodedOrigin.cpp", |
| "SkPixmapUtils.cpp", |
| "SkSampler.cpp", |
| "SkSwizzler.cpp", |
| "SkTiffUtility.cpp", |
| "SkTiffUtility.h", |
| "//include/codec:any_codec_hdrs", |
| ], |
| hdrs = PRIVATE_CODEC_HEADERS, |
| features = ["layering_check"], |
| local_defines = ["SK_DISABLE_LEGACY_INIT_DECODERS"], |
| visibility = [ |
| "//experimental/rust_png:__subpackages__", |
| "//src/encode:__pkg__", |
| "//src/ports:__pkg__", |
| ], |
| deps = [ |
| "//modules/skcms", |
| "//src/base", |
| "//src/core", |
| "//src/core:core_priv", |
| ], |
| ) |
| |
| skia_cc_library( |
| name = "codec_support", |
| # This is its own rule (with no srcs) to explicitly expose any_codec_hdrs |
| # as public in case a client does not want to use any of our codecs, but |
| # still register their own and/or make use of SkImage::DeferredFromEncodedData |
| hdrs = [ |
| "//include/codec:any_codec_hdrs", |
| ], |
| visibility = [ |
| "//:__pkg__", |
| ], |
| deps = [ |
| ":any_decoder", |
| ], |
| ) |
| |
| skia_cc_library( |
| name = "codec_support_priv", |
| hdrs = [ |
| "SkCodecImageGenerator.h", |
| "//include/codec:any_codec_hdrs", |
| ] + PRIVATE_CODEC_HEADERS, |
| visibility = [ |
| "//modules/skottie:__pkg__", |
| "//modules/skottie/src:__pkg__", |
| "//modules/skresources:__pkg__", |
| "//src/android:__pkg__", |
| "//tools:__pkg__", |
| ], |
| deps = [ |
| ":any_decoder", |
| ], |
| ) |
| |
| skia_cc_library( |
| name = "android_codec", |
| srcs = [ |
| "SkAndroidCodec.cpp", |
| "SkAndroidCodecAdapter.cpp", |
| "SkAndroidCodecAdapter.h", |
| "SkSampledCodec.cpp", |
| "SkSampledCodec.h", |
| ], |
| hdrs = [ |
| "//include/codec:android_public_hdrs", |
| "//include/codec:any_codec_hdrs", |
| ], |
| features = ["layering_check"], |
| visibility = ["//:__subpackages__"], |
| deps = [ |
| ":any_decoder", |
| "//modules/skcms", |
| "//src/base", |
| "//src/core", |
| "//src/core:core_priv", |
| ], |
| ) |
| |
| skia_cc_library( |
| name = "bmp_decode", |
| srcs = [ |
| "SkBmpBaseCodec.cpp", |
| "SkBmpBaseCodec.h", |
| "SkBmpCodec.cpp", |
| "SkBmpCodec.h", |
| "SkBmpMaskCodec.cpp", |
| "SkBmpMaskCodec.h", |
| "SkBmpRLECodec.cpp", |
| "SkBmpRLECodec.h", |
| "SkBmpStandardCodec.cpp", |
| "SkBmpStandardCodec.h", |
| ], |
| hdrs = [ |
| "//include/codec:any_codec_hdrs", |
| "//include/codec:bmp_public_hdrs", |
| ], |
| defines = ["SK_CODEC_DECODES_BMP"], |
| features = ["layering_check"], |
| visibility = ["//:__subpackages__"], |
| deps = [ |
| ":any_decoder", |
| "//modules/skcms", |
| "//src/base", |
| "//src/core", |
| "//src/core:core_priv", |
| ], |
| ) |
| |
| skia_cc_library( |
| name = "gif_decode", |
| srcs = [ |
| "SkWuffsCodec.cpp", |
| ], |
| hdrs = [ |
| "//include/codec:any_codec_hdrs", |
| "//include/codec:gif_public_hdrs", |
| ], |
| defines = ["SK_CODEC_DECODES_GIF"], |
| features = ["layering_check"], |
| visibility = ["//:__subpackages__"], |
| deps = [ |
| ":any_decoder", |
| "//modules/skcms", |
| "//src/base", |
| "//src/core", |
| "//src/core:core_priv", |
| "@wuffs", |
| ], |
| ) |
| |
| skia_cc_library( |
| name = "ico_decode", |
| srcs = [ |
| "SkBmpCodec.h", |
| "SkIcoCodec.cpp", |
| "SkIcoCodec.h", |
| ], |
| hdrs = [ |
| "//include/codec:any_codec_hdrs", |
| "//include/codec:ico_public_hdrs", |
| ], |
| defines = ["SK_CODEC_DECODES_ICO"], |
| features = ["layering_check"], |
| visibility = ["//:__subpackages__"], |
| deps = [ |
| "//src/base", |
| "//src/core", |
| "//src/core:core_priv", |
| "//modules/skcms", |
| ":any_decoder", |
| # icos can be either PNG or BMP |
| ":bmp_decode", |
| ":png_decode", |
| ], |
| ) |
| |
| skia_filegroup( |
| name = "common_jpeg_srcs", |
| srcs = [ |
| "SkJpegConstants.h", |
| "SkJpegPriv.h", |
| ], |
| visibility = ["//src/encode:__pkg__"], |
| ) |
| |
| skia_cc_library( |
| name = "jpeg_decode", |
| srcs = [ |
| "SkJpegCodec.cpp", |
| "SkJpegCodec.h", |
| "SkJpegDecoderMgr.cpp", |
| "SkJpegDecoderMgr.h", |
| "SkJpegMetadataDecoderImpl.cpp", |
| "SkJpegMetadataDecoderImpl.h", |
| "SkJpegSourceMgr.cpp", |
| "SkJpegSourceMgr.h", |
| "SkJpegUtility.cpp", |
| "SkJpegUtility.h", |
| ":common_jpeg_srcs", |
| "//include/private:jpeg_decode_srcs", |
| ], |
| hdrs = [ |
| "//include/codec:any_codec_hdrs", |
| "//include/codec:jpeg_public_hdrs", |
| ], |
| defines = ["SK_CODEC_DECODES_JPEG"], |
| features = ["layering_check"], |
| visibility = ["//:__subpackages__"], |
| deps = [ |
| ":any_decoder", |
| "//modules/skcms", |
| "//src/base", |
| "//src/core", |
| "//src/core:core_priv", |
| "@libjpeg_turbo", |
| ], |
| ) |
| |
| skia_cc_library( |
| name = "jpegxl_decode", |
| srcs = [ |
| "SkJpegxlCodec.cpp", |
| "SkJpegxlCodec.h", |
| ":common_jpeg_srcs", |
| ], |
| hdrs = [ |
| "//include/codec:any_codec_hdrs", |
| "//include/codec:jpegxl_public_hdrs", |
| ], |
| defines = ["SK_CODEC_DECODES_JPEGXL"], |
| features = ["layering_check"], |
| visibility = ["//:__subpackages__"], |
| deps = [ |
| ":any_decoder", |
| "//modules/skcms", |
| "//src/base", |
| "//src/core", |
| "//src/core:core_priv", |
| "@libjxl", |
| ], |
| ) |
| |
| skia_filegroup( |
| name = "png_codec_base_srcs", |
| srcs = ["SkPngCodecBase.cpp"], |
| ) |
| |
| skia_filegroup( |
| name = "png_codec_base_hdrs", |
| srcs = ["SkPngCodecBase.h"], |
| ) |
| |
| skia_cc_library( |
| name = "png_codec_base", |
| srcs = [":png_codec_base_srcs"], |
| hdrs = [ |
| ":png_codec_base_hdrs", |
| "//include/codec:any_codec_hdrs", |
| ], |
| features = ["layering_check"], |
| visibility = ["//experimental/rust_png/decoder:__pkg__"], |
| deps = [ |
| ":any_decoder", |
| "//modules/skcms", |
| "//src/base", |
| "//src/core", |
| "//src/core:core_priv", |
| ], |
| ) |
| |
| skia_filegroup( |
| name = "buffet_png_srcs", |
| srcs = [ |
| "SkPngCodec.cpp", |
| "SkPngCodec.h", |
| "SkPngCompositeChunkReader.cpp", |
| "SkPngCompositeChunkReader.h", |
| ], |
| ) |
| |
| skia_filegroup( |
| name = "common_png_srcs", |
| srcs = [ |
| "SkPngPriv.h", |
| ], |
| visibility = ["//src/encode:__pkg__"], |
| ) |
| |
| skia_cc_library( |
| name = "png_decode", |
| srcs = [ |
| ":buffet_png_srcs", |
| ":common_png_srcs", |
| ], |
| hdrs = [ |
| "//include/codec:any_codec_hdrs", |
| "//include/codec:png_public_hdrs", |
| ], |
| defines = ["SK_CODEC_DECODES_PNG"], |
| features = ["layering_check"], |
| visibility = ["//:__subpackages__"], |
| deps = [ |
| ":any_decoder", |
| ":png_codec_base", |
| "//modules/skcms", |
| "//src/base", |
| "//src/core", |
| "//src/core:core_priv", |
| "@libpng", |
| ], |
| ) |
| |
| skia_cc_library( |
| name = "wbmp_decode", |
| srcs = [ |
| "SkBmpBaseCodec.h", |
| "SkBmpCodec.h", |
| "SkBmpMaskCodec.h", |
| "SkBmpRLECodec.h", |
| "SkBmpStandardCodec.h", |
| "SkWbmpCodec.cpp", |
| "SkWbmpCodec.h", |
| "//include/codec:bmp_public_hdrs", |
| ], |
| hdrs = [ |
| "//include/codec:any_codec_hdrs", |
| "//include/codec:wbmp_public_hdrs", |
| ], |
| defines = ["SK_CODEC_DECODES_WBMP"], |
| features = ["layering_check"], |
| visibility = ["//:__subpackages__"], |
| deps = [ |
| ":any_decoder", |
| ":bmp_decode", # Avoid ODR violations by not duplicating .cpp files |
| "//modules/skcms", |
| "//src/base", |
| "//src/core", |
| "//src/core:core_priv", |
| ], |
| ) |
| |
| skia_cc_library( |
| name = "webp_decode", |
| srcs = [ |
| "SkWebpCodec.cpp", |
| "SkWebpCodec.h", |
| ], |
| hdrs = [ |
| "//include/codec:any_codec_hdrs", |
| "//include/codec:webp_public_hdrs", |
| ], |
| defines = ["SK_CODEC_DECODES_WEBP"], |
| features = ["layering_check"], |
| visibility = ["//:__subpackages__"], |
| deps = [ |
| ":any_decoder", |
| "//modules/skcms", |
| "//src/base", |
| "//src/core", |
| "//src/core:core_priv", |
| "@libwebp", |
| ], |
| ) |
| |
| generate_cpp_files_for_headers( |
| name = "headers_to_compile", |
| headers = [ |
| "SkPixmapUtilsPriv.h", |
| "SkScalingCodec.h", |
| ], |
| ) |
| |
| # The following are not yet incorporated into the Bazel build |
| skia_filegroup( |
| name = "xmp_srcs", |
| srcs = [ |
| "SkXmp.cpp", |
| ], |
| ) |
| |
| split_srcs_and_hdrs( |
| name = "jpeg_xmp", |
| files = [ |
| "SkJpegXmp.cpp", |
| "SkJpegXmp.h", |
| ], |
| ) |