1load("//bazel:flags.bzl", "string_flag_with_values") 2load("//bazel:skia_rules.bzl", "exports_files_legacy", "generate_cpp_files_for_headers", "select_multi", "skia_cc_deps", "skia_cc_library", "skia_filegroup") 3 4package( 5 default_applicable_licenses = ["//:license"], 6) 7 8licenses(["notice"]) 9 10exports_files_legacy() 11 12string_flag_with_values( 13 name = "include_encoder", 14 multiple = True, 15 values = [ 16 "jpeg_encode_codec", 17 "png_encode_codec", 18 "webp_encode_codec", 19 ], 20) 21 22# In separate skia_filegroups to export these as gni file lists 23skia_filegroup( 24 name = "jpeg_encode_srcs", 25 srcs = [ 26 "SkJPEGWriteUtility.cpp", 27 "SkJpegEncoderImpl.cpp", 28 ], 29) 30 31skia_filegroup( 32 name = "jpeg_encode_hdrs", 33 srcs = [ 34 "SkJPEGWriteUtility.h", 35 "SkJpegEncoderImpl.h", 36 ], 37) 38 39skia_filegroup( 40 name = "no_jpeg_encode_srcs", 41 srcs = ["SkJpegEncoder_none.cpp"], 42) 43 44skia_filegroup( 45 name = "png_encode_hdrs", 46 srcs = ["SkPngEncoderImpl.h"], 47) 48 49skia_filegroup( 50 name = "png_encode_srcs", 51 srcs = ["SkPngEncoderImpl.cpp"], 52) 53 54skia_filegroup( 55 name = "no_png_encode_srcs", 56 srcs = ["SkPngEncoder_none.cpp"], 57) 58 59skia_filegroup( 60 name = "webp_encode_srcs", 61 srcs = ["SkWebpEncoderImpl.cpp"], 62) 63 64skia_filegroup( 65 name = "no_webp_encode_srcs", 66 srcs = ["SkWebpEncoder_none.cpp"], 67) 68 69skia_filegroup( 70 name = "srcs", 71 srcs = [ 72 "SkEncoder.cpp", 73 "SkICC.cpp", 74 ] + select_multi( 75 default_cases = { 76 ":jpeg_encode_codec": [":no_jpeg_encode_srcs"], 77 ":png_encode_codec": [":no_png_encode_srcs"], 78 ":webp_encode_codec": [":no_webp_encode_srcs"], 79 }, 80 values_map = { 81 ":jpeg_encode_codec": [":jpeg_encode_srcs"], 82 ":png_encode_codec": [":png_encode_srcs"], 83 ":webp_encode_codec": [":webp_encode_srcs"], 84 }, 85 ), 86 visibility = ["//src:__pkg__"], 87) 88 89skia_filegroup( 90 name = "private_hdrs", 91 srcs = [ 92 "SkICCPriv.h", 93 "SkImageEncoderFns.h", 94 "SkImageEncoderPriv.h", 95 ] + select_multi({ 96 ":png_encode_codec": [":png_encode_hdrs"], 97 ":jpeg_encode_codec": [ 98 ":jpeg_encode_hdrs", 99 "//src/codec:shared_jpeg_hdrs", 100 ], 101 }), 102 visibility = ["//src:__pkg__"], 103) 104 105skia_cc_deps( 106 name = "deps", 107 visibility = ["//src:__pkg__"], 108 deps = select_multi( 109 { 110 ":jpeg_encode_codec": ["@libjpeg_turbo"], 111 ":png_encode_codec": ["@libpng"], 112 ":webp_encode_codec": ["@libwebp"], 113 }, 114 ), 115) 116 117skia_cc_library( 118 name = "icc_support", 119 srcs = [ 120 "SkICC.cpp", 121 ], 122 hdrs = [ 123 "SkICCPriv.h", 124 "//include/encode:icc_hdrs", 125 ], 126 features = ["layering_check"], 127 deps = [ 128 "//:core", 129 "//modules/skcms", 130 "//src/base", 131 "//src/core:core_priv", 132 ], 133) 134 135skia_cc_library( 136 name = "encoder_common", 137 srcs = [ 138 "SkEncoder.cpp", 139 "//include/encode:encode_hdrs", 140 ], 141 hdrs = [ 142 "SkImageEncoderFns.h", 143 "SkImageEncoderPriv.h", 144 ], 145 features = ["layering_check"], 146 deps = [ 147 ":icc_support", 148 "//:core", 149 "//modules/skcms", 150 "//src/base", 151 "//src/core:core_priv", 152 ], 153) 154 155skia_cc_library( 156 name = "icc_encode", 157 hdrs = [ 158 "//include/encode:icc_hdrs", 159 ], 160 visibility = ["//:__subpackages__"], 161 deps = [ 162 ":icc_support", 163 ], 164) 165 166skia_cc_library( 167 name = "png_encode", 168 srcs = [ 169 ":png_encode_hdrs", 170 ":png_encode_srcs", 171 "//src/codec:common_png_srcs", 172 ], 173 hdrs = [ 174 "//include/encode:encode_hdrs", 175 "//include/encode:png_hdrs", 176 ], 177 features = ["layering_check"], 178 visibility = ["//:__pkg__"], 179 deps = [ 180 ":encoder_common", 181 "//:core", 182 "//modules/skcms", 183 "//src/base", 184 "//src/core:core_priv", 185 "@libpng", 186 ], 187) 188 189skia_cc_library( 190 name = "jpeg_encode", 191 srcs = [ 192 ":jpeg_encode_hdrs", 193 ":jpeg_encode_srcs", 194 "//src/codec:common_jpeg_srcs", 195 ], 196 hdrs = [ 197 "//include/encode:encode_hdrs", 198 "//include/encode:jpeg_hdrs", 199 ], 200 features = ["layering_check"], 201 visibility = ["//:__pkg__"], 202 deps = [ 203 ":encoder_common", 204 "//:core", 205 "//src/base", 206 "//src/core:core_priv", 207 "@libjpeg_turbo", 208 ], 209) 210 211skia_cc_library( 212 name = "webp_encode", 213 srcs = [ 214 ":webp_encode_srcs", 215 ], 216 hdrs = [ 217 "//include/encode:encode_hdrs", 218 "//include/encode:webp_hdrs", 219 ], 220 features = ["layering_check"], 221 visibility = ["//:__pkg__"], 222 deps = [ 223 ":encoder_common", 224 "//:core", 225 "//src/base", 226 "//src/core:core_priv", 227 "@libwebp", 228 ], 229) 230 231generate_cpp_files_for_headers( 232 name = "headers_to_compile", 233 headers = [ 234 "SkICCPriv.h", 235 "SkImageEncoderFns.h", 236 "SkImageEncoderPriv.h", 237 ], 238) 239