xref: /aosp_15_r20/external/skia/modules/skottie/BUILD.bazel (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1load("//bazel:skia_rules.bzl", "skia_cc_binary", "skia_cc_library")
2
3package(
4    default_applicable_licenses = ["//:license"],
5)
6
7licenses(["notice"])
8
9skia_cc_binary(
10    name = "skottie_tool_cpu",
11    testonly = True,
12    srcs = [
13        "//modules/skottie/src:skottie_tool",
14    ],
15    defines = ["CPU_ONLY"],
16    deps = [
17        ":skottie",
18        "//:core",
19        "//:fontmgr_empty_freetype",
20        "//:jpeg_decode_codec",
21        "//:png_decode_codec",
22        "//:png_encode_codec",
23        "//:webp_decode_codec",
24        "//modules/skottie/utils:skottie_utils",
25        "//modules/skresources",
26        "//modules/skshaper:skshaper_harfbuzz",
27        "//modules/skshaper:skshaper_unicode",
28        "//modules/skunicode:skunicode_icu",
29        "//src/base",
30        "//src/core:core_priv",
31        "//tools/flags:cmd_flags",
32    ] + select({
33        "@platforms//os:linux": [
34            "@skia//:fontmgr_fontconfig_freetype",
35            "@skia//:freetype_support",
36        ],
37        "@platforms//os:macos": ["//:fontmgr_coretext"],
38        "//conditions:default": ["//:fontmgr_empty_freetype"],
39    }),
40)
41
42skia_cc_binary(
43    name = "skottie_tool_gpu",
44    testonly = True,
45    srcs = [
46        "//modules/skottie/src:skottie_tool",
47    ],
48    defines = ["GPU_ONLY"],
49    deps = [
50        ":skottie",
51        "//:core",
52        "//:fontmgr_empty_freetype",
53        "//:jpeg_decode_codec",
54        "//:png_decode_codec",
55        "//:png_encode_codec",
56        "//:webp_decode_codec",
57        "//modules/skottie/utils:skottie_utils",
58        "//modules/skresources",
59        "//modules/skshaper:skshaper_harfbuzz",
60        "//modules/skshaper:skshaper_unicode",
61        "//modules/skunicode:skunicode_icu",
62        "//src/base",
63        "//src/core:core_priv",
64        "//src/gpu/ganesh/gl:ganesh_gl_TEST_UTIL",
65        "//tools/flags:cmd_flags",
66        "//tools/gpu:ganesh_gl_utils",
67    ],
68)
69
70skia_cc_binary(
71    name = "skottie_preshape_tool",
72    testonly = True,
73    srcs = [
74        "//modules/skottie/utils:skottie_preshape_tool",
75    ],
76    deps = [
77        ":skottie",
78        "//:core",
79        "//modules/skottie/utils:skottie_utils",
80        "//modules/skottie/utils:text_preshape",
81        "//modules/skresources",
82        "//modules/skshaper:skshaper_harfbuzz",
83        "//modules/skshaper:skshaper_unicode",
84        "//modules/skunicode:skunicode_icu",
85        "//src/base",
86        "//src/core:core_priv",
87        "//tools/flags:cmd_flags",
88    ] + select({
89        "@platforms//os:linux": [
90            "@skia//:freetype_support",
91            "@skia//:fontmgr_fontconfig_freetype",
92        ],
93        "@platforms//os:macos": ["//:fontmgr_coretext"],
94        "//conditions:default": ["//:fontmgr_empty_freetype"],
95    }),
96)
97
98skia_cc_library(
99    name = "skottie",
100    srcs = [
101        "//modules/skottie/src:private_hdrs",
102        "//modules/skottie/src:srcs",
103    ],
104    hdrs = ["//modules/skottie/include:hdrs"],
105    defines = [
106        "SK_ENABLE_SKOTTIE",
107    ],
108    features = ["layering_check"],
109    local_defines = [
110        "SK_DISABLE_LEGACY_SHAPER_FACTORY",
111        "SK_ENABLE_SKOTTIE_SKSLEFFECT",
112    ],
113    visibility = ["//:__subpackages__"],
114    deps = [
115        ":textshaper",
116        "//:core",
117        "//modules/skresources",
118        "//modules/sksg",
119        "//modules/sksg:sksg_priv",
120        "//modules/skshaper:skshaper_core",
121        "//src/base",
122        "//src/codec:codec_support_priv",
123        "//src/core:core_priv",
124    ],
125)
126
127skia_cc_library(
128    name = "skottie_priv",
129    hdrs = [
130        "//modules/skottie/include:hdrs",
131        "//modules/skottie/src:private_hdrs",
132        "//modules/skottie/src/text:private_hdrs",
133    ],
134    visibility = ["//modules/skottie/utils:__pkg__"],
135    deps = [":skottie"],
136)
137
138# A tiny subset of Skottie, exposing text-shaping related functions
139# for clients which require low-level access to shaping metrics.
140# There is no animation code available here.
141skia_cc_library(
142    name = "textshaper",
143    srcs = ["//modules/skottie/src/text:text_shaper_srcs"],
144    hdrs = ["//modules/skottie/include:text_shaper_hdrs"],
145    defines = [
146        "SK_DISABLE_LEGACY_SHAPER_FACTORY",
147    ],
148    features = ["layering_check"],
149    visibility = ["//:__subpackages__"],
150    deps = [
151        "//:core",
152        "//modules/skshaper:skshaper_core",
153        "//modules/skunicode:skunicode_core",
154        "//src/base",
155        "//src/core:core_priv",
156    ],
157)
158