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