• 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        "locmap.cpp",
607        "resbund.cpp",
608        "resource.cpp",
609        "uloc.cpp",
610        "uloc_tag.cpp",
611        "uloc_keytype.cpp",
612        "uresbund.cpp",
613        "uresdata.cpp",
614        "wintz.cpp",
615    ],
616    includes = ["."],
617    deps = [
618        ":bytesinkutil",
619        ":errorcode",
620        ":headers",
621        ":propname",
622        ":sort",
623        ":stringenumeration",
624        ":ucol_swp",
625        ":udata",
626        ":uhash",
627        ":uscript_props",
628        ":uvector",
629    ],
630    local_defines = [
631        "U_COMMON_IMPLEMENTATION",
632    ],
633)
634
635cc_library(
636    name = "schriter",
637    srcs = [
638        "schriter.cpp",
639        "uchriter.cpp",
640    ],
641    includes = ["."],
642    deps = [
643        ":chariter",
644        ":headers",
645    ],
646    local_defines = [
647        "U_COMMON_IMPLEMENTATION",
648    ],
649)
650
651cc_library(
652    name = "service_registration",
653    srcs = [
654        "locutil.cpp",
655        "serv.cpp",
656        "servlk.cpp",
657        "servlkf.cpp",
658        "servls.cpp",
659        "servnotf.cpp",
660        "servrbf.cpp",
661        "servslkf.cpp",
662    ],
663    includes = ["."],
664    deps = [
665        ":hashtable",
666        ":headers",
667        ":locale_display_names",
668        ":resourcebundle",
669        ":uvector",
670    ],
671    local_defines = [
672        "U_COMMON_IMPLEMENTATION",
673    ],
674)
675
676cc_library(
677    name = "stringenumeration",
678    srcs = [
679        "uenum.cpp",
680        "ustrenum.cpp",
681    ],
682    includes = ["."],
683    deps = [
684        ":headers",
685        ":platform",
686    ],
687    local_defines = [
688        "U_COMMON_IMPLEMENTATION",
689    ],
690)
691
692cc_library(
693    name = "ubidi_props",
694    srcs = [
695        "ubidi_props.cpp",
696        "ubidi_props_data.h",
697    ],
698    includes = ["."],
699    deps = [
700        ":headers",
701        ":utrie2",
702    ],
703    local_defines = [
704        "U_COMMON_IMPLEMENTATION",
705    ],
706)
707
708cc_library(
709    name = "ucase",
710    srcs = [
711        "ucase.cpp",
712        "ucase_props_data.h",
713    ],
714    includes = ["."],
715    deps = [
716        ":headers",
717        ":utrie2",
718    ],
719    local_defines = [
720        "U_COMMON_IMPLEMENTATION",
721    ],
722)
723
724cc_library(
725    name = "uchar",
726    srcs = [
727        "uchar.cpp",
728        "uchar_props_data.h",
729    ],
730    includes = ["."],
731    deps = [
732        ":headers",
733        ":utrie2",
734    ],
735    local_defines = [
736        "U_COMMON_IMPLEMENTATION",
737    ],
738)
739
740cc_library(
741    name = "emojiprops",
742    srcs = [
743        "emojiprops.cpp",
744        "emojiprops.h",
745    ],
746    includes = ["."],
747    deps = [
748        ":headers",
749        ":ucharstrie",
750        ":ucharstrieiterator",
751        ":ucptrie",
752        ":udata",
753    ],
754    local_defines = [
755        "U_COMMON_IMPLEMENTATION",
756    ],
757)
758
759cc_library(
760    name = "ucharstrie",
761    srcs = [
762        "ucharstrie.cpp",
763    ],
764    includes = ["."],
765    deps = [
766        ":headers",
767        ":platform",
768    ],
769    local_defines = [
770        "U_COMMON_IMPLEMENTATION",
771    ],
772)
773
774cc_library(
775    name = "ucharstriebuilder",
776    srcs = [
777        "ucharstriebuilder.cpp",
778    ],
779    includes = ["."],
780    deps = [
781        ":headers",
782        ":sort",
783        ":stringtriebuilder",
784        ":ucharstrie",
785    ],
786    local_defines = [
787        "U_COMMON_IMPLEMENTATION",
788    ],
789)
790
791cc_library(
792    name = "ucharstrieiterator",
793    srcs = [
794        "ucharstrieiterator.cpp",
795    ],
796    includes = ["."],
797    deps = [
798        ":headers",
799        ":ucharstrie",
800        ":uvector32",
801    ],
802    local_defines = [
803        "U_COMMON_IMPLEMENTATION",
804    ],
805)
806
807cc_library(
808    name = "ucol_swp",
809    srcs = [
810        "ucol_swp.cpp",
811    ],
812    includes = ["."],
813    deps = [
814        ":headers",
815        ":utrie_swap",
816    ],
817    local_defines = [
818        "U_COMMON_IMPLEMENTATION",
819    ],
820)
821
822cc_library(
823    name = "udata",
824    srcs = [
825        "restrace.cpp",
826        "ucmndata.cpp",
827        "udata.cpp",
828        "udatamem.cpp",
829        "umapfile.cpp",
830    ],
831    includes = ["."],
832    deps = [
833        ":headers",
834        ":icu_utility",
835        ":platform",
836        ":uhash",
837        "//icu4c/source/stubdata",
838    ],
839    local_defines = [
840        "U_COMMON_IMPLEMENTATION",
841    ],
842)
843
844cc_library(
845    name = "uiter",
846    srcs = [
847        "uiter.cpp",
848    ],
849    includes = ["."],
850    deps = [
851        ":headers",
852        ":platform",
853    ],
854    local_defines = [
855        "U_COMMON_IMPLEMENTATION",
856    ],
857)
858
859cc_library(
860    name = "ulist",
861    srcs = [
862        "ulist.cpp",
863    ],
864    includes = ["."],
865    deps = [
866        ":headers",
867        ":platform",
868    ],
869    local_defines = [
870        "U_COMMON_IMPLEMENTATION",
871    ],
872)
873
874cc_library(
875    name = "unames",
876    srcs = [
877        "unames.cpp",
878    ],
879    includes = ["."],
880    deps = [
881        ":headers",
882        ":uchar",
883        ":udata",
884    ],
885    local_defines = [
886        "U_COMMON_IMPLEMENTATION",
887    ],
888)
889
890cc_library(
891    name = "unifiedcache",
892    srcs = [
893        "unifiedcache.cpp",
894    ],
895    includes = ["."],
896    deps = [
897        ":headers",
898        ":platform",
899        ":uhash",
900    ],
901    local_defines = [
902        "U_COMMON_IMPLEMENTATION",
903    ],
904)
905
906cc_library(
907    name = "uniset_core",
908    srcs = [
909        "bmpset.cpp",
910        "unifilt.cpp",
911        "unifunct.cpp",
912        "uniset.cpp",
913        "unisetspan.cpp",
914    ],
915    includes = ["."],
916    deps = [
917        ":headers",
918        ":icu_utility",
919        ":patternprops",
920        ":uvector",
921    ],
922    local_defines = [
923        "U_COMMON_IMPLEMENTATION",
924    ],
925)
926
927cc_library(
928    name = "uniset_closure",
929    srcs = [
930        "uniset_closure.cpp",
931    ],
932    includes = ["."],
933    deps = [
934        ":headers",
935        ":uniset_core",
936        ":unistr_case_locale",
937        ":unistr_titlecase_brkiter",
938    ],
939    local_defines = [
940        "U_COMMON_IMPLEMENTATION",
941    ],
942)
943
944cc_library(
945    name = "uniset_props",
946    srcs = [
947        "uniset_props.cpp",
948        "ruleiter.cpp",
949    ],
950    includes = ["."],
951    deps = [
952        ":characterproperties",
953        ":headers",
954        ":parsepos",
955        ":propname",
956        ":resourcebundle",
957        ":unames",
958        ":uniset_core",
959        ":unistr_case",
960        ":uprops",
961    ],
962    local_defines = [
963        "U_COMMON_IMPLEMENTATION",
964    ],
965)
966
967cc_library(
968    name = "unistr_case",
969    srcs = [
970        "unistr_case.cpp",
971    ],
972    includes = ["."],
973    deps = [
974        ":headers",
975        ":ustring_case",
976    ],
977    local_defines = [
978        "U_COMMON_IMPLEMENTATION",
979    ],
980)
981
982cc_library(
983    name = "unistr_case_locale",
984    srcs = [
985        "unistr_case_locale.cpp",
986    ],
987    includes = ["."],
988    deps = [
989        ":headers",
990        ":unistr_case",
991        ":ustring_case_locale",
992    ],
993    local_defines = [
994        "U_COMMON_IMPLEMENTATION",
995    ],
996)
997
998cc_library(
999    name = "unistr_titlecase_brkiter",
1000    srcs = [
1001        "unistr_titlecase_brkiter.cpp",
1002    ],
1003    includes = ["."],
1004    deps = [
1005        ":headers",
1006        ":ustr_titlecase_brkiter",
1007    ],
1008    local_defines = [
1009        "U_COMMON_IMPLEMENTATION",
1010    ],
1011)
1012
1013cc_library(
1014    name = "uprops",
1015    srcs = [
1016        "uprops.cpp",
1017    ],
1018    includes = ["."],
1019    deps = [
1020        ":headers",
1021        ":emojiprops",
1022        ":loadednormalizer2",
1023        ":normalizer2",
1024        ":ubidi_props",
1025        ":ucase",
1026        ":uchar",
1027        ":unistr_case",
1028        ":ustring_case",
1029    ],
1030    local_defines = [
1031        "U_COMMON_IMPLEMENTATION",
1032    ],
1033)
1034
1035cc_library(
1036    name = "uscript_props",
1037    srcs = [
1038        "uscript_props.cpp",
1039    ],
1040    includes = ["."],
1041    deps = [
1042        ":headers",
1043        ":platform",
1044    ],
1045    local_defines = [
1046        "U_COMMON_IMPLEMENTATION",
1047    ],
1048)
1049
1050cc_library(
1051    name = "uset",
1052    srcs = [
1053        "uset.cpp",
1054    ],
1055    includes = ["."],
1056    deps = [
1057        ":headers",
1058        ":platform",
1059        ":uniset_core",
1060    ],
1061    local_defines = [
1062        "U_COMMON_IMPLEMENTATION",
1063    ],
1064)
1065
1066cc_library(
1067    name = "uset_props",
1068    srcs = [
1069        "uset_props.cpp",
1070    ],
1071    includes = ["."],
1072    deps = [
1073        ":headers",
1074        ":uniset_closure",
1075        ":uniset_core",
1076        ":uniset_props",
1077    ],
1078    local_defines = [
1079        "U_COMMON_IMPLEMENTATION",
1080    ],
1081)
1082
1083cc_library(
1084    name = "usetiter",
1085    srcs = [
1086        "usetiter.cpp",
1087    ],
1088    includes = ["."],
1089    deps = [
1090        ":headers",
1091        ":platform",
1092        ":uniset_core",
1093    ],
1094    local_defines = [
1095        "U_COMMON_IMPLEMENTATION",
1096    ],
1097)
1098
1099cc_library(
1100    name = "ustack",
1101    srcs = [
1102        "ustack.cpp",
1103    ],
1104    includes = ["."],
1105    deps = [
1106        ":headers",
1107        ":uvector",
1108    ],
1109    local_defines = [
1110        "U_COMMON_IMPLEMENTATION",
1111    ],
1112)
1113
1114cc_library(
1115    name = "ustr_titlecase_brkiter",
1116    srcs = [
1117        "ustr_titlecase_brkiter.cpp",
1118    ],
1119    includes = ["."],
1120    deps = [
1121        ":breakiterator",
1122        ":headers",
1123        ":ucase",
1124        ":ustring_case_locale",
1125    ],
1126    local_defines = [
1127        "U_COMMON_IMPLEMENTATION",
1128    ],
1129)
1130
1131cc_library(
1132    name = "ustring_case",
1133    srcs = [
1134        "ustrcase.cpp",
1135    ],
1136    includes = ["."],
1137    deps = [
1138        ":headers",
1139        ":ucase",
1140        ":uchar",
1141        ":edits",
1142    ],
1143    local_defines = [
1144        "U_COMMON_IMPLEMENTATION",
1145    ],
1146)
1147
1148cc_library(
1149    name = "ustring_case_locale",
1150    srcs = [
1151        "ustrcase_locale.cpp",
1152    ],
1153    includes = ["."],
1154    deps = [
1155        ":headers",
1156        ":resourcebundle",
1157        ":ustring_case",
1158    ],
1159    local_defines = [
1160        "U_COMMON_IMPLEMENTATION",
1161    ],
1162)
1163
1164cc_library(
1165    name = "utext",
1166    srcs = [
1167        "utext.cpp",
1168    ],
1169    includes = ["."],
1170    deps = [
1171        ":headers",
1172        ":ucase",
1173    ],
1174    local_defines = [
1175        "U_COMMON_IMPLEMENTATION",
1176    ],
1177)
1178
1179cc_library(
1180    name = "utrie_swap",
1181    srcs = [
1182        "utrie_swap.cpp",
1183    ],
1184    includes = ["."],
1185    deps = [
1186        ":headers",
1187        ":udata",
1188    ],
1189    local_defines = [
1190        "U_COMMON_IMPLEMENTATION",
1191    ],
1192)
1193
1194# This target depends on a header file that contains NFC/NFD normalization data.
1195# This header file is generated by a script (generate.sh) that invokes the gennorm2 binary.
1196# See the Unicode update change log (changes.txt).
1197cc_library(
1198    name = "normalizer2",
1199    srcs = [
1200        "norm2_nfc_data.h",  # generated by gennorm2
1201        "normalizer2.cpp",
1202        "normalizer2impl.cpp",
1203    ],
1204    includes = ["."],
1205    hdrs = [
1206        "normalizer2impl.h",
1207    ],
1208    deps = [
1209        ":headers",
1210    ],
1211    local_defines = [
1212        "U_COMMON_IMPLEMENTATION",
1213    ],
1214)
1215