skia2/include
Kevin Lubick 8ed49ea6e3 [infra] Add Bazel rules for codecs.
This ports the third_party BUILD.gn files related to codecs
(with a best-effort on arm/SIMD stuff). This includes:
 - libpng
 - libjpeg-turbo
 - libwebp
 - wuffs (gif)
 - libgifcodec
 - dng_sdk and piex (raw codec)

This expands the string_flag_with_values macro to allow
multiple values to be set at once. This was added in Bazel 5.0.0,
however the latest pre-release version of that has a bug [1]
which slows down compilation dramatically. This was fixed at
ToT, but not released. As a result, I started using the Bazel
6 pre-release (via bazelisk).

The macro select_multi makes writing select() where multiple
elements could be on possible/easier.

One can try compiling certain codecs by running:
bazel build :skia-core --config clang --include_codec=raw_codec --include_codec=png_codec

Suggested Review Order:
 - bazel/macros.bzl
 - bazel/common_config_settings/defs.bzl and its BUILD.bazel
   to see how the codec options are defined.
 - BUILD.bazel to see how the codec settings are used.
 - src/codec/BUILD.bazel to see the inclusion of Skia files to
   deal with specific codecs.
 - third_party/BUILD.bazel (while referencing the corresponding
   BUILD.gn files, such as third_party/libwebp/BUILD.gn)
 - Everything else.

Change-Id: I797375a35fa345d9835e7b2a2ab23371c45953c3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/469456
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2021-11-11 20:10:01 +00:00
..
android Rename/simplify SkCanvas::resetClip() and make recordable 2021-07-23 19:05:42 +00:00
c Hide legacy drawImage methods 2021-01-20 00:59:26 +00:00
codec [infra] Add initial Bazel rules and files 2021-11-09 12:32:25 +00:00
config [infra] Add initial platforms and constraint values 2021-10-26 18:27:13 +00:00
core Remove GPU V2 2021-11-11 17:11:19 +00:00
docs Remove deprecated fType field in StructureElementNode. 2021-11-08 20:32:27 +00:00
effects In SkRuntimeEffect, replace ConstIterable with SkSpan 2021-11-10 21:09:58 +00:00
encode [infra] Add initial Bazel rules and files 2021-11-09 12:32:25 +00:00
gpu Remove GPU V2 2021-11-11 17:11:19 +00:00
pathops [infra] Add initial Bazel rules and files 2021-11-09 12:32:25 +00:00
ports [infra] Add initial Bazel rules and files 2021-11-09 12:32:25 +00:00
private [infra] Add Bazel rules for codecs. 2021-11-11 20:10:01 +00:00
sksl [infra] Add initial Bazel rules and files 2021-11-09 12:32:25 +00:00
svg [svgcanvas] Add support for relative path encoding 2021-05-11 17:44:59 +00:00
third_party [infra] Add initial Bazel rules and files 2021-11-09 12:32:25 +00:00
utils [infra] Add initial Bazel rules and files 2021-11-09 12:32:25 +00:00
OWNERS Add Bazel folks as owners to BUILD.bazel files 2021-11-09 14:24:54 +00:00