[modules] Sketch out out bare-bones core and functional pathops target
This introduces several "buffet" modules, in that a client can
pick and choose what they want. For example, the
//experimental/bazel_test:skia_with_pathops target
can choose just the core Skia and pathops part to do what it
needs to, without needing any of the CPU backend or other
parts of Skia.
To make this work, I made a bunch of new file groups (or used
existing ones) and put them into new targets. Note that these
targets do not have any feature-based selects (although I expect
them to have platform-specific ones at some point).
I didn't want to deal with SkPaint.cpp yet (there's a lot
of extra dependencies it would need), so I broke the link
between SkMatrix and SkPaint. While I was cleaning up SkMatrix,
I moved the RSXForm stuff into its own file (since it's in
its own header).
While testing this on Mac, I had to update some things to
make linking binaries work correctly.
This also adds "SkDebug.h" to the list of files that IWYU
won't tell us to remove because the IWYU build of skia_public
always sets SK_DEBUG but the modules build has this set
by SkDebug.h. Then, IWYU decided many files (semi-correctly)
needed to include SkDebug.h instead of getting them from SkTypes.h.
I'm also not sure why, but just now clang decided the use
of a non-string literal in SkDebug_stdio.cpp was suspect.
Future work will continue to add things into core
(e.g. SkPaint and SkCanvas). base will probably see a few
more additions as well.
Change-Id: I5be52329cbaa16b6c8d31b665f3915931e79cd11
Bug: skia:13983
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/633981
Owners-Override: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
122 files changed