• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# © 2021 and later: Unicode, Inc. and others.
2# License & terms of use: http://www.unicode.org/copyright.html
3
4# This file defines Bazel targets for a subset of ICU4C "common" library header and source files.
5# The configuration of dependencies among targets is strongly assisted by the
6# file in depstest that maintains such information, at
7# icu4c/source/test/depstest/dependencies.txt .
8
9load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
10
11package(
12    default_visibility = ["//visibility:public"],
13)
14
15# When compiling code in the `common` dir, the constant
16# `U_COMMON_IMPLEMENTATION` needs to be defined. See
17# https://unicode-org.github.io/icu/userguide/howtouseicu#c-with-your-own-build-system .
18
19# If linker errors occur, then this may be a sign that the dependencies were
20# not specified correctly. Use dependencies.txt in depstest for assistance. See
21# https://stackoverflow.com/q/66111709/2077918 .
22
23cc_library(
24    name = "headers",
25    hdrs = glob([
26        "unicode/*.h", # public
27        "*.h",         # internal
28        ],
29        # Instead of using these checked-in files, our Bazel build process
30        # regenerates them and then uses the new versions.
31        # Same list of .h files as in icu4c/source/data/unidata/clean.sh.
32        exclude = ["norm2_nfc_data.h", "propname_data.h", "*_props_data.h"],
33    ),
34    # We need to add includes in order to preserve existing source files'
35    # include directives that use traditional paths, not paths relative to
36    # Bazel workspace:
37    # https://stackoverflow.com/a/65635893/2077918
38    includes = ["."],
39    local_defines = [
40        "U_COMMON_IMPLEMENTATION",
41    ],
42)
43
44cc_library(
45    name = "platform",
46    srcs = [
47        "cmemory.cpp",
48        "uobject.cpp",
49        "cstring.cpp",
50        "cwchar.cpp",
51        "uinvchar.cpp",
52        "charstr.cpp",
53        "unistr.cpp",
54        "appendable.cpp",
55        "stringpiece.cpp",
56        "ustrtrns.cpp",
57        "ustring.cpp",
58        "ustrfmt.cpp",
59        "utf_impl.cpp",
60        "putil.cpp",
61        "ucln_cmn.cpp",
62        "udataswp.cpp",
63        "umath.cpp",
64        "umutex.cpp",
65        "sharedobject.cpp",
66        "utrace.cpp",
67    ],
68    deps = [
69        ":headers",
70        # omit other deps b/c they are sys symbols
71    ],
72    local_defines = [
73        "U_COMMON_IMPLEMENTATION",
74    ],
75    linkopts = ["-ldl"],
76)
77
78cc_library(
79    name = "utrie",
80    srcs = ["utrie.cpp"],
81    deps = [":platform"],
82    local_defines = [
83        "U_COMMON_IMPLEMENTATION",
84    ],
85)
86
87cc_library(
88    name = "utrie2",
89    srcs = ["utrie2.cpp"],
90    deps = [":platform"],
91    local_defines = [
92        "U_COMMON_IMPLEMENTATION",
93    ],
94)
95
96cc_library(
97    name = "utrie2_builder",
98    srcs = ["utrie2_builder.cpp"],
99    deps = [
100        ":utrie",
101        ":utrie2",
102        ":platform",
103    ],
104    local_defines = [
105        "U_COMMON_IMPLEMENTATION",
106    ],
107)
108
109cc_library(
110    name = "ucptrie",
111    srcs = ["ucptrie.cpp"],
112    deps = [":platform"],
113    local_defines = [
114        "U_COMMON_IMPLEMENTATION",
115    ],
116)
117
118cc_library(
119    name = "umutablecptrie",
120    srcs = ["umutablecptrie.cpp"],
121    deps = [":ucptrie"],
122    local_defines = [
123        "U_COMMON_IMPLEMENTATION",
124    ],
125)
126
127cc_library(
128    name = "bytestrie",
129    srcs = ["bytestrie.cpp"],
130    deps = [":platform"],
131    local_defines = [
132        "U_COMMON_IMPLEMENTATION",
133    ],
134)
135
136cc_library(
137    name = "bytestriebuilder",
138    srcs = ["bytestriebuilder.cpp"],
139    deps = [
140        ":bytestrie",
141        ":stringtriebuilder",
142        ":sort",
143    ],
144    local_defines = [
145        "U_COMMON_IMPLEMENTATION",
146    ],
147)
148
149cc_library(
150    name = "stringtriebuilder",
151    srcs = ["stringtriebuilder.cpp"],
152    deps = [
153        ":uhash",
154    ],
155    local_defines = [
156        "U_COMMON_IMPLEMENTATION",
157    ],
158)
159
160cc_library(
161    name = "uhash",
162    hdrs = [
163        "uhash.h",
164    ],
165    srcs = [
166        "uhash.cpp",
167    ],
168    deps = [
169        ":headers",
170    ],
171    local_defines = [
172        "U_COMMON_IMPLEMENTATION",
173    ],
174)
175
176cc_library(
177    name = "errorcode",
178    hdrs = [
179    ],
180    srcs = [
181        "errorcode.cpp",
182    ],
183    includes = ["."],
184    deps = [
185        ":platform",
186        ":utypes",
187    ],
188    local_defines = [
189        "U_COMMON_IMPLEMENTATION",
190    ],
191)
192
193cc_library(
194    name = "utypes",
195    srcs = [
196        "utypes.cpp",
197    ],
198    includes = ["."],
199    deps = [
200        ":headers",
201    ],
202    local_defines = [
203        "U_COMMON_IMPLEMENTATION",
204    ],
205)
206
207cc_library(
208    name = "uniset",
209    srcs = [
210        "uniset.cpp",
211        "unifilt.cpp",
212        "unisetspan.cpp",
213        "bmpset.cpp",
214        "util.cpp",
215        "unifunct.cpp",
216        "usetiter.cpp",
217    ],
218    includes = ["."],
219    deps = [
220        ":patternprops",
221        ":uvector",
222        ":headers",
223    ],
224    local_defines = [
225        "U_COMMON_IMPLEMENTATION",
226    ],
227)
228
229cc_library(
230    name = "patternprops",
231    srcs = [
232        "patternprops.cpp",
233    ],
234    includes = ["."],
235    deps = [
236        ":headers",
237    ],
238    local_defines = [
239        "U_COMMON_IMPLEMENTATION",
240    ],
241)
242
243cc_library(
244    name = "propsvec",
245    srcs = [
246        "propsvec.cpp",
247    ],
248    includes = ["."],
249    deps = [
250        ":sort",
251        ":utrie2_builder",
252        ":headers",
253    ],
254    local_defines = [
255        "U_COMMON_IMPLEMENTATION",
256    ],
257)
258
259cc_library(
260    name = "propname",
261    srcs = [
262        "propname.cpp",
263        "propname_data.h",
264    ],
265    includes = ["."],
266    deps = [
267        ":bytestrie",
268        ":headers",
269    ],
270    local_defines = [
271        "U_COMMON_IMPLEMENTATION",
272    ],
273)
274
275# Note: The cc_library target names "uvector32" and "uvector64" match the
276# dependencies.txt group names, but the filenames are "uvectr32.*"/"uvectr64.*".
277cc_library(
278    name = "uvector32",
279    srcs = [
280        "uvectr32.cpp",
281    ],
282    includes = ["."],
283    deps = [
284        ":headers",
285        ":platform",
286    ],
287    local_defines = [
288        "U_COMMON_IMPLEMENTATION",
289    ],
290)
291
292cc_library(
293    name = "uvector64",
294    srcs = [
295        "uvectr64.cpp",
296    ],
297    includes = ["."],
298    deps = [
299        ":headers",
300        ":platform",
301    ],
302    local_defines = [
303        "U_COMMON_IMPLEMENTATION",
304    ],
305)
306
307cc_library(
308    name = "sort",
309    srcs = [
310        "uarrsort.cpp",
311    ],
312    includes = ["."],
313    deps = [
314        ":headers",
315    ],
316    local_defines = [
317        "U_COMMON_IMPLEMENTATION",
318    ],
319)
320
321cc_library(
322    name = "uvector",
323    srcs = [
324        "uvector.cpp",
325    ],
326    includes = ["."],
327    deps = [
328        ":platform",
329        ":sort",
330    ],
331    local_defines = [
332        "U_COMMON_IMPLEMENTATION",
333    ],
334)
335
336cc_library(
337    name = "breakiterator",
338    srcs = [
339        "brkiter.cpp",
340        "brkeng.cpp",
341        "dictbe.cpp",
342        "dictionarydata.cpp",
343        "filteredbrk.cpp",
344        "lstmbe.cpp",
345        "mlbe.cpp",
346        "rbbi.cpp",
347        "rbbi_cache.cpp",
348        "rbbidata.cpp",
349        "rbbinode.cpp",
350        "rbbirb.cpp",
351        "rbbiscan.cpp",
352        "rbbisetb.cpp",
353        "rbbistbl.cpp",
354        "rbbitblb.cpp",
355        "ubrk.cpp",
356    ],
357    includes = ["."],
358    deps = [
359        ":bytestrie",
360        ":headers",
361        ":normlzr",
362        ":resourcebundle",
363        ":schriter",
364        ":service_registration",
365        ":ucharstrie",
366        ":ucharstriebuilder",
367        ":uhash",
368        ":uniset_core",
369        ":uniset_props",
370        ":ustack",
371        ":utext",
372        ":utrie2_builder",
373        ":uvector32",
374    ],
375    local_defines = [
376        "U_COMMON_IMPLEMENTATION",
377    ],
378)
379
380cc_library(
381    name = "bytesinkutil",
382    srcs = [
383        "bytesinkutil.cpp",
384    ],
385    includes = ["."],
386    deps = [
387        ":headers",
388        ":bytestream",
389        ":edits",
390    ],
391    local_defines = [
392        "U_COMMON_IMPLEMENTATION",
393    ],
394)
395
396cc_library(
397    name = "bytestream",
398    srcs = [
399        "bytestream.cpp",
400    ],
401    includes = ["."],
402    deps = [
403        ":headers",
404        ":platform",
405    ],
406    local_defines = [
407        "U_COMMON_IMPLEMENTATION",
408    ],
409)
410
411cc_library(
412    name = "canonical_iterator",
413    srcs = [
414        "caniter.cpp",
415    ],
416    deps = [
417        ":normalizer2",
418        ":usetiter",
419    ],
420    local_defines = [
421        "U_COMMON_IMPLEMENTATION",
422    ],
423)
424
425cc_library(
426    name = "characterproperties",
427    srcs = [
428        "characterproperties.cpp",
429    ],
430    includes = ["."],
431    deps = [
432        ":headers",
433        ":emojiprops",
434        ":ucptrie",
435        ":umutablecptrie",
436        ":uniset_core",
437        ":uprops",
438    ],
439    local_defines = [
440        "U_COMMON_IMPLEMENTATION",
441    ],
442)
443
444cc_library(
445    name = "chariter",
446    srcs = [
447        "chariter.cpp",
448    ],
449    includes = ["."],
450    deps = [
451        ":headers",
452        ":platform",
453    ],
454    local_defines = [
455        "U_COMMON_IMPLEMENTATION",
456    ],
457)
458
459cc_library(
460    name = "edits",
461    srcs = [
462        "edits.cpp",
463    ],
464    includes = ["."],
465    deps = [
466        ":headers",
467        ":icu_utility",
468        ":platform",
469    ],
470    local_defines = [
471        "U_COMMON_IMPLEMENTATION",
472    ],
473)
474
475cc_library(
476    name = "filterednormalizer2",
477    srcs = [
478        "filterednormalizer2.cpp",
479    ],
480    includes = ["."],
481    deps = [
482        ":headers",
483        ":normalizer2",
484    ],
485    local_defines = [
486        "U_COMMON_IMPLEMENTATION",
487    ],
488)
489
490cc_library(
491    name = "hashtable",
492    srcs = [
493        "uhash_us.cpp",
494    ],
495    includes = ["."],
496    deps = [
497        ":headers",
498        ":uhash",
499    ],
500    local_defines = [
501        "U_COMMON_IMPLEMENTATION",
502    ],
503)
504
505cc_library(
506    name = "icu_utility",
507    srcs = [
508        "util.cpp",
509    ],
510    includes = ["."],
511    deps = [
512        ":headers",
513        ":patternprops",
514        ":platform",
515    ],
516    local_defines = [
517        "U_COMMON_IMPLEMENTATION",
518    ],
519)
520
521cc_library(
522    name = "loadednormalizer2",
523    srcs = [
524        "loadednormalizer2impl.cpp",
525    ],
526    includes = ["."],
527    deps = [
528        ":headers",
529        ":normalizer2",
530    ],
531    local_defines = [
532        "U_COMMON_IMPLEMENTATION",
533    ],
534)
535
536cc_library(
537    name = "locale_display_names",
538    srcs = [
539        "locdispnames.cpp",
540    ],
541    includes = ["."],
542    deps = [
543        ":headers",
544        ":locresdata",
545    ],
546    local_defines = [
547        "U_COMMON_IMPLEMENTATION",
548    ],
549)
550
551cc_library(
552    name = "locresdata",
553    srcs = [
554        "locresdata.cpp",
555    ],
556    includes = ["."],
557    deps = [
558        ":headers",
559        ":resourcebundle",
560    ],
561    local_defines = [
562        "U_COMMON_IMPLEMENTATION",
563    ],
564)
565
566cc_library(
567    name = "normlzr",
568    srcs = [
569        "normlzr.cpp",
570    ],
571    includes = ["."],
572    deps = [
573        ":filterednormalizer2",
574        ":headers",
575        ":schriter",
576        ":uniset_props",
577    ],
578    local_defines = [
579        "U_COMMON_IMPLEMENTATION",
580    ],
581)
582
583cc_library(
584    name = "parsepos",
585    srcs = [
586        "parsepos.cpp",
587    ],
588    includes = ["."],
589    deps = [
590        ":headers",
591        ":platform",
592    ],
593    local_defines = [
594        "U_COMMON_IMPLEMENTATION",
595    ],
596)
597
598cc_library(
599    name = "resourcebundle",
600    srcs = [
601        "localebuilder.cpp",
602        "locavailable.cpp",
603        "locbased.cpp",
604        "locid.cpp",
605        "loclikely.cpp",
606        "loclikelysubtags.cpp",
607        "locmap.cpp",
608        "lsr.cpp",
609        "resbund.cpp",
610        "resource.cpp",
611        "uloc.cpp",
612        "uloc_tag.cpp",
613        "uloc_keytype.cpp",
614        "ulocale.cpp",
615        "ulocbuilder.cpp",
616        "uresbund.cpp",
617        "uresdata.cpp",
618        "wintz.cpp",
619    ],
620    includes = ["."],
621    deps = [
622        ":bytesinkutil",
623        ":errorcode",
624        ":headers",
625        ":propname",
626        ":sort",
627        ":stringenumeration",
628        ":ucol_swp",
629        ":udata",
630        ":uhash",
631        ":uscript_props",
632        ":uvector",
633    ],
634    local_defines = [
635        "U_COMMON_IMPLEMENTATION",
636    ],
637)
638
639cc_library(
640    name = "schriter",
641    srcs = [
642        "schriter.cpp",
643        "uchriter.cpp",
644    ],
645    includes = ["."],
646    deps = [
647        ":chariter",
648        ":headers",
649    ],
650    local_defines = [
651        "U_COMMON_IMPLEMENTATION",
652    ],
653)
654
655cc_library(
656    name = "service_registration",
657    srcs = [
658        "locutil.cpp",
659        "serv.cpp",
660        "servlk.cpp",
661        "servlkf.cpp",
662        "servls.cpp",
663        "servnotf.cpp",
664        "servrbf.cpp",
665        "servslkf.cpp",
666    ],
667    includes = ["."],
668    deps = [
669        ":hashtable",
670        ":headers",
671        ":locale_display_names",
672        ":resourcebundle",
673        ":uvector",
674    ],
675    local_defines = [
676        "U_COMMON_IMPLEMENTATION",
677    ],
678)
679
680cc_library(
681    name = "stringenumeration",
682    srcs = [
683        "uenum.cpp",
684        "ustrenum.cpp",
685    ],
686    includes = ["."],
687    deps = [
688        ":headers",
689        ":platform",
690    ],
691    local_defines = [
692        "U_COMMON_IMPLEMENTATION",
693    ],
694)
695
696cc_library(
697    name = "ubidi_props",
698    srcs = [
699        "ubidi_props.cpp",
700        "ubidi_props_data.h",
701    ],
702    includes = ["."],
703    deps = [
704        ":headers",
705        ":utrie2",
706    ],
707    local_defines = [
708        "U_COMMON_IMPLEMENTATION",
709    ],
710)
711
712cc_library(
713    name = "ucase",
714    srcs = [
715        "ucase.cpp",
716        "ucase_props_data.h",
717    ],
718    includes = ["."],
719    deps = [
720        ":headers",
721        ":utrie2",
722    ],
723    local_defines = [
724        "U_COMMON_IMPLEMENTATION",
725    ],
726)
727
728cc_library(
729    name = "uchar",
730    srcs = [
731        "uchar.cpp",
732        "uchar_props_data.h",
733    ],
734    includes = ["."],
735    deps = [
736        ":headers",
737        ":utrie2",
738    ],
739    local_defines = [
740        "U_COMMON_IMPLEMENTATION",
741    ],
742)
743
744cc_library(
745    name = "emojiprops",
746    srcs = [
747        "emojiprops.cpp",
748        "emojiprops.h",
749    ],
750    includes = ["."],
751    deps = [
752        ":headers",
753        ":ucharstrie",
754        ":ucharstrieiterator",
755        ":ucptrie",
756        ":udata",
757    ],
758    local_defines = [
759        "U_COMMON_IMPLEMENTATION",
760    ],
761)
762
763cc_library(
764    name = "ucharstrie",
765    srcs = [
766        "ucharstrie.cpp",
767    ],
768    includes = ["."],
769    deps = [
770        ":headers",
771        ":platform",
772    ],
773    local_defines = [
774        "U_COMMON_IMPLEMENTATION",
775    ],
776)
777
778cc_library(
779    name = "ucharstriebuilder",
780    srcs = [
781        "ucharstriebuilder.cpp",
782    ],
783    includes = ["."],
784    deps = [
785        ":headers",
786        ":sort",
787        ":stringtriebuilder",
788        ":ucharstrie",
789    ],
790    local_defines = [
791        "U_COMMON_IMPLEMENTATION",
792    ],
793)
794
795cc_library(
796    name = "ucharstrieiterator",
797    srcs = [
798        "ucharstrieiterator.cpp",
799    ],
800    includes = ["."],
801    deps = [
802        ":headers",
803        ":ucharstrie",
804        ":uvector32",
805    ],
806    local_defines = [
807        "U_COMMON_IMPLEMENTATION",
808    ],
809)
810
811cc_library(
812    name = "ucol_swp",
813    srcs = [
814        "ucol_swp.cpp",
815    ],
816    includes = ["."],
817    deps = [
818        ":headers",
819        ":utrie_swap",
820    ],
821    local_defines = [
822        "U_COMMON_IMPLEMENTATION",
823    ],
824)
825
826cc_library(
827    name = "udata",
828    srcs = [
829        "restrace.cpp",
830        "ucmndata.cpp",
831        "udata.cpp",
832        "udatamem.cpp",
833        "umapfile.cpp",
834    ],
835    includes = ["."],
836    deps = [
837        ":headers",
838        ":icu_utility",
839        ":platform",
840        ":uhash",
841        "//icu4c/source/stubdata",
842    ],
843    local_defines = [
844        "U_COMMON_IMPLEMENTATION",
845    ],
846)
847
848cc_library(
849    name = "uiter",
850    srcs = [
851        "uiter.cpp",
852    ],
853    includes = ["."],
854    deps = [
855        ":headers",
856        ":platform",
857    ],
858    local_defines = [
859        "U_COMMON_IMPLEMENTATION",
860    ],
861)
862
863cc_library(
864    name = "ulist",
865    srcs = [
866        "ulist.cpp",
867    ],
868    includes = ["."],
869    deps = [
870        ":headers",
871        ":platform",
872    ],
873    local_defines = [
874        "U_COMMON_IMPLEMENTATION",
875    ],
876)
877
878cc_library(
879    name = "unames",
880    srcs = [
881        "unames.cpp",
882    ],
883    includes = ["."],
884    deps = [
885        ":headers",
886        ":uchar",
887        ":udata",
888    ],
889    local_defines = [
890        "U_COMMON_IMPLEMENTATION",
891    ],
892)
893
894cc_library(
895    name = "unifiedcache",
896    srcs = [
897        "unifiedcache.cpp",
898    ],
899    includes = ["."],
900    deps = [
901        ":headers",
902        ":platform",
903        ":uhash",
904    ],
905    local_defines = [
906        "U_COMMON_IMPLEMENTATION",
907    ],
908)
909
910cc_library(
911    name = "uniset_core",
912    srcs = [
913        "bmpset.cpp",
914        "unifilt.cpp",
915        "unifunct.cpp",
916        "uniset.cpp",
917        "unisetspan.cpp",
918    ],
919    includes = ["."],
920    deps = [
921        ":headers",
922        ":icu_utility",
923        ":patternprops",
924        ":uvector",
925    ],
926    local_defines = [
927        "U_COMMON_IMPLEMENTATION",
928    ],
929)
930
931cc_library(
932    name = "uniset_closure",
933    srcs = [
934        "uniset_closure.cpp",
935    ],
936    includes = ["."],
937    deps = [
938        ":headers",
939        ":uniset_core",
940        ":unistr_case_locale",
941        ":unistr_titlecase_brkiter",
942    ],
943    local_defines = [
944        "U_COMMON_IMPLEMENTATION",
945    ],
946)
947
948cc_library(
949    name = "uniset_props",
950    srcs = [
951        "uniset_props.cpp",
952        "ruleiter.cpp",
953    ],
954    includes = ["."],
955    deps = [
956        ":characterproperties",
957        ":headers",
958        ":parsepos",
959        ":propname",
960        ":resourcebundle",
961        ":unames",
962        ":uniset_core",
963        ":unistr_case",
964        ":uprops",
965    ],
966    local_defines = [
967        "U_COMMON_IMPLEMENTATION",
968    ],
969)
970
971cc_library(
972    name = "unistr_case",
973    srcs = [
974        "unistr_case.cpp",
975    ],
976    includes = ["."],
977    deps = [
978        ":headers",
979        ":ustring_case",
980    ],
981    local_defines = [
982        "U_COMMON_IMPLEMENTATION",
983    ],
984)
985
986cc_library(
987    name = "unistr_case_locale",
988    srcs = [
989        "unistr_case_locale.cpp",
990    ],
991    includes = ["."],
992    deps = [
993        ":headers",
994        ":unistr_case",
995        ":ustring_case_locale",
996    ],
997    local_defines = [
998        "U_COMMON_IMPLEMENTATION",
999    ],
1000)
1001
1002cc_library(
1003    name = "unistr_titlecase_brkiter",
1004    srcs = [
1005        "unistr_titlecase_brkiter.cpp",
1006    ],
1007    includes = ["."],
1008    deps = [
1009        ":headers",
1010        ":ustr_titlecase_brkiter",
1011    ],
1012    local_defines = [
1013        "U_COMMON_IMPLEMENTATION",
1014    ],
1015)
1016
1017cc_library(
1018    name = "uprops",
1019    srcs = [
1020        "uprops.cpp",
1021    ],
1022    includes = ["."],
1023    deps = [
1024        ":headers",
1025        ":emojiprops",
1026        ":loadednormalizer2",
1027        ":normalizer2",
1028        ":ubidi_props",
1029        ":ucase",
1030        ":uchar",
1031        ":unistr_case",
1032        ":ustring_case",
1033    ],
1034    local_defines = [
1035        "U_COMMON_IMPLEMENTATION",
1036    ],
1037)
1038
1039cc_library(
1040    name = "uscript_props",
1041    srcs = [
1042        "uscript_props.cpp",
1043    ],
1044    includes = ["."],
1045    deps = [
1046        ":headers",
1047        ":platform",
1048    ],
1049    local_defines = [
1050        "U_COMMON_IMPLEMENTATION",
1051    ],
1052)
1053
1054cc_library(
1055    name = "uset",
1056    srcs = [
1057        "uset.cpp",
1058    ],
1059    includes = ["."],
1060    deps = [
1061        ":headers",
1062        ":platform",
1063        ":uniset_core",
1064    ],
1065    local_defines = [
1066        "U_COMMON_IMPLEMENTATION",
1067    ],
1068)
1069
1070cc_library(
1071    name = "uset_props",
1072    srcs = [
1073        "uset_props.cpp",
1074    ],
1075    includes = ["."],
1076    deps = [
1077        ":headers",
1078        ":uniset_closure",
1079        ":uniset_core",
1080        ":uniset_props",
1081    ],
1082    local_defines = [
1083        "U_COMMON_IMPLEMENTATION",
1084    ],
1085)
1086
1087cc_library(
1088    name = "usetiter",
1089    srcs = [
1090        "usetiter.cpp",
1091    ],
1092    includes = ["."],
1093    deps = [
1094        ":headers",
1095        ":platform",
1096        ":uniset_core",
1097    ],
1098    local_defines = [
1099        "U_COMMON_IMPLEMENTATION",
1100    ],
1101)
1102
1103cc_library(
1104    name = "ustack",
1105    srcs = [
1106        "ustack.cpp",
1107    ],
1108    includes = ["."],
1109    deps = [
1110        ":headers",
1111        ":uvector",
1112    ],
1113    local_defines = [
1114        "U_COMMON_IMPLEMENTATION",
1115    ],
1116)
1117
1118cc_library(
1119    name = "ustr_titlecase_brkiter",
1120    srcs = [
1121        "ustr_titlecase_brkiter.cpp",
1122    ],
1123    includes = ["."],
1124    deps = [
1125        ":breakiterator",
1126        ":headers",
1127        ":ucase",
1128        ":ustring_case_locale",
1129    ],
1130    local_defines = [
1131        "U_COMMON_IMPLEMENTATION",
1132    ],
1133)
1134
1135cc_library(
1136    name = "ustring_case",
1137    srcs = [
1138        "ustrcase.cpp",
1139    ],
1140    includes = ["."],
1141    deps = [
1142        ":headers",
1143        ":ucase",
1144        ":uchar",
1145        ":edits",
1146    ],
1147    local_defines = [
1148        "U_COMMON_IMPLEMENTATION",
1149    ],
1150)
1151
1152cc_library(
1153    name = "ustring_case_locale",
1154    srcs = [
1155        "ustrcase_locale.cpp",
1156    ],
1157    includes = ["."],
1158    deps = [
1159        ":headers",
1160        ":resourcebundle",
1161        ":ustring_case",
1162    ],
1163    local_defines = [
1164        "U_COMMON_IMPLEMENTATION",
1165    ],
1166)
1167
1168cc_library(
1169    name = "utext",
1170    srcs = [
1171        "utext.cpp",
1172    ],
1173    includes = ["."],
1174    deps = [
1175        ":headers",
1176        ":ucase",
1177    ],
1178    local_defines = [
1179        "U_COMMON_IMPLEMENTATION",
1180    ],
1181)
1182
1183cc_library(
1184    name = "utrie_swap",
1185    srcs = [
1186        "utrie_swap.cpp",
1187    ],
1188    includes = ["."],
1189    deps = [
1190        ":headers",
1191        ":udata",
1192    ],
1193    local_defines = [
1194        "U_COMMON_IMPLEMENTATION",
1195    ],
1196)
1197
1198# This target depends on a header file that contains NFC/NFD normalization data.
1199# This header file is generated by a script (generate.sh) that invokes the gennorm2 binary.
1200# See the Unicode update change log (changes.txt).
1201cc_library(
1202    name = "normalizer2",
1203    srcs = [
1204        "norm2_nfc_data.h",  # generated by gennorm2
1205        "normalizer2.cpp",
1206        "normalizer2impl.cpp",
1207    ],
1208    includes = ["."],
1209    hdrs = [
1210        "normalizer2impl.h",
1211    ],
1212    deps = [
1213        ":headers",
1214    ],
1215    local_defines = [
1216        "U_COMMON_IMPLEMENTATION",
1217    ],
1218)
1219