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