]> git.saurik.com Git - apple/icu.git/blame - icuSources/test/depstest/dependencies.txt
ICU-66108.tar.gz
[apple/icu.git] / icuSources / test / depstest / dependencies.txt
CommitLineData
b331163b 1# -*- icu-dependencies -*-
f3c0d7a5
A
2# Copyright (C) 2016 and later: Unicode, Inc. and others.
3# License & terms of use: http://www.unicode.org/copyright.html
2ca993e8 4# Copyright (C) 2011-2016, International Business Machines
4388f060
A
5# Corporation and others. All Rights Reserved.
6#
7# file name: dependencies.txt
8#
9# created on: 2011may26
10# created by: Markus W. Scherer
57a6839d
A
11#
12# See http://site.icu-project.org/processes/release/tasks/healthy-code#TOC-Check-library-dependencies
4388f060
A
13
14# Standard library symbols used by ICU --------------------------------------- #
15
16system_symbols:
17 deps
18 # C
0f5d89e8
A
19 PIC system_misc system_debug malloc_functions ubsan
20 c_strings c_string_formatting
21 int_functions floating_point trigonometry
4388f060 22 stdlib_qsort
3d1f044b 23 system_locale
4388f060
A
24 stdio_input stdio_output file_io readlink_function dir_io mmap_functions dlfcn
25 # C++
26 cplusplus iostream
3d1f044b 27 std_mutex
4388f060
A
28
29group: PIC
30 # Position-Independent Code (-fPIC) requires a Global Offset Table.
31 _GLOBAL_OFFSET_TABLE_
32
0f5d89e8
A
33group: system_misc
34 abort
35
4388f060
A
36group: system_debug
37 __assert_fail __stack_chk_fail
38
39group: malloc_functions
40 free malloc realloc
41
3d1f044b
A
42group: std_mutex
43 std::condition_variable::notify_one()
44 std::condition_variable::wait(std::unique_lock<std::mutex>&)
45 std::condition_variable::notify_all()
46 std::condition_variable::condition_variable()
47 std::condition_variable::~condition_variable()
48 std::condition_variable_any::condition_variable_any()
49 std::condition_variable_any::~condition_variable_any()
50
0f5d89e8
A
51group: ubsan
52 # UBSan=UndefinedBehaviorSanitizer, clang -fsanitize=bounds
53 __ubsan_handle_out_of_bounds
54
4388f060 55group: c_strings
51004dcb 56 isspace isdigit
4388f060
A
57 __ctype_b_loc # for <ctype.h>
58 # We must not use tolower and toupper because they are system-locale-sensitive (Turkish i).
59 strlen strchr strrchr strstr strcmp strncmp strcpy strncpy strcat strncat
3d1f044b 60 memchr memcmp memcpy memmove memset
4388f060
A
61 # Additional symbols in an optimized build.
62 __strcpy_chk __strncpy_chk __strcat_chk __strncat_chk
51004dcb 63 __rawmemchr __memcpy_chk __memmove_chk __memset_chk
4388f060
A
64
65group: c_string_formatting
f3c0d7a5 66 atoi atol strtod strtod_l strtol strtoul
0f5d89e8 67 sprintf snprintf
4388f060
A
68 # Additional symbols in an optimized build.
69 __sprintf_chk
70
0f5d89e8
A
71group: int_functions
72 div
73
4388f060 74group: floating_point
0f5d89e8 75 abs fabs floor ceil modf fmod log pow round sqrt trunc
4388f060
A
76
77group: trigonometry
78 acos asin atan atan2 cos sin tan
79 # Additional symbols in an optimized build.
80 sincos
81
82group: stdlib_qsort
83 qsort
84
4388f060
A
85group: system_locale
86 getenv
f3c0d7a5 87 nl_langinfo setlocale newlocale freelocale
4388f060
A
88 gettimeofday localtime_r tzname tzset __timezone
89
90group: stdio_input
91 fopen fclose fgets fread fseek ftell rewind feof fileno
92 # Additional symbols in an optimized build.
340931cb 93 __fgets_chk __fread_chk fread_unlocked
4388f060
A
94
95group: stdio_output
96 fflush fwrite
97 stdout
98
99group: file_io
100 open close stat
101 # Additional symbols in an optimized build.
102 __xstat
103
104group: readlink_function
105 readlink # putil.cpp uprv_tzname() calls this in a hack to get the time zone name
106
107group: dir_io
108 opendir closedir readdir # for a hack to get the time zone name
109
110group: mmap_functions # for memory-mapped data loading
111 mmap munmap
112
113group: dlfcn
114 dlopen dlclose dlsym # called by putil.o only for icuplug.o
115
116group: cplusplus
117 __dynamic_cast
118 # The compiler generates references to the global operator delete
119 # even when no code actually uses it.
120 # ICU must not _use_ the global operator delete.
121 "operator delete(void*)"
122 # ICU also must not use the global operator new.
123 # "operator new[](unsigned long)"
51004dcb 124
4388f060
A
125 # _Unwind_Resume is related to exceptions:
126 # "A call to this routine is inserted as the end of a landing pad that performs cleanup,
127 # but does not resume normal execution. It causes unwinding to proceed further."
128 # (Linux Standard Base Specification 1.3)
129 # Even though ICU does not actually use (nor handle) exceptions.
130 _Unwind_Resume
51004dcb
A
131 # std::terminate() looks similar to _Unwind_Resume:
132 # "Calls the current terminate handler."
133 std::terminate()
4388f060
A
134
135group: iostream
136 "std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate)"
137 "std::basic_ios<char, std::char_traits<char> >::eof() const"
138 "std::basic_ios<char, std::char_traits<char> >::fail() const"
139 "std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)"
0f5d89e8
A
140 std::ios_base::Init::Init()
141 std::ios_base::Init::~Init()
4388f060
A
142 std::istream::get()
143 std::istream::putback(char)
144 # Additional symbols in an optimized build.
145 "std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)"
146
147# ICU common library --------------------------------------------------------- #
148
149library: stubdata
150 stubdata.o # Exports icudt48_dat.
151
152library: common
153 # All files in the common library are listed in its dependencies.
154 deps
155 # Libraries and groups that the common library depends on.
340931cb 156 localedata
2ca993e8 157 pluralmap
4388f060
A
158 date_interval
159 breakiterator
b331163b 160 uts46 filterednormalizer2 normalizer2 loadednormalizer2 canonical_iterator
57a6839d 161 normlzr unormcmp unorm
4388f060
A
162 idna2003 stringprep
163 stringenumeration
b331163b 164 unistr_props unistr_case unistr_case_locale unistr_titlecase_brkiter unistr_cnv
2ca993e8 165 cstr
4388f060 166 uniset_core uniset_props uniset_closure usetiter uset uset_props
0f5d89e8 167 static_unicode_sets
f3c0d7a5 168 uiter edits
4388f060 169 ucasemap ucasemap_titlecase_brkiter script_runs
3d1f044b 170 uprops ubidi_props ucase uscript uscript_props characterproperties
f3c0d7a5 171 ubidi ushape ubiditransform
4388f060 172 resourcebundle service_registration resbund_cnv ures_cnv icudataver ucat
2ca993e8
A
173 currency
174 locale_display_names2
4388f060 175 conversion converter_selector ucnv_set ucnvdisp
2ca993e8 176 messagepattern simpleformatter
4388f060
A
177 icu_utility icu_utility_with_props
178 ustr_wcs
b331163b 179 unifiedcache
4388f060
A
180 ucharstriebuilder ucharstrieiterator
181 bytestriebuilder bytestrieiterator
182 hashtable uhash uvector uvector32 uvector64 ulist
3d1f044b 183 propsvec utrie2 utrie2_builder ucptrie umutablecptrie utrie_swap
4388f060
A
184 sort
185 uinit utypes errorcode
186 icuplug
187 platform
340931cb
A
188 localebuilder localematcher
189
190group: localedata
191 # TODO: Apple moved this to common
192 ulocdata.o
193 deps
194 uniset_props resourcebundle
195 uset_props # TODO: change to using C++ UnicodeSet, remove this dependency
4388f060 196
2ca993e8
A
197group: pluralmap
198 # TODO: Move to i18n library, ticket #11926.
199 pluralmap.o
200 deps
201 platform
202
4388f060
A
203group: date_interval # class DateInterval
204 dtintrv.o
205 deps
206 platform
207
208group: breakiterator
209 # We could try to split off a breakiterator_builder group,
210 # but we still need uniset_props for code like in the ThaiBreakEngine constructor
211 # which does
212 # fThaiWordSet.applyPattern(UNICODE_STRING_SIMPLE("[[:Thai:]&[:LineBreak=SA:]]"), status)
213 brkiter.o brkeng.o ubrk.o
214 rbbi.o rbbinode.o rbbiscan.o rbbisetb.o rbbistbl.o rbbitblb.o
0f5d89e8 215 rbbidata.o rbbirb.o rbbi_cache.o
51004dcb 216 dictionarydata.o dictbe.o
2ca993e8
A
217 # BreakIterator::makeInstance() factory implementation makes for circular dependency
218 # between BreakIterator base and FilteredBreakIteratorBuilder.
219 filteredbrk.o
4388f060
A
220 deps
221 resourcebundle service_registration
222 schriter utext uniset_core uniset_props
3d1f044b 223 uhash ustack utrie2_builder
51004dcb 224 ucharstrie bytestrie
2ca993e8 225 ucharstriebuilder # for filteredbrk.o
51004dcb 226 normlzr # for dictbe.o, should switch to Normalizer2
b331163b 227 uvector32 # for dictbe.o
340931cb 228 localedata # for rbbi.o
4388f060
A
229
230group: unormcmp # unorm_compare()
231 unormcmp.o
232 deps
233 filterednormalizer2
234 uniset_props # for uniset_getUnicode32Instance()
235 ucase
236
4388f060
A
237group: unorm # old normalization C API
238 unorm.o
239 deps
240 filterednormalizer2
241 uniset_props # for uniset_getUnicode32Instance()
242 uiter
243
244group: normlzr # old Normalizer C++ class
245 normlzr.o
246 deps
247 filterednormalizer2
248 uniset_props # for uniset_getUnicode32Instance()
249 schriter
250
251group: uts46
252 uts46.o
253 deps
b331163b 254 normalizer2 loadednormalizer2 punycode
4388f060
A
255 uchar # for u_charType() (via U_GET_GC_MASK(c))
256 ubidi_props # for u_charDirection() & ubidi_getJoiningType()
b331163b 257 bytestream
4388f060
A
258
259group: filterednormalizer2
260 filterednormalizer2.o
261 deps
262 normalizer2
263
264group: idna2003
265 uidna.o
266 deps
267 stringprep punycode
268
269group: stringprep
270 usprep.o
271 deps
272 unorm # could change to use filterednormalizer2 directly for Unicode 3.2 normalization
273 normalizer2
3d1f044b 274 ubidi_props utrie
4388f060
A
275
276group: canonical_iterator
277 caniter.o
278 deps
279 normalizer2 usetiter
280
b331163b
A
281group: loadednormalizer2
282 loadednormalizer2impl.o
283 deps
284 normalizer2
285
4388f060
A
286group: normalizer2
287 normalizer2.o
288 normalizer2impl.o
289 deps
290 uniset_core
0f5d89e8 291 bytestream bytesinkutil # for UTF-8 output
3d1f044b
A
292 umutablecptrie # for building CanonIterData & FCD
293 utrie_swap # TODO(ICU-20170): move unorm2_swap() to a separate file
4388f060
A
294 uvector # for building CanonIterData
295 uhash # for the instance cache
296 udata
297
298group: punycode
299 punycode.o
300 deps
301 platform
302
0f5d89e8
A
303group: static_unicode_sets
304 static_unicode_sets.o
305 deps
306 resourcebundle uniset_props
307
4388f060
A
308group: uset_props
309 uset_props.o
310 deps
311 uniset_closure uniset_props uniset_core
312
313group: uset
314 uset.o
315 deps
316 uniset_core
317
318group: uniset_closure
319 uniset_closure.o
320 deps
321 uniset_core unistr_case_locale unistr_titlecase_brkiter
322
323group: uniset_props
324 uniset_props.o ruleiter.o
325 deps
3d1f044b 326 uniset_core uprops unistr_case characterproperties
4388f060
A
327 parsepos
328 resourcebundle
329 propname unames
330
331group: parsepos
332 parsepos.o
333 deps
334 platform
335
336group: usetiter # UnicodeSetIterator
337 usetiter.o
338 deps
339 uniset_core
340
341group: uniset_core
342 unifilt.o unifunct.o
343 uniset.o bmpset.o unisetspan.o
344 deps
345 patternprops
b331163b 346 icu_utility
4388f060
A
347 uvector
348
349group: icu_utility_with_props
350 util_props.o
351 deps
352 icu_utility uchar ucase
353
354group: icu_utility
355 util.o
356 deps
b331163b 357 patternprops platform
4388f060
A
358
359group: utext
360 utext.o
361 deps
b331163b 362 ucase
4388f060
A
363
364group: stringenumeration
365 ustrenum.o uenum.o
366 deps
b331163b 367 platform
4388f060
A
368
369group: schriter
370 schriter.o
371 # The UCharCharacterIterator implements virtual void getText(UnicodeString& result)
372 # so it depends on UnicodeString, therefore it makes little sense to split
373 # schriter and uchriter into separate groups.
374 uchriter.o
375 deps
b331163b 376 chariter
4388f060
A
377
378group: chariter
379 chariter.o
380 deps
381 platform
382
383group: uiter
384 uiter.o
385 deps
386 platform
387
388group: unistr_cnv
389 unistr_cnv.o
390 deps
b331163b 391 conversion
4388f060 392
2ca993e8
A
393group: cstr
394 cstr.o
395 deps
396 unistr_cnv
397
4388f060
A
398group: uscript
399 uscript.o # uscript_getCode() accepts a locale ID and loads its script code data
400 deps
3d1f044b 401 propname resourcebundle
4388f060 402
51004dcb
A
403group: uscript_props # script metadata properties
404 uscript_props.o
405 deps
b331163b 406 platform
51004dcb 407
4388f060
A
408group: uprops
409 uprops.o
410 deps
b331163b 411 normalizer2 loadednormalizer2
4388f060
A
412 uchar
413 ubidi_props
414 unistr_case ustring_case # only for case folding
415 ucase
416
3d1f044b
A
417group: characterproperties
418 characterproperties.o
419 deps
420 uprops
421 uniset_core
422
4388f060
A
423group: propname
424 propname.o
425 deps
426 bytestrie
427
428group: unames
429 unames.o
430 deps
431 uchar udata
432
433group: script_runs
434 usc_impl.o
435 deps
436 uchar
437
438group: uchar
439 uchar.o
440 deps
441 utrie2
442
443group: messagepattern # for MessageFormat and tools
444 messagepattern.o
445 deps
b331163b 446 patternprops platform
4388f060 447
2ca993e8
A
448group: simpleformatter
449 simpleformatter.o
57a6839d 450 deps
b331163b 451 platform
57a6839d 452
4388f060
A
453group: patternprops
454 patternprops.o
455 deps
0f5d89e8 456 PIC ubsan
4388f060
A
457
458group: ushape
459 ushape.o
460 deps
461 ubidi_props
462
463group: ubidi
464 ubidi.o ubidiln.o ubidiwrt.o
465 deps
466 ubidi_props
467 uchar # for doWriteReverse() which uses IS_COMBINING(u_charType(c))
468
f3c0d7a5
A
469group: ubiditransform
470 ubiditransform.o
471 deps
472 ubidi ushape
473
4388f060
A
474group: ubidi_props
475 ubidi_props.o
476 deps
477 utrie2
478
479group: unistr_props
480 unistr_props.o
481 deps
b331163b 482 uchar platform
4388f060
A
483
484group: unistr_case_locale
485 unistr_case_locale.o
486 deps
487 unistr_case ustring_case_locale
488
489group: unistr_case
490 unistr_case.o
491 deps
4388f060
A
492 ustring_case
493
494group: unistr_titlecase_brkiter
495 unistr_titlecase_brkiter.o
496 deps
497 ustr_titlecase_brkiter
498
499group: ustr_titlecase_brkiter
500 ustr_titlecase_brkiter.o
501 deps
502 breakiterator
503 ustring_case_locale ucase
504
f3c0d7a5
A
505group: edits
506 edits.o
507 deps
0f5d89e8
A
508 # Edits::Iterator::toString() calls ICU_Utility::appendNumber()
509 icu_utility
f3c0d7a5
A
510 platform
511
4388f060
A
512group: ucasemap_titlecase_brkiter
513 ucasemap_titlecase_brkiter.o
514 deps
515 ucasemap breakiterator utext
0f5d89e8 516 ustr_titlecase_brkiter # ustrcase_getTitleBreakIterator()
4388f060
A
517
518group: ucasemap
519 ucasemap.o
520 deps
f3c0d7a5 521 ustring_case ustring_case_locale
0f5d89e8 522 bytestream bytesinkutil # for UTF-8 output
4388f060
A
523 resourcebundle # uloc_getName() etc.
524
525group: ustring_case_locale
526 ustrcase_locale.o
527 deps
528 ustring_case
529 resourcebundle # for uloc_getDefault()
530
531group: ustring_case
532 ustrcase.o
533 deps
0f5d89e8 534 ucase uchar edits
4388f060
A
535
536group: ucase
537 ucase.o
538 deps
b331163b 539 utrie2
4388f060
A
540
541group: uinit
542 uinit.o
543 deps
544 ucnv_io icuplug
545
546group: converter_selector
547 ucnvsel.o
548 deps
3d1f044b 549 conversion propsvec utrie2_builder utrie_swap uset ucnv_set
4388f060
A
550
551group: ucnvdisp # ucnv_getDisplayName()
552 ucnvdisp.o
553 deps
554 conversion resourcebundle
555
556group: ucnv_set # ucnv_getUnicodeSet
557 ucnv_set.o
558 deps
559 uset
560
561group: conversion
562 ustr_cnv.o
563 ucnv.o ucnv_cnv.o ucnv_bld.o ucnv_cb.o ucnv_err.o
564 ucnv_ct.o
565 ucnvmbcs.o ucnv_ext.o
566 ucnvhz.o ucnvisci.o ucnv_lmb.o ucnv2022.o
567 ucnvlat1.o ucnv_u7.o ucnv_u8.o ucnv_u16.o ucnv_u32.o
568 ucnvbocu.o ucnvscsu.o
569 deps
570 ucnv_io
571
572group: ucnv_io
573 ucnv_io.o
574 deps
575 sort stringenumeration udata
576
577group: service_registration
578 serv.o servnotf.o servlkf.o servlk.o servls.o servrbf.o servslkf.o
579 locutil.o
580 deps
581 locale_display_names resourcebundle
582 hashtable uvector
583
584group: ucat # message-catalog-like API
585 ucat.o
586 deps
587 resourcebundle
588
589group: locale_display_names
2ca993e8 590 locdispnames.o # Locale.getDisplayName()
4388f060
A
591 deps
592 locresdata
593
2ca993e8
A
594group: locale_display_names2
595 locdspnm.o # class LocaleDisplayNames
596 deps
597 resourcebundle currency simpleformatter unistr_titlecase_brkiter uchar
598
599group: currency
600 ucurr.o
601 deps
3d1f044b 602 resourcebundle ulist ustring_case_locale
2ca993e8 603 stdlib_qsort # for ucurr.o (which does not use ICU's uarrsort.o)
0f5d89e8 604 static_unicode_sets usetiter
2ca993e8 605
4388f060
A
606group: icudataver # u_getDataVersion()
607 icudataver.o
608 deps
609 resourcebundle
610
4388f060
A
611group: locresdata
612 # This was intended to collect locale functions that load resource bundle data.
613 # See the resourcebundle group about what else loads data.
614 locresdata.o
615 deps
616 resourcebundle
617
618group: resbund_cnv # paths are Unicode strings
619 resbund_cnv.o
620 deps
621 conversion resourcebundle ures_cnv
622
623group: ures_cnv # ures_openU, path is a Unicode string
624 ures_cnv.o
625 deps
626 conversion resourcebundle
627
628group: resourcebundle
2ca993e8 629 resource.o resbund.o uresbund.o uresdata.o
4388f060 630 locavailable.o
b331163b
A
631 # uloc_tag.c and uloc_keytype.cpp convert between
632 # old ICU/LDML/CLDR locale IDs and newer BCP 47 IDs.
633 # They use data from resource bundles for some of the mappings.
634 # We might want to generate .h files for that data, to #include rather than load,
4388f060
A
635 # to minimize dependencies from this code.
636 # Then we could separate this higher-level locale ID code from the resource bundle code.
b331163b 637 uloc.o uloc_tag.o uloc_keytype.o
4388f060
A
638 # Even basic locid.cpp via Locale constructors and Locale::getDefault()
639 # depend on canonicalization and data loading.
640 # We can probably only disentangle basic locale ID handling from resource bundle code
641 # by hardcoding all of the locale ID data.
642 locid.o locmap.o wintz.o
340931cb 643 # Do we need class LocaleBased? https://unicode-org.atlassian.net/browse/ICU-8608
4388f060 644 locbased.o
3d1f044b 645 loclikely.o
4388f060
A
646 deps
647 udata ucol_swp
b331163b 648 sort stringenumeration uhash uvector
3d1f044b
A
649 uscript_props propname
650 bytesinkutil
340931cb 651 errorcode
3d1f044b
A
652
653group: localebuilder
654 localebuilder.o
655 deps
656 resourcebundle
4388f060 657
340931cb
A
658group: localematcher
659 localematcher.o
660 deps
661 localebuilder localeprioritylist loclikelysubtags locdistance lsr
662
663group: localeprioritylist
664 localeprioritylist.o
665 deps
666 resourcebundle
667
668group: locdistance
669 locdistance.o
670 deps
671 loclikelysubtags
672
673group: loclikelysubtags
674 loclikelysubtags.o
675 deps
676 lsr resourcebundle
677
678group: lsr
679 lsr.o
680 deps
681 platform
682
4388f060 683group: udata
340931cb 684 udata.o ucmndata.o udatamem.o restrace.o
4388f060
A
685 umapfile.o
686 deps
b331163b 687 uhash platform stubdata
4388f060 688 file_io mmap_functions
340931cb 689 icu_utility
4388f060 690
b331163b
A
691group: unifiedcache
692 unifiedcache.o
57a6839d
A
693 deps
694 uhash
695 platform
696
4388f060
A
697group: ucharstriebuilder
698 ucharstriebuilder.o
699 deps
700 ucharstrie stringtriebuilder sort
4388f060
A
701
702group: ucharstrieiterator
703 ucharstrieiterator.o
704 deps
b331163b 705 ucharstrie uvector32
4388f060
A
706
707group: ucharstrie
708 ucharstrie.o
709 deps
710 platform
711
712group: bytestriebuilder
713 bytestriebuilder.o
714 deps
715 bytestrie stringtriebuilder sort
4388f060
A
716
717group: bytestrieiterator
718 bytestrieiterator.o
719 deps
b331163b 720 bytestrie uvector32
4388f060
A
721
722group: bytestrie
723 bytestrie.o
724 deps
725 platform
726
727group: stringtriebuilder
728 stringtriebuilder.o
729 deps
730 uhash
731
732group: propsvec
733 propsvec.o
734 deps
735 sort utrie2_builder
736
3d1f044b
A
737group: utrie_swap
738 utrie_swap.o
739 deps
740 udata
741
742group: umutablecptrie
743 umutablecptrie.o
744 deps
745 ucptrie
746
747group: ucptrie
748 ucptrie.o
749 deps
750 platform
751
4388f060
A
752group: utrie2_builder
753 utrie2_builder.o
754 deps
755 platform
756 utrie2
757 utrie # for utrie2_fromUTrie()
4388f060 758
3d1f044b 759group: utrie2 # Try to switch users to ucptrie.
4388f060
A
760 utrie2.o
761 deps
762 platform
763
3d1f044b 764group: utrie # Callers should use ucptrie instead.
4388f060
A
765 utrie.o
766 deps
767 platform
768
769group: hashtable # Maps UnicodeString to value.
770 uhash_us.o
771 deps
4388f060
A
772 uhash
773
774group: uhash
775 uhash.o
776 deps
777 platform
778
779group: ustack
780 ustack.o
781 deps
782 uvector
783
784group: uvector
785 uvector.o
786 deps
787 platform
788 sort # for UVector::sort()
789
790group: uvector32
791 uvectr32.o
792 deps
793 platform
794
795group: uvector64
796 uvectr64.o
797 deps
798 platform
799
800group: ulist
801 ulist.o
802 deps
803 platform
804
805group: sort
806 uarrsort.o
807 deps
808 platform
809
810group: ustr_wcs
811 ustr_wcs.o
4388f060
A
812 deps
813 platform
814
0f5d89e8
A
815group: bytesinkutil
816 bytesinkutil.o
817 deps
818 bytestream edits
819
4388f060
A
820group: bytestream
821 bytestream.o
822 deps
823 platform
824
4388f060
A
825group: icuplug
826 icuplug.o
827 deps
828 platform
829
830group: ucol_swp
831 ucol_swp.o
832 deps
3d1f044b 833 utrie_swap
4388f060
A
834
835group: errorcode # ErrorCode base class
836 errorcode.o
837 deps
838 utypes
839 platform
840
841group: utypes # u_errorName()
842 utypes.o
0f5d89e8
A
843 deps
844 ubsan
4388f060
A
845
846group: platform
847 # Files in the "platform" group.
848 cmemory.o uobject.o
849 cstring.o cwchar.o uinvchar.o
b331163b
A
850 charstr.o
851 unistr.o # for CharString::appendInvariantChars(const UnicodeString &s, UErrorCode &errorCode)
852 appendable.o stringpiece.o ustrtrns.o # for unistr.o
4388f060
A
853 ustring.o # Other platform files really just need u_strlen
854 ustrfmt.o # uprv_itou
855 utf_impl.o
856 putil.o
857 ucln_cmn.o # for putil.o which calls ucln_common_registerCleanup
858 udataswp.o # for uinvchar.o; TODO: move uinvchar.o swapper functions to udataswp.o?
859 umath.o
57a6839d 860 umutex.o sharedobject.o
4388f060
A
861 utrace.o
862 deps
863 # The "platform" group has no ICU dependencies.
0f5d89e8
A
864 PIC system_misc system_debug malloc_functions ubsan
865 c_strings c_string_formatting
3d1f044b 866 floating_point system_locale
4388f060
A
867 stdio_input readlink_function dir_io
868 dlfcn # Move related code into icuplug.c?
869 cplusplus
3d1f044b 870 std_mutex
4388f060
A
871
872# ICU i18n library ----------------------------------------------------------- #
873
874library: i18n
875 deps
340931cb 876 region genderinfo charset_detector spoof_detection
57a6839d 877 alphabetic_index collation collation_builder string_search
2ca993e8 878 dayperiodrules
3d1f044b 879 listformatter
57a6839d 880 formatting formattable_cnv regex regex_cnv translit
3d1f044b 881 double_conversion number_representation number_output numberformatter numberparser
4388f060
A
882 universal_time_scale
883 uclean_i18n
884
51004dcb 885group: region
57a6839d 886 region.o uregion.o
51004dcb 887 deps
340931cb 888 icu_utility
51004dcb
A
889 resourcebundle
890 uvector uclean_i18n
891
51004dcb
A
892group: genderinfo
893 gender.o
894 deps
895 resourcebundle
896 uclean_i18n
897
4388f060
A
898group: charset_detector
899 csdetect.o csmatch.o csr2022.o csrecog.o csrmbcs.o csrsbcs.o csrucode.o csrutf8.o inputext.o ucsdet.o
900 deps
901 conversion
902 uclean_i18n
903
904group: spoof_detection
f3c0d7a5 905 uspoof.o uspoof_build.o uspoof_conf.o uspoof_impl.o scriptset.o
4388f060
A
906 deps
907 uniset_props regex unorm uscript
908
909group: alphabetic_index
910 alphaindex.o
911 deps
912 collation localedata
913 uclean_i18n
914
915group: collation
57a6839d
A
916 # The collation "runtime" code should not depend on the collation_builder code.
917 # For example, loading from resource bundles does not fall back to
918 # building from rules.
919 collation.o collationcompare.o collationdata.o
920 collationdatareader.o collationdatawriter.o
921 collationfastlatin.o collationfcd.o collationiterator.o collationkeys.o
922 collationroot.o collationrootelements.o collationsets.o
923 collationsettings.o collationtailoring.o rulebasedcollator.o
924 uitercollationiterator.o utf16collationiterator.o utf8collationiterator.o
925 bocsu.o coleitr.o coll.o sortkey.o ucol.o
926 ucol_res.o ucol_sit.o ucoleitr.o
927 deps
b331163b 928 bytestream normalizer2 resourcebundle service_registration unifiedcache
3d1f044b 929 ucharstrieiterator uiter ulist uset usetiter uvector32 uvector64 utrie2
b331163b 930 uclean_i18n propname
57a6839d
A
931
932group: collation_builder
57a6839d
A
933 collationbuilder.o collationdatabuilder.o collationfastlatinbuilder.o
934 collationruleparser.o collationweights.o
935 deps
936 canonical_iterator collation ucharstriebuilder uset_props
937
938group: string_search
51004dcb 939 search.o stsearch.o usearch.o
4388f060 940 deps
57a6839d 941 breakiterator collation
4388f060 942
2ca993e8
A
943group: dayperiodrules
944 dayperiodrules.o
945 deps
946 resourcebundle uclean_i18n
947
3d1f044b
A
948group: listformatter
949 listformatter.o ulistformatter.o
950 deps
340931cb 951 uchar resourcebundle simpleformatter format uclean_i18n formatted_value_iterimpl
3d1f044b 952
0f5d89e8 953group: double_conversion
340931cb
A
954 double-conversion-bignum.o double-conversion-double-to-string.o
955 double-conversion-bignum-dtoa.o double-conversion-cached-powers.o
956 double-conversion-string-to-double.o double-conversion-fast-dtoa.o
957 double-conversion-strtod.o
0f5d89e8
A
958 deps
959 platform
960
961group: number_representation
340931cb
A
962 number_decimalquantity.o string_segment.o number_utils.o
963 # TODO(ICU-20429) Move formatted_string_builder to its own unit.
964 formatted_string_builder.o
0f5d89e8
A
965 deps
966 decnumber double_conversion
3d1f044b
A
967 # for trimming whitespace around fields
968 static_unicode_sets
0f5d89e8
A
969 # for data loading; that could be split off
970 resourcebundle
971 int_functions
972 ucase uniset_core
3d1f044b
A
973 formatted_value
974
975group: number_output
976 # PluralRules and FormattedNumber
977 number_output.o
978 standardplural.o plurrule.o
979 deps
980 # FormattedNumber internals:
981 number_representation format formatted_value_sbimpl
982 # PluralRules internals:
983 unifiedcache
0f5d89e8
A
984
985group: numberformatter
986 # ICU 60+ NumberFormatter API
987 number_affixutils.o number_asformat.o
988 number_capi.o number_compact.o number_currencysymbols.o
989 number_decimfmtprops.o
990 number_fluent.o number_formatimpl.o
991 number_grouping.o number_integerwidth.o number_longnames.o
992 number_mapper.o number_modifiers.o number_multiplier.o
993 number_notation.o number_padding.o
994 number_patternmodifier.o number_patternstring.o number_rounding.o
995 number_scientific.o number_skeletons.o
996 currpinf.o dcfmtsym.o numsys.o
3d1f044b 997 numrange_fluent.o numrange_impl.o
0f5d89e8 998 deps
3d1f044b
A
999 decnumber double_conversion formattable units
1000 number_representation number_output
0f5d89e8
A
1001 uclean_i18n common
1002
1003group: numberparser
1004 numparse_affixes.o numparse_compositions.o numparse_currency.o
1005 numparse_decimal.o numparse_impl.o numparse_parsednumber.o
1006 numparse_scientific.o numparse_symbols.o
1007 numparse_validators.o
1008 deps
1009 numberformatter
1010
4388f060
A
1011group: formatting
1012 # TODO: Try to subdivide this ball of wax.
4388f060 1013 # currencyformat
0f5d89e8
A
1014 curramt.o currfmt.o
1015 # pluralrules C API
1016 upluralrules.o
4388f060 1017 # decimalformat
0f5d89e8
A
1018 unumsys.o
1019 decimfmt.o compactdecimalformat.o
2ca993e8
A
1020 numfmt.o unum.o
1021 winnmfmt.o
b331163b
A
1022 # scientificnumberformatter - would depend on dcfmtsym, so would be circular.
1023 scientificnumberformatter.o
4388f060
A
1024 # rbnf
1025 nfrs.o nfrule.o nfsubs.o rbnf.o
1026 # measureformat
0f5d89e8 1027 measfmt.o quantityformatter.o
4388f060 1028 # dateformat
51004dcb 1029 astro.o buddhcal.o calendar.o cecal.o chnsecal.o coptccal.o dangical.o ethpccal.o
4388f060 1030 gregocal.o gregoimp.o hebrwcal.o indiancal.o islamcal.o japancal.o persncal.o taiwncal.o
3d1f044b 1031 erarules.o # mostly for Japanese eras
4388f060
A
1032 ucal.o
1033 basictz.o olsontz.o rbtz.o simpletz.o timezone.o tzrule.o tztrans.o
1034 vtzone.o vzone.o wintzimpl.o zonemeta.o zrule.o ztrans.o
1035 tzfmt.o tzgnames.o tznames.o tznames_impl.o
57a6839d 1036 datefmt.o dtfmtsym.o dtitvfmt.o dtitvinf.o dtptngen.o dtrule.o reldtfmt.o reldatefmt.o
4388f060
A
1037 smpdtfmt.o smpdtfst.o udateintervalformat.o udatpg.o windtfmt.o
1038 udat.o
1039 tmunit.o tmutamt.o tmutfmt.o
1040 # messageformat
1041 choicfmt.o msgfmt.o plurfmt.o selfmt.o umsg.o
1042 deps
3d1f044b
A
1043 decnumber formattable format units numberformatter numberparser formatted_value_sbimpl
1044 listformatter
f3c0d7a5 1045 dayperiodrules
57a6839d 1046 collation collation_builder # for rbnf
4388f060
A
1047 common
1048 floating_point # sqrt() for astro.o
1049 trigonometry # for astro.o
b331163b 1050 sharedbreakiterator # for reldatefmt.o
4388f060 1051 uclean_i18n
340931cb 1052 region
4388f060 1053
b331163b
A
1054group: sharedbreakiterator
1055 sharedbreakiterator.o
1056 deps
1057 breakiterator
1058
0f5d89e8
A
1059group: units
1060 measunit.o currunit.o nounit.o
4388f060 1061 deps
0f5d89e8
A
1062 stringenumeration
1063
1064group: decnumber
1065 decContext.o decNumber.o
1066 deps
1067 double_conversion uclean_i18n
4388f060
A
1068
1069group: formattable
1070 fmtable.o
1071 measure.o
1072 deps
0f5d89e8 1073 decnumber number_representation
4388f060
A
1074
1075group: formattable_cnv
1076 fmtable_cnv.o
1077 deps
1078 formattable unistr_cnv conversion
1079
3d1f044b
A
1080group: formatted_value
1081 formattedvalue.o
1082 deps
1083 platform
1084
1085group: formatted_value_iterimpl
1086 formattedval_iterimpl.o
1087 deps
1088 formatted_value format uvector32
1089
1090group: formatted_value_sbimpl
1091 formattedval_sbimpl.o
1092 deps
1093 number_representation
1094
4388f060 1095group: format
b331163b 1096 format.o fphdlimp.o fpositer.o ufieldpositer.o
4388f060 1097 deps
b331163b 1098 resourcebundle parsepos uvector32
4388f060 1099
4388f060
A
1100group: regex_cnv
1101 uregexc.o
1102 deps
1103 regex unistr_cnv
1104
1105group: regex
1106 regexcmp.o regexst.o regextxt.o regeximp.o rematch.o repattrn.o uregex.o
1107 deps
1108 uniset_closure utext uvector32 uvector64 ustack
1109 breakiterator
4388f060
A
1110 uinit # TODO: Really needed?
1111 uclean_i18n
1112
1113group: translit
1114 anytrans.o brktrans.o casetrn.o cpdtrans.o name2uni.o uni2name.o nortrans.o remtrans.o titletrn.o tolowtrn.o toupptrn.o
1115 esctrn.o unesctrn.o nultrans.o
1116 funcrepl.o quant.o rbt.o rbt_data.o rbt_pars.o rbt_rule.o rbt_set.o strmatch.o strrepl.o translit.o transreg.o tridpars.o utrans.o
1117 deps
1118 common
1119 formatting # for Transliterator::getDisplayName()
1120 uclean_i18n
1121
1122group: universal_time_scale
1123 utmscale.o
0f5d89e8
A
1124 deps
1125 ubsan
4388f060
A
1126
1127group: uclean_i18n
1128 ucln_in.o
1129 deps
1130 platform
1131
1132# ICU io library ------------------------------------------------------------- #
1133
1134library: io
1135 deps
1136 ustdio ustream uclean_io
1137
1138group: ustdio
1139 locbund.o sprintf.o sscanf.o ufile.o ufmt_cmn.o uprintf.o uprntf_p.o uscanf.o uscanf_p.o ustdio.o
1140 deps
1141 formatting conversion translit
1142 uclean_io
1143 stdio_output
1144
1145group: ustream
1146 ustream.o
1147 deps
1148 unistr_cnv
1149 uchar # for u_isWhitespace()
1150 iostream
1151
1152group: uclean_io
1153 ucln_io.o
1154 deps
1155 platform