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