| load( |
| "//bazel:macros.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/images: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/images: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/images: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/SkMatrixPriv.h", |
| "src/core/SkPathPriv.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"], |
| ) |