blob: a48a5d06f149c5007a5cadd9624b157ce1f6ad96 [file] [log] [blame]
load("//bazel:flags.bzl", "selects")
load(
"//bazel:skia_rules.bzl",
"exports_files_legacy",
"generate_cpp_files_for_headers",
"skia_cc_deps",
"skia_filegroup",
)
licenses(["notice"])
exports_files_legacy()
selects.config_setting_group(
name = "android_with_ganesh_backend",
match_all = [
"@platforms//os:android",
"//src/gpu:has_ganesh_backend",
],
)
skia_filegroup(
name = "srcs",
srcs = [
"//src/android:srcs",
"//src/base:srcs",
"//src/codec:srcs",
"//src/core:srcs",
"//src/effects:srcs",
"//src/encode:srcs",
"//src/image:srcs",
"//src/pathops:srcs",
"//src/ports:srcs",
"//src/sfnt:srcs",
"//src/shaders:srcs",
"//src/sksl:srcs",
"//src/text:srcs",
"//src/utils:srcs",
"//src/xml:srcs",
] + select({
"//src/gpu:has_ganesh_backend": [
"//src/gpu:srcs",
"//src/text/gpu:srcs",
],
"//conditions:default": [],
}) + select({
"//src/svg:enable_svg_canvas_true": [
"//src/svg: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": [],
}) + select({
":android_with_ganesh_backend": ["//src/image:android_srcs"],
"//conditions:default": [],
}),
visibility = ["//:__pkg__"],
)
skia_filegroup(
name = "objc_srcs",
srcs = select({
"//src/gpu:has_ganesh_backend": ["//src/gpu:objc_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/encode:private_hdrs",
"//src/image:private_hdrs",
"//src/opts:private_hdrs",
"//src/pathops:private_hdrs",
"//src/ports:private_hdrs",
"//src/sfnt:private_hdrs",
"//src/shaders:private_hdrs",
"//src/sksl:private_hdrs",
"//src/sksl/tracing:skopts_hdrs",
"//src/text:private_hdrs",
"//src/utils:private_hdrs",
"//src/xml:private_hdrs",
] + select({
"//src/gpu:has_ganesh_backend": [
"//src/gpu:private_hdrs",
"//src/text/gpu:private_hdrs",
],
"//conditions:default": [],
}) + select({
"//src/svg:enable_svg_canvas_true": [
"//src/svg: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 = [
"//modules/skcms",
"//src/codec:deps",
"//src/encode:deps",
"//src/opts:deps",
"//src/ports:deps",
"//src/sksl:deps",
"//src/xml:deps",
] + select({
"//src/gpu:has_ganesh_backend": ["//src/gpu: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/codec/SkPixmapUtilsPriv.h",
"src/core/SkAdvancedTypefaceMetrics.h",
"src/core/SkColorSpacePriv.h",
"src/core/SkCoreBlitters.h",
"src/core/SkDrawProcs.h",
"src/core/SkMatrixPriv.h",
"src/core/SkPathPriv.h",
"src/core/SkRuntimeEffectPriv.h",
"src/encode/SkICCPriv.h",
"src/encode/SkImageEncoderFns.h",
"src/encode/SkImageEncoderPriv.h",
"src/gpu/ganesh/GrBackendSemaphorePriv.h",
"src/gpu/ganesh/GrBackendSurfacePriv.h",
"src/gpu/ganesh/GrClip.h",
"src/gpu/ganesh/gl/GrGLBackendSurfacePriv.h",
"src/image/SkImageGeneratorPriv.h",
],
)