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