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