• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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