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