• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("@bazel_skylib//lib:selects.bzl", "selects")
2load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_cc_library", "skia_objc_library")
3
4package(
5    default_applicable_licenses = ["//:license"],
6)
7
8licenses(["notice"])
9
10exports_files_legacy()
11
12selects.config_setting_group(
13    name = "use_harfbuzz_shaper",
14    match_all = [
15        "//bazel/common_config_settings:use_harfbuzz_true",
16    ],
17)
18
19# TODO(kjlubick,bungeman) delete legacy_skshaper (uses legacy non-modular build)
20
21skia_cc_library(
22    name = "legacy_harfbuzz",
23    deps = ["@harfbuzz"],
24)
25
26skia_cc_library(
27    name = "legacy_skshaper",
28    srcs = ["//modules/skshaper/src:srcs"],
29    hdrs = [
30        "//modules/skshaper/include:hdrs",
31        "//modules/skshaper/utils:core_hdrs",
32    ],
33    defines = [
34        "SK_SHAPER_UNICODE_AVAILABLE",
35        "SK_SHAPER_PRIMITIVE_AVAILABLE",
36    ] + select({
37        ":use_harfbuzz_shaper": ["SK_SHAPER_HARFBUZZ_AVAILABLE"],
38        "//conditions:default": [],
39    }),
40    local_defines = ["SKSHAPER_IMPLEMENTATION=1"],
41    visibility = ["//:__subpackages__"],
42    # TODO(kjlubick,bungeman) someday implementation_deps will be available
43    #implementation_deps = ["//modules/skunicode"] + select({
44    #    ":use_harfbuzz_shaper": [
45    #        "@harfbuzz",
46    #    ],
47    #    "//conditions:default": [],
48    #}),
49    #deps = ["//:skia_internal"]
50    deps = [
51        "//:skia_internal",
52        "//modules/skunicode:legacy_skunicode",
53    ] + select({
54        ":use_harfbuzz_shaper": [
55            ":legacy_harfbuzz",
56        ],
57        "//conditions:default": [],
58    }),
59)
60
61skia_cc_library(
62    name = "skshaper_core",
63    srcs = [
64        "//modules/skshaper/src:core_srcs",
65    ],
66    hdrs = [
67        "//modules/skshaper/include:core_hdrs",
68    ],
69    defines = ["SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS"],
70    features = ["layering_check"],
71    local_defines = ["SKSHAPER_IMPLEMENTATION=1"],
72    visibility = [
73        "//modules/skottie:__subpackages__",
74        "//modules/svg:__subpackages__",
75    ],
76    deps = [
77        "//:core",
78        "//src/base",
79        "//src/core:core_priv",
80    ],
81)
82
83# This is its own library to make it harder for Skia itself to unintentionally
84# include FactoryHelpers.h in utils
85skia_cc_library(
86    name = "skshaper_core_and_utils",
87    hdrs = [
88        "//modules/skshaper/include:core_hdrs",
89        "//modules/skshaper/utils:core_hdrs",
90    ],
91    local_defines = ["SKSHAPER_IMPLEMENTATION=1"],
92    visibility = [
93        "//:__pkg__",
94    ],
95    deps = [
96        ":skshaper_core",
97    ],
98)
99
100skia_objc_library(
101    name = "skshaper_coretext",
102    srcs = [
103        "//modules/skshaper/src:coretext_srcs",
104    ],
105    hdrs = [
106        "//modules/skshaper/include:core_hdrs",
107        "//modules/skshaper/include:coretext_hdrs",
108        "//modules/skshaper/utils:core_hdrs",
109    ],
110    copts = ["-DSKSHAPER_IMPLEMENTATION=1"],
111    defines = [
112        "SK_SHAPER_CORETEXT_AVAILABLE",
113        "SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS",
114    ],
115    features = ["layering_check"],
116    ios_frameworks = [
117        "CoreText",
118        "CoreGraphics",
119        "CoreFoundation",
120    ],
121    mac_frameworks = ["ApplicationServices"],
122    visibility = [
123        "//:__subpackages__",
124    ],
125    deps = [
126        ":skshaper_core",
127        "//:core",
128        "//src/base",
129        "//src/core:core_priv",
130        "//src/ports:coretext_typeface",
131        "//src/utils/mac:mac_utils_priv",
132    ],
133)
134
135skia_cc_library(
136    name = "skshaper_harfbuzz",
137    srcs = [
138        "//modules/skshaper/src:harfbuzz_srcs",
139    ],
140    hdrs = [
141        "//modules/skshaper/include:core_hdrs",
142        "//modules/skshaper/include:harfbuzz_hdrs",
143        "//modules/skshaper/utils:core_hdrs",
144    ],
145    defines = [
146        "SK_SHAPER_HARFBUZZ_AVAILABLE",
147        "SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS",
148    ],
149    features = ["layering_check"],
150    local_defines = ["SKSHAPER_IMPLEMENTATION=1"],
151    visibility = [
152        "//:__subpackages__",
153    ],
154    deps = [
155        ":skshaper_core",
156        "//:core",
157        "//modules/skunicode:skunicode_core",
158        "//src/base",
159        "//src/core:core_priv",
160    ] +
161    # We have this harfbuzz dependency all by itself because we need to turn this into a
162    # select statement when rolling into G3.
163    [
164        "@harfbuzz",
165    ],
166)
167
168skia_cc_library(
169    name = "skshaper_unicode",
170    srcs = [
171        "//modules/skshaper/src:skunicode_srcs",
172    ],
173    hdrs = [
174        "//modules/skshaper/include:core_hdrs",
175        "//modules/skshaper/include:skunicode_hdrs",
176        "//modules/skshaper/utils:core_hdrs",
177    ],
178    defines = [
179        "SK_SHAPER_UNICODE_AVAILABLE",
180        "SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS",
181    ],
182    features = ["layering_check"],
183    local_defines = ["SKSHAPER_IMPLEMENTATION=1"],
184    visibility = [
185        "//:__subpackages__",
186    ],
187    deps = [
188        ":skshaper_core",
189        "//:core",
190        "//modules/skunicode:skunicode_core",
191        "//src/base",
192        "//src/core:core_priv",
193    ],
194)
195