| load( |
| "//bazel:skia_rules.bzl", |
| "exports_files_legacy", |
| "generate_cpp_files_for_headers", |
| "skia_cc_deps", |
| "skia_cc_library", |
| "skia_filegroup", |
| ) |
| |
| licenses(["notice"]) |
| |
| exports_files_legacy() |
| |
| skia_filegroup( |
| name = "srcs", |
| srcs = [ |
| "//src/android:srcs", |
| "//src/base:srcs", |
| "//src/codec:srcs", |
| "//src/core:srcs", |
| "//src/effects:srcs", |
| "//src/image:srcs", |
| "//src/encode:srcs", |
| "//src/pathops:srcs", |
| "//src/ports:srcs", |
| "//src/sfnt:srcs", |
| "//src/shaders:srcs", |
| "//src/text:srcs", |
| "//src/utils:srcs", |
| ] + select({ |
| "//src/gpu:has_gpu_backend": [ |
| "//src/gpu:srcs", |
| "//src/text/gpu:srcs", |
| ], |
| "//conditions:default": [], |
| }) + select({ |
| "//src/sksl:needs_sksl": ["//src/sksl:srcs"], |
| "//conditions:default": [], |
| }) + select({ |
| "//src/svg:enable_svg_canvas_true": [ |
| "//src/svg:srcs", |
| "//src/xml:srcs", |
| ], |
| "//conditions:default": [], |
| }) + select({ |
| "//src/pdf:enable_pdf_backend_true": ["//src/pdf:srcs"], |
| "//conditions:default": [], |
| }) + select({ |
| "//src/lazy:enable_discardable_memory_true": ["//src/lazy:srcs"], |
| "//conditions:default": [], |
| }) + select({ |
| "//bazel/common_config_settings:compile_generated_cpp_files_for_headers_true": [ |
| ":generated_srcs", |
| ], |
| "//conditions:default": [], |
| }), |
| visibility = ["//:__pkg__"], |
| ) |
| |
| skia_filegroup( |
| name = "private_hdrs", |
| srcs = [ |
| "//src/base:private_hdrs", |
| "//src/codec:private_hdrs", |
| "//src/core:private_hdrs", |
| "//src/effects:private_hdrs", |
| "//src/image:private_hdrs", |
| "//src/encode:private_hdrs", |
| "//src/opts:private_hdrs", |
| "//src/pathops:private_hdrs", |
| "//src/ports:private_hdrs", |
| "//src/sfnt:private_hdrs", |
| "//src/shaders:private_hdrs", |
| "//src/text:private_hdrs", |
| "//src/utils:private_hdrs", |
| ] + select({ |
| "//src/gpu:has_gpu_backend": [ |
| "//src/gpu:private_hdrs", |
| "//src/text/gpu:private_hdrs", |
| ], |
| "//conditions:default": [], |
| }) + select({ |
| "//src/sksl:needs_sksl": ["//src/sksl:private_hdrs"], |
| "//conditions:default": [], |
| }) + select({ |
| "//src/svg:enable_svg_canvas_true": [ |
| "//src/svg:private_hdrs", |
| "//src/xml:private_hdrs", |
| ], |
| "//conditions:default": [], |
| }) + select({ |
| "//src/pdf:enable_pdf_backend_true": ["//src/pdf:private_hdrs"], |
| "//conditions:default": [], |
| }) + select({ |
| "//src/lazy:enable_discardable_memory_true": ["//src/lazy:private_hdrs"], |
| "//conditions:default": [], |
| }), |
| visibility = [ |
| "//:__pkg__", |
| "//src/opts:__pkg__", |
| ], |
| ) |
| |
| skia_cc_deps( |
| name = "deps", |
| visibility = ["//:__pkg__"], |
| deps = [ |
| "//src/codec:deps", |
| "//src/encode:deps", |
| "//src/ports:deps", |
| "//src/opts:deps", |
| "//modules/skcms:skcms", |
| ] + select({ |
| "//src/gpu:has_gpu_backend": ["//src/gpu:deps"], |
| "//conditions:default": [], |
| }) + select({ |
| "//src/sksl:needs_sksl": ["//src/sksl:deps"], |
| "//conditions:default": [], |
| }) + select({ |
| "//src/svg:enable_svg_canvas_true": ["//src/xml:deps"], |
| "//conditions:default": [], |
| }) + select({ |
| "//src/pdf:enable_pdf_backend_true": ["//src/pdf:deps"], |
| "//conditions:default": [], |
| }), |
| ) |
| |
| generate_cpp_files_for_headers( |
| name = "generated_srcs", |
| headers = [ |
| ":private_hdrs", |
| ], |
| # All headers listed here (using paths relative to the Skia root) will have a .cpp file |
| # generated that is a copy of the header file just with a .cpp suffix so Bazel will try to |
| # compile it. This allows us to run IWYU on these files. |
| to_generate = [ |
| "src/core/SkColorSpacePriv.h", |
| "src/core/SkDrawProcs.h", |
| "src/core/SkICCPriv.h", |
| "src/core/SkMatrixPriv.h", |
| "src/core/SkPathPriv.h", |
| "src/encode/SkImageEncoderFns.h", |
| "src/encode/SkImageEncoderPriv.h", |
| "src/image/SkImage_Base.h", |
| ], |
| ) |
| |
| #################################################################### |
| # Experimental buffet build below |
| |
| skia_cc_library( |
| name = "base", |
| srcs = [ |
| "//include/config:public_hdrs", |
| "//src/base:srcs", |
| ] + select({ |
| "//bazel/common_config_settings:compile_generated_cpp_files_for_headers_true": [ |
| "//include/private/base:generated_base_header_cpps", |
| "//src/base:generated_base_header_cpps", |
| ], |
| "//conditions:default": [], |
| }), |
| hdrs = [ |
| "//include/private/base:private_hdrs", |
| "//src/base:private_hdrs", |
| ], |
| features = ["layering_check"], |
| visibility = ["//src:__subpackages__"], |
| ) |
| |
| skia_cc_library( |
| name = "core", |
| srcs = [ |
| "//include/private:buffet_hdrs", |
| "//include/private:buffet_srcs", |
| "//src/core:buffet_hdrs", |
| "//src/core:buffet_srcs", |
| ], |
| hdrs = ["//include/core:core_hdrs"], |
| visibility = ["//:__pkg__"], |
| deps = [":base"], |
| ) |
| |
| skia_cc_library( |
| name = "core_priv", |
| hdrs = [ |
| "//include/private:buffet_hdrs", |
| "//src/core:buffet_hdrs", |
| ], |
| visibility = ["//src:__subpackages__"], |
| deps = [":base"], |
| ) |
| |
| skia_cc_library( |
| name = "pathops", |
| srcs = [ |
| "//src/pathops:private_hdrs", |
| "//src/pathops:srcs", |
| ], |
| hdrs = [ |
| "//include/pathops:public_hdrs", |
| ], |
| features = ["layering_check"], |
| visibility = ["//:__subpackages__"], |
| deps = [ |
| ":base", |
| ":core", |
| ":core_priv", |
| ], |
| ) |