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