• 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        "rbbi.cpp",
346        "rbbi_cache.cpp",
347        "rbbidata.cpp",
348        "rbbinode.cpp",
349        "rbbirb.cpp",
350        "rbbiscan.cpp",
351        "rbbisetb.cpp",
352        "rbbistbl.cpp",
353        "rbbitblb.cpp",
354        "ubrk.cpp",
355    ],
356    includes = ["."],
357    deps = [
358        ":bytestrie",
359        ":headers",
360        ":normlzr",
361        ":resourcebundle",
362        ":schriter",
363        ":service_registration",
364        ":ucharstrie",
365        ":ucharstriebuilder",
366        ":uhash",
367        ":uniset_core",
368        ":uniset_props",
369        ":ustack",
370        ":utext",
371        ":utrie2_builder",
372        ":uvector32",
373    ],
374    local_defines = [
375        "U_COMMON_IMPLEMENTATION",
376    ],
377)
378
379cc_library(
380    name = "bytesinkutil",
381    srcs = [
382        "bytesinkutil.cpp",
383    ],
384    includes = ["."],
385    deps = [
386        ":headers",
387        ":bytestream",
388        ":edits",
389    ],
390    local_defines = [
391        "U_COMMON_IMPLEMENTATION",
392    ],
393)
394
395cc_library(
396    name = "bytestream",
397    srcs = [
398        "bytestream.cpp",
399    ],
400    includes = ["."],
401    deps = [
402        ":headers",
403        ":platform",
404    ],
405    local_defines = [
406        "U_COMMON_IMPLEMENTATION",
407    ],
408)
409
410cc_library(
411    name = "canonical_iterator",
412    srcs = [
413        "caniter.cpp",
414    ],
415    deps = [
416        ":normalizer2",
417        ":usetiter",
418    ],
419    local_defines = [
420        "U_COMMON_IMPLEMENTATION",
421    ],
422)
423
424cc_library(
425    name = "characterproperties",
426    srcs = [
427        "characterproperties.cpp",
428    ],
429    includes = ["."],
430    deps = [
431        ":headers",
432        ":emojiprops",
433        ":ucptrie",
434        ":umutablecptrie",
435        ":uniset_core",
436        ":uprops",
437    ],
438    local_defines = [
439        "U_COMMON_IMPLEMENTATION",
440    ],
441)
442
443cc_library(
444    name = "chariter",
445    srcs = [
446        "chariter.cpp",
447    ],
448    includes = ["."],
449    deps = [
450        ":headers",
451        ":platform",
452    ],
453    local_defines = [
454        "U_COMMON_IMPLEMENTATION",
455    ],
456)
457
458cc_library(
459    name = "edits",
460    srcs = [
461        "edits.cpp",
462    ],
463    includes = ["."],
464    deps = [
465        ":headers",
466        ":icu_utility",
467        ":platform",
468    ],
469    local_defines = [
470        "U_COMMON_IMPLEMENTATION",
471    ],
472)
473
474cc_library(
475    name = "filterednormalizer2",
476    srcs = [
477        "filterednormalizer2.cpp",
478    ],
479    includes = ["."],
480    deps = [
481        ":headers",
482        ":normalizer2",
483    ],
484    local_defines = [
485        "U_COMMON_IMPLEMENTATION",
486    ],
487)
488
489cc_library(
490    name = "hashtable",
491    srcs = [
492        "uhash_us.cpp",
493    ],
494    includes = ["."],
495    deps = [
496        ":headers",
497        ":uhash",
498    ],
499    local_defines = [
500        "U_COMMON_IMPLEMENTATION",
501    ],
502)
503
504cc_library(
505    name = "icu_utility",
506    srcs = [
507        "util.cpp",
508    ],
509    includes = ["."],
510    deps = [
511        ":headers",
512        ":patternprops",
513        ":platform",
514    ],
515    local_defines = [
516        "U_COMMON_IMPLEMENTATION",
517    ],
518)
519
520cc_library(
521    name = "loadednormalizer2",
522    srcs = [
523        "loadednormalizer2impl.cpp",
524    ],
525    includes = ["."],
526    deps = [
527        ":headers",
528        ":normalizer2",
529    ],
530    local_defines = [
531        "U_COMMON_IMPLEMENTATION",
532    ],
533)
534
535cc_library(
536    name = "locale_display_names",
537    srcs = [
538        "locdispnames.cpp",
539    ],
540    includes = ["."],
541    deps = [
542        ":headers",
543        ":locresdata",
544    ],
545    local_defines = [
546        "U_COMMON_IMPLEMENTATION",
547    ],
548)
549
550cc_library(
551    name = "locresdata",
552    srcs = [
553        "locresdata.cpp",
554    ],
555    includes = ["."],
556    deps = [
557        ":headers",
558        ":resourcebundle",
559    ],
560    local_defines = [
561        "U_COMMON_IMPLEMENTATION",
562    ],
563)
564
565cc_library(
566    name = "normlzr",
567    srcs = [
568        "normlzr.cpp",
569    ],
570    includes = ["."],
571    deps = [
572        ":filterednormalizer2",
573        ":headers",
574        ":schriter",
575        ":uniset_props",
576    ],
577    local_defines = [
578        "U_COMMON_IMPLEMENTATION",
579    ],
580)
581
582cc_library(
583    name = "parsepos",
584    srcs = [
585        "parsepos.cpp",
586    ],
587    includes = ["."],
588    deps = [
589        ":headers",
590        ":platform",
591    ],
592    local_defines = [
593        "U_COMMON_IMPLEMENTATION",
594    ],
595)
596
597cc_library(
598    name = "resourcebundle",
599    srcs = [
600        "localebuilder.cpp",
601        "locavailable.cpp",
602        "locbased.cpp",
603        "locid.cpp",
604        "loclikely.cpp",
605        "locmap.cpp",
606        "resbund.cpp",
607        "resource.cpp",
608        "uloc.cpp",
609        "uloc_tag.cpp",
610        "uloc_keytype.cpp",
611        "uresbund.cpp",
612        "uresdata.cpp",
613        "wintz.cpp",
614    ],
615    includes = ["."],
616    deps = [
617        ":bytesinkutil",
618        ":errorcode",
619        ":headers",
620        ":propname",
621        ":sort",
622        ":stringenumeration",
623        ":ucol_swp",
624        ":udata",
625        ":uhash",
626        ":uscript_props",
627        ":uvector",
628    ],
629    local_defines = [
630        "U_COMMON_IMPLEMENTATION",
631    ],
632)
633
634cc_library(
635    name = "schriter",
636    srcs = [
637        "schriter.cpp",
638        "uchriter.cpp",
639    ],
640    includes = ["."],
641    deps = [
642        ":chariter",
643        ":headers",
644    ],
645    local_defines = [
646        "U_COMMON_IMPLEMENTATION",
647    ],
648)
649
650cc_library(
651    name = "service_registration",
652    srcs = [
653        "locutil.cpp",
654        "serv.cpp",
655        "servlk.cpp",
656        "servlkf.cpp",
657        "servls.cpp",
658        "servnotf.cpp",
659        "servrbf.cpp",
660        "servslkf.cpp",
661    ],
662    includes = ["."],
663    deps = [
664        ":hashtable",
665        ":headers",
666        ":locale_display_names",
667        ":resourcebundle",
668        ":uvector",
669    ],
670    local_defines = [
671        "U_COMMON_IMPLEMENTATION",
672    ],
673)
674
675cc_library(
676    name = "stringenumeration",
677    srcs = [
678        "uenum.cpp",
679        "ustrenum.cpp",
680    ],
681    includes = ["."],
682    deps = [
683        ":headers",
684        ":platform",
685    ],
686    local_defines = [
687        "U_COMMON_IMPLEMENTATION",
688    ],
689)
690
691cc_library(
692    name = "ubidi_props",
693    srcs = [
694        "ubidi_props.cpp",
695        "ubidi_props_data.h",
696    ],
697    includes = ["."],
698    deps = [
699        ":headers",
700        ":utrie2",
701    ],
702    local_defines = [
703        "U_COMMON_IMPLEMENTATION",
704    ],
705)
706
707cc_library(
708    name = "ucase",
709    srcs = [
710        "ucase.cpp",
711        "ucase_props_data.h",
712    ],
713    includes = ["."],
714    deps = [
715        ":headers",
716        ":utrie2",
717    ],
718    local_defines = [
719        "U_COMMON_IMPLEMENTATION",
720    ],
721)
722
723cc_library(
724    name = "uchar",
725    srcs = [
726        "uchar.cpp",
727        "uchar_props_data.h",
728    ],
729    includes = ["."],
730    deps = [
731        ":headers",
732        ":utrie2",
733    ],
734    local_defines = [
735        "U_COMMON_IMPLEMENTATION",
736    ],
737)
738
739cc_library(
740    name = "emojiprops",
741    srcs = [
742        "emojiprops.cpp",
743        "emojiprops.h",
744    ],
745    includes = ["."],
746    deps = [
747        ":headers",
748        ":ucharstrie",
749        ":ucharstrieiterator",
750        ":ucptrie",
751        ":udata",
752    ],
753    local_defines = [
754        "U_COMMON_IMPLEMENTATION",
755    ],
756)
757
758cc_library(
759    name = "ucharstrie",
760    srcs = [
761        "ucharstrie.cpp",
762    ],
763    includes = ["."],
764    deps = [
765        ":headers",
766        ":platform",
767    ],
768    local_defines = [
769        "U_COMMON_IMPLEMENTATION",
770    ],
771)
772
773cc_library(
774    name = "ucharstriebuilder",
775    srcs = [
776        "ucharstriebuilder.cpp",
777    ],
778    includes = ["."],
779    deps = [
780        ":headers",
781        ":sort",
782        ":stringtriebuilder",
783        ":ucharstrie",
784    ],
785    local_defines = [
786        "U_COMMON_IMPLEMENTATION",
787    ],
788)
789
790cc_library(
791    name = "ucharstrieiterator",
792    srcs = [
793        "ucharstrieiterator.cpp",
794    ],
795    includes = ["."],
796    deps = [
797        ":headers",
798        ":ucharstrie",
799        ":uvector32",
800    ],
801    local_defines = [
802        "U_COMMON_IMPLEMENTATION",
803    ],
804)
805
806cc_library(
807    name = "ucol_swp",
808    srcs = [
809        "ucol_swp.cpp",
810    ],
811    includes = ["."],
812    deps = [
813        ":headers",
814        ":utrie_swap",
815    ],
816    local_defines = [
817        "U_COMMON_IMPLEMENTATION",
818    ],
819)
820
821cc_library(
822    name = "udata",
823    srcs = [
824        "restrace.cpp",
825        "ucmndata.cpp",
826        "udata.cpp",
827        "udatamem.cpp",
828        "umapfile.cpp",
829    ],
830    includes = ["."],
831    deps = [
832        ":headers",
833        ":icu_utility",
834        ":platform",
835        ":uhash",
836        "//icu4c/source/stubdata",
837    ],
838    local_defines = [
839        "U_COMMON_IMPLEMENTATION",
840    ],
841)
842
843cc_library(
844    name = "uiter",
845    srcs = [
846        "uiter.cpp",
847    ],
848    includes = ["."],
849    deps = [
850        ":headers",
851        ":platform",
852    ],
853    local_defines = [
854        "U_COMMON_IMPLEMENTATION",
855    ],
856)
857
858cc_library(
859    name = "ulist",
860    srcs = [
861        "ulist.cpp",
862    ],
863    includes = ["."],
864    deps = [
865        ":headers",
866        ":platform",
867    ],
868    local_defines = [
869        "U_COMMON_IMPLEMENTATION",
870    ],
871)
872
873cc_library(
874    name = "unames",
875    srcs = [
876        "unames.cpp",
877    ],
878    includes = ["."],
879    deps = [
880        ":headers",
881        ":uchar",
882        ":udata",
883    ],
884    local_defines = [
885        "U_COMMON_IMPLEMENTATION",
886    ],
887)
888
889cc_library(
890    name = "unifiedcache",
891    srcs = [
892        "unifiedcache.cpp",
893    ],
894    includes = ["."],
895    deps = [
896        ":headers",
897        ":platform",
898        ":uhash",
899    ],
900    local_defines = [
901        "U_COMMON_IMPLEMENTATION",
902    ],
903)
904
905cc_library(
906    name = "uniset_core",
907    srcs = [
908        "bmpset.cpp",
909        "unifilt.cpp",
910        "unifunct.cpp",
911        "uniset.cpp",
912        "unisetspan.cpp",
913    ],
914    includes = ["."],
915    deps = [
916        ":headers",
917        ":icu_utility",
918        ":patternprops",
919        ":uvector",
920    ],
921    local_defines = [
922        "U_COMMON_IMPLEMENTATION",
923    ],
924)
925
926cc_library(
927    name = "uniset_closure",
928    srcs = [
929        "uniset_closure.cpp",
930    ],
931    includes = ["."],
932    deps = [
933        ":headers",
934        ":uniset_core",
935        ":unistr_case_locale",
936        ":unistr_titlecase_brkiter",
937    ],
938    local_defines = [
939        "U_COMMON_IMPLEMENTATION",
940    ],
941)
942
943cc_library(
944    name = "uniset_props",
945    srcs = [
946        "uniset_props.cpp",
947        "ruleiter.cpp",
948    ],
949    includes = ["."],
950    deps = [
951        ":characterproperties",
952        ":headers",
953        ":parsepos",
954        ":propname",
955        ":resourcebundle",
956        ":unames",
957        ":uniset_core",
958        ":unistr_case",
959        ":uprops",
960    ],
961    local_defines = [
962        "U_COMMON_IMPLEMENTATION",
963    ],
964)
965
966cc_library(
967    name = "unistr_case",
968    srcs = [
969        "unistr_case.cpp",
970    ],
971    includes = ["."],
972    deps = [
973        ":headers",
974        ":ustring_case",
975    ],
976    local_defines = [
977        "U_COMMON_IMPLEMENTATION",
978    ],
979)
980
981cc_library(
982    name = "unistr_case_locale",
983    srcs = [
984        "unistr_case_locale.cpp",
985    ],
986    includes = ["."],
987    deps = [
988        ":headers",
989        ":unistr_case",
990        ":ustring_case_locale",
991    ],
992    local_defines = [
993        "U_COMMON_IMPLEMENTATION",
994    ],
995)
996
997cc_library(
998    name = "unistr_titlecase_brkiter",
999    srcs = [
1000        "unistr_titlecase_brkiter.cpp",
1001    ],
1002    includes = ["."],
1003    deps = [
1004        ":headers",
1005        ":ustr_titlecase_brkiter",
1006    ],
1007    local_defines = [
1008        "U_COMMON_IMPLEMENTATION",
1009    ],
1010)
1011
1012cc_library(
1013    name = "uprops",
1014    srcs = [
1015        "uprops.cpp",
1016    ],
1017    includes = ["."],
1018    deps = [
1019        ":headers",
1020        ":emojiprops",
1021        ":loadednormalizer2",
1022        ":normalizer2",
1023        ":ubidi_props",
1024        ":ucase",
1025        ":uchar",
1026        ":unistr_case",
1027        ":ustring_case",
1028    ],
1029    local_defines = [
1030        "U_COMMON_IMPLEMENTATION",
1031    ],
1032)
1033
1034cc_library(
1035    name = "uscript_props",
1036    srcs = [
1037        "uscript_props.cpp",
1038    ],
1039    includes = ["."],
1040    deps = [
1041        ":headers",
1042        ":platform",
1043    ],
1044    local_defines = [
1045        "U_COMMON_IMPLEMENTATION",
1046    ],
1047)
1048
1049cc_library(
1050    name = "uset",
1051    srcs = [
1052        "uset.cpp",
1053    ],
1054    includes = ["."],
1055    deps = [
1056        ":headers",
1057        ":platform",
1058        ":uniset_core",
1059    ],
1060    local_defines = [
1061        "U_COMMON_IMPLEMENTATION",
1062    ],
1063)
1064
1065cc_library(
1066    name = "uset_props",
1067    srcs = [
1068        "uset_props.cpp",
1069    ],
1070    includes = ["."],
1071    deps = [
1072        ":headers",
1073        ":uniset_closure",
1074        ":uniset_core",
1075        ":uniset_props",
1076    ],
1077    local_defines = [
1078        "U_COMMON_IMPLEMENTATION",
1079    ],
1080)
1081
1082cc_library(
1083    name = "usetiter",
1084    srcs = [
1085        "usetiter.cpp",
1086    ],
1087    includes = ["."],
1088    deps = [
1089        ":headers",
1090        ":platform",
1091        ":uniset_core",
1092    ],
1093    local_defines = [
1094        "U_COMMON_IMPLEMENTATION",
1095    ],
1096)
1097
1098cc_library(
1099    name = "ustack",
1100    srcs = [
1101        "ustack.cpp",
1102    ],
1103    includes = ["."],
1104    deps = [
1105        ":headers",
1106        ":uvector",
1107    ],
1108    local_defines = [
1109        "U_COMMON_IMPLEMENTATION",
1110    ],
1111)
1112
1113cc_library(
1114    name = "ustr_titlecase_brkiter",
1115    srcs = [
1116        "ustr_titlecase_brkiter.cpp",
1117    ],
1118    includes = ["."],
1119    deps = [
1120        ":breakiterator",
1121        ":headers",
1122        ":ucase",
1123        ":ustring_case_locale",
1124    ],
1125    local_defines = [
1126        "U_COMMON_IMPLEMENTATION",
1127    ],
1128)
1129
1130cc_library(
1131    name = "ustring_case",
1132    srcs = [
1133        "ustrcase.cpp",
1134    ],
1135    includes = ["."],
1136    deps = [
1137        ":headers",
1138        ":ucase",
1139        ":uchar",
1140        ":edits",
1141    ],
1142    local_defines = [
1143        "U_COMMON_IMPLEMENTATION",
1144    ],
1145)
1146
1147cc_library(
1148    name = "ustring_case_locale",
1149    srcs = [
1150        "ustrcase_locale.cpp",
1151    ],
1152    includes = ["."],
1153    deps = [
1154        ":headers",
1155        ":resourcebundle",
1156        ":ustring_case",
1157    ],
1158    local_defines = [
1159        "U_COMMON_IMPLEMENTATION",
1160    ],
1161)
1162
1163cc_library(
1164    name = "utext",
1165    srcs = [
1166        "utext.cpp",
1167    ],
1168    includes = ["."],
1169    deps = [
1170        ":headers",
1171        ":ucase",
1172    ],
1173    local_defines = [
1174        "U_COMMON_IMPLEMENTATION",
1175    ],
1176)
1177
1178cc_library(
1179    name = "utrie_swap",
1180    srcs = [
1181        "utrie_swap.cpp",
1182    ],
1183    includes = ["."],
1184    deps = [
1185        ":headers",
1186        ":udata",
1187    ],
1188    local_defines = [
1189        "U_COMMON_IMPLEMENTATION",
1190    ],
1191)
1192
1193# This target depends on a header file that contains NFC/NFD normalization data.
1194# This header file is generated by a script (generate.sh) that invokes the gennorm2 binary.
1195# See the Unicode update change log (changes.txt).
1196cc_library(
1197    name = "normalizer2",
1198    srcs = [
1199        "norm2_nfc_data.h",  # generated by gennorm2
1200        "normalizer2.cpp",
1201        "normalizer2impl.cpp",
1202    ],
1203    includes = ["."],
1204    hdrs = [
1205        "normalizer2impl.h",
1206    ],
1207    deps = [
1208        ":headers",
1209    ],
1210    local_defines = [
1211        "U_COMMON_IMPLEMENTATION",
1212    ],
1213)
1214