blob: 9c4c9eadf5aa823ac28d27afb4958ac87ab65fb2 [file] [log] [blame]
load("//bazel:flags.bzl", "string_flag_with_values")
load("//bazel:skia_rules.bzl", "exports_files_legacy", "generate_cpp_files_for_headers", "select_multi", "skia_cc_deps", "skia_cc_library", "skia_filegroup")
package(
default_applicable_licenses = ["//:license"],
)
licenses(["notice"])
exports_files_legacy()
string_flag_with_values(
name = "include_encoder",
multiple = True,
values = [
"jpeg_encode_codec",
"png_encode_codec",
"webp_encode_codec",
],
)
# In separate skia_filegroups to export these as gni file lists
skia_filegroup(
name = "jpeg_encode_srcs",
srcs = [
"SkJPEGWriteUtility.cpp",
"SkJpegEncoderImpl.cpp",
],
)
skia_filegroup(
name = "jpeg_encode_hdrs",
srcs = [
"SkJPEGWriteUtility.h",
"SkJpegEncoderImpl.h",
],
)
skia_filegroup(
name = "no_jpeg_encode_srcs",
srcs = ["SkJpegEncoder_none.cpp"],
)
skia_filegroup(
name = "png_encode_hdrs",
srcs = ["SkPngEncoderImpl.h"],
)
skia_filegroup(
name = "png_encode_srcs",
srcs = ["SkPngEncoderImpl.cpp"],
)
skia_filegroup(
name = "no_png_encode_srcs",
srcs = ["SkPngEncoder_none.cpp"],
)
skia_filegroup(
name = "webp_encode_srcs",
srcs = ["SkWebpEncoderImpl.cpp"],
)
skia_filegroup(
name = "no_webp_encode_srcs",
srcs = ["SkWebpEncoder_none.cpp"],
)
skia_filegroup(
name = "srcs",
srcs = [
"SkEncoder.cpp",
"SkICC.cpp",
] + select_multi(
default_cases = {
":jpeg_encode_codec": [":no_jpeg_encode_srcs"],
":png_encode_codec": [":no_png_encode_srcs"],
":webp_encode_codec": [":no_webp_encode_srcs"],
},
values_map = {
":jpeg_encode_codec": [":jpeg_encode_srcs"],
":png_encode_codec": [":png_encode_srcs"],
":webp_encode_codec": [":webp_encode_srcs"],
},
),
visibility = ["//src:__pkg__"],
)
skia_filegroup(
name = "private_hdrs",
srcs = [
"SkICCPriv.h",
"SkImageEncoderFns.h",
"SkImageEncoderPriv.h",
] + select_multi({
":png_encode_codec": [":png_encode_hdrs"],
":jpeg_encode_codec": [
":jpeg_encode_hdrs",
"//src/codec:shared_jpeg_hdrs",
],
}),
visibility = ["//src:__pkg__"],
)
skia_cc_deps(
name = "deps",
visibility = ["//src:__pkg__"],
deps = select_multi(
{
":jpeg_encode_codec": ["@libjpeg_turbo"],
":png_encode_codec": ["@libpng"],
":webp_encode_codec": ["@libwebp"],
},
),
)
skia_cc_library(
name = "icc_support",
srcs = [
"SkICC.cpp",
],
hdrs = [
"SkICCPriv.h",
"//include/encode:icc_hdrs",
],
features = ["layering_check"],
deps = [
"//:core",
"//modules/skcms",
"//src/base",
"//src/core:core_priv",
],
)
skia_cc_library(
name = "encoder_common",
srcs = [
"SkEncoder.cpp",
"//include/encode:encode_hdrs",
],
hdrs = [
"SkImageEncoderFns.h",
"SkImageEncoderPriv.h",
],
features = ["layering_check"],
deps = [
":icc_support",
"//:core",
"//modules/skcms",
"//src/base",
"//src/core:core_priv",
],
)
skia_cc_library(
name = "icc_encode",
hdrs = [
"//include/encode:icc_hdrs",
],
visibility = ["//:__subpackages__"],
deps = [
":icc_support",
],
)
skia_cc_library(
name = "png_encode",
srcs = [
":png_encode_hdrs",
":png_encode_srcs",
"//src/codec:common_png_srcs",
],
hdrs = [
"//include/encode:encode_hdrs",
"//include/encode:png_hdrs",
],
features = ["layering_check"],
visibility = ["//:__pkg__"],
deps = [
":encoder_common",
"//:core",
"//modules/skcms",
"//src/base",
"//src/core:core_priv",
"@libpng",
],
)
skia_cc_library(
name = "jpeg_encode",
srcs = [
":jpeg_encode_hdrs",
":jpeg_encode_srcs",
"//src/codec:common_jpeg_srcs",
],
hdrs = [
"//include/encode:encode_hdrs",
"//include/encode:jpeg_hdrs",
],
features = ["layering_check"],
visibility = ["//:__pkg__"],
deps = [
":encoder_common",
"//:core",
"//src/base",
"//src/core:core_priv",
"@libjpeg_turbo",
],
)
skia_cc_library(
name = "webp_encode",
srcs = [
":webp_encode_srcs",
],
hdrs = [
"//include/encode:encode_hdrs",
"//include/encode:webp_hdrs",
],
features = ["layering_check"],
visibility = ["//:__pkg__"],
deps = [
":encoder_common",
"//:core",
"//src/base",
"//src/core:core_priv",
"@libwebp",
],
)
generate_cpp_files_for_headers(
name = "headers_to_compile",
headers = [
"SkICCPriv.h",
"SkImageEncoderFns.h",
"SkImageEncoderPriv.h",
],
)