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 pthread system_locale 24 stdio_input stdio_output file_io readlink_function dir_io mmap_functions dlfcn 25 # C++ 26 cplusplus iostream 27 28group: PIC 29 # Position-Independent Code (-fPIC) requires a Global Offset Table. 30 _GLOBAL_OFFSET_TABLE_ 31 32group: system_misc 33 abort 34 35group: system_debug 36 __assert_fail __stack_chk_fail 37 38group: malloc_functions 39 free malloc realloc 40 41group: ubsan 42 # UBSan=UndefinedBehaviorSanitizer, clang -fsanitize=bounds 43 __ubsan_handle_out_of_bounds 44 45group: 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 55group: 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 61group: int_functions 62 div 63 64group: floating_point 65 abs fabs floor ceil modf fmod log pow round sqrt trunc 66 67group: trigonometry 68 acos asin atan atan2 cos sin tan 69 # Additional symbols in an optimized build. 70 sincos 71 72group: stdlib_qsort 73 qsort 74 75group: 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 79group: system_locale 80 getenv 81 nl_langinfo setlocale newlocale freelocale 82 gettimeofday localtime_r tzname tzset __timezone 83 84group: 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 89group: stdio_output 90 fflush fwrite 91 stdout 92 93group: file_io 94 open close stat 95 # Additional symbols in an optimized build. 96 __xstat 97 98group: readlink_function 99 readlink # putil.cpp uprv_tzname() calls this in a hack to get the time zone name 100 101group: dir_io 102 opendir closedir readdir # for a hack to get the time zone name 103 104group: mmap_functions # for memory-mapped data loading 105 mmap munmap 106 107group: dlfcn 108 dlopen dlclose dlsym # called by putil.o only for icuplug.o 109 110group: 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 129group: 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 143library: stubdata 144 stubdata.o # Exports icudt48_dat. 145 146library: 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 182group: pluralmap 183 # TODO: Move to i18n library, ticket #11926. 184 pluralmap.o 185 deps 186 platform 187 188group: date_interval # class DateInterval 189 dtintrv.o 190 deps 191 platform 192 193group: 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 214group: unormcmp # unorm_compare() 215 unormcmp.o 216 deps 217 filterednormalizer2 218 uniset_props # for uniset_getUnicode32Instance() 219 ucase 220 221group: unorm # old normalization C API 222 unorm.o 223 deps 224 filterednormalizer2 225 uniset_props # for uniset_getUnicode32Instance() 226 uiter 227 228group: normlzr # old Normalizer C++ class 229 normlzr.o 230 deps 231 filterednormalizer2 232 uniset_props # for uniset_getUnicode32Instance() 233 schriter 234 235group: 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 243group: filterednormalizer2 244 filterednormalizer2.o 245 deps 246 normalizer2 247 248group: idna2003 249 uidna.o 250 deps 251 stringprep punycode 252 253group: 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 260group: canonical_iterator 261 caniter.o 262 deps 263 normalizer2 usetiter 264 265group: loadednormalizer2 266 loadednormalizer2impl.o 267 deps 268 normalizer2 269 270group: 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 282group: punycode 283 punycode.o 284 deps 285 platform 286 287group: static_unicode_sets 288 static_unicode_sets.o 289 deps 290 resourcebundle uniset_props 291 292group: uset_props 293 uset_props.o 294 deps 295 uniset_closure uniset_props uniset_core 296 297group: uset 298 uset.o 299 deps 300 uniset_core 301 302group: uniset_closure 303 uniset_closure.o 304 deps 305 uniset_core unistr_case_locale unistr_titlecase_brkiter 306 307group: 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 315group: parsepos 316 parsepos.o 317 deps 318 platform 319 320group: usetiter # UnicodeSetIterator 321 usetiter.o 322 deps 323 uniset_core 324 325group: uniset_core 326 unifilt.o unifunct.o 327 uniset.o bmpset.o unisetspan.o 328 deps 329 patternprops 330 icu_utility 331 uvector 332 333group: icu_utility_with_props 334 util_props.o 335 deps 336 icu_utility uchar ucase 337 338group: icu_utility 339 util.o 340 deps 341 patternprops platform 342 343group: utext 344 utext.o 345 deps 346 ucase 347 348group: stringenumeration 349 ustrenum.o uenum.o 350 deps 351 platform 352 353group: 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 362group: chariter 363 chariter.o 364 deps 365 platform 366 367group: uiter 368 uiter.o 369 deps 370 platform 371 372group: unistr_cnv 373 unistr_cnv.o 374 deps 375 conversion 376 377group: cstr 378 cstr.o 379 deps 380 unistr_cnv 381 382group: uscript 383 uscript.o # uscript_getCode() accepts a locale ID and loads its script code data 384 deps 385 propname resourcebundle 386 387group: uscript_props # script metadata properties 388 uscript_props.o 389 deps 390 platform 391 392group: 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 401group: characterproperties 402 characterproperties.o 403 deps 404 uprops 405 uniset_core 406 407group: propname 408 propname.o 409 deps 410 bytestrie 411 412group: unames 413 unames.o 414 deps 415 uchar udata 416 417group: script_runs 418 usc_impl.o 419 deps 420 uchar 421 422group: uchar 423 uchar.o 424 deps 425 utrie2 426 427group: messagepattern # for MessageFormat and tools 428 messagepattern.o 429 deps 430 patternprops platform 431 432group: simpleformatter 433 simpleformatter.o 434 deps 435 platform 436 437group: patternprops 438 patternprops.o 439 deps 440 PIC ubsan 441 442group: ushape 443 ushape.o 444 deps 445 ubidi_props 446 447group: 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 453group: ubiditransform 454 ubiditransform.o 455 deps 456 ubidi ushape 457 458group: ubidi_props 459 ubidi_props.o 460 deps 461 utrie2 462 463group: unistr_props 464 unistr_props.o 465 deps 466 uchar platform 467 468group: unistr_case_locale 469 unistr_case_locale.o 470 deps 471 unistr_case ustring_case_locale 472 473group: unistr_case 474 unistr_case.o 475 deps 476 ustring_case 477 478group: unistr_titlecase_brkiter 479 unistr_titlecase_brkiter.o 480 deps 481 ustr_titlecase_brkiter 482 483group: ustr_titlecase_brkiter 484 ustr_titlecase_brkiter.o 485 deps 486 breakiterator 487 ustring_case_locale ucase 488 489group: edits 490 edits.o 491 deps 492 # Edits::Iterator::toString() calls ICU_Utility::appendNumber() 493 icu_utility 494 platform 495 496group: ucasemap_titlecase_brkiter 497 ucasemap_titlecase_brkiter.o 498 deps 499 ucasemap breakiterator utext 500 ustr_titlecase_brkiter # ustrcase_getTitleBreakIterator() 501 502group: 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 509group: ustring_case_locale 510 ustrcase_locale.o 511 deps 512 ustring_case 513 resourcebundle # for uloc_getDefault() 514 515group: ustring_case 516 ustrcase.o 517 deps 518 ucase uchar edits 519 520group: ucase 521 ucase.o 522 deps 523 utrie2 524 525group: uinit 526 uinit.o 527 deps 528 ucnv_io icuplug 529 530group: converter_selector 531 ucnvsel.o 532 deps 533 conversion propsvec utrie2_builder utrie_swap uset ucnv_set 534 535group: ucnvdisp # ucnv_getDisplayName() 536 ucnvdisp.o 537 deps 538 conversion resourcebundle 539 540group: ucnv_set # ucnv_getUnicodeSet 541 ucnv_set.o 542 deps 543 uset 544 545group: 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 556group: ucnv_io 557 ucnv_io.o 558 deps 559 sort stringenumeration udata 560 561group: 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 568group: ucat # message-catalog-like API 569 ucat.o 570 deps 571 resourcebundle 572 573group: locale_display_names 574 locdispnames.o # Locale.getDisplayName() 575 deps 576 locresdata 577 578group: locale_display_names2 579 locdspnm.o # class LocaleDisplayNames 580 deps 581 resourcebundle currency simpleformatter unistr_titlecase_brkiter uchar 582 583group: 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 590group: icudataver # u_getDataVersion() 591 icudataver.o 592 deps 593 resourcebundle 594 595group: 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 602group: resbund_cnv # paths are Unicode strings 603 resbund_cnv.o 604 deps 605 conversion resourcebundle ures_cnv 606 607group: ures_cnv # ures_openU, path is a Unicode string 608 ures_cnv.o 609 deps 610 conversion resourcebundle 611 612group: 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 636group: udata 637 udata.o ucmndata.o udatamem.o 638 umapfile.o 639 deps 640 uhash platform stubdata 641 file_io mmap_functions 642 643group: unifiedcache 644 unifiedcache.o 645 deps 646 uhash 647 platform 648 649group: ucharstriebuilder 650 ucharstriebuilder.o 651 deps 652 ucharstrie stringtriebuilder sort 653 654group: ucharstrieiterator 655 ucharstrieiterator.o 656 deps 657 ucharstrie uvector32 658 659group: ucharstrie 660 ucharstrie.o 661 deps 662 platform 663 664group: bytestriebuilder 665 bytestriebuilder.o 666 deps 667 bytestrie stringtriebuilder sort 668 669group: bytestrieiterator 670 bytestrieiterator.o 671 deps 672 bytestrie uvector32 673 674group: bytestrie 675 bytestrie.o 676 deps 677 platform 678 679group: stringtriebuilder 680 stringtriebuilder.o 681 deps 682 uhash 683 684group: propsvec 685 propsvec.o 686 deps 687 sort utrie2_builder 688 689group: utrie_swap 690 utrie_swap.o 691 deps 692 udata 693 694group: umutablecptrie 695 umutablecptrie.o 696 deps 697 ucptrie 698 699group: ucptrie 700 ucptrie.o 701 deps 702 platform 703 704group: utrie2_builder 705 utrie2_builder.o 706 deps 707 platform 708 utrie2 709 utrie # for utrie2_fromUTrie() 710 711group: utrie2 # Try to switch users to ucptrie. 712 utrie2.o 713 deps 714 platform 715 716group: utrie # Callers should use ucptrie instead. 717 utrie.o 718 deps 719 platform 720 721group: hashtable # Maps UnicodeString to value. 722 uhash_us.o 723 deps 724 uhash 725 726group: uhash 727 uhash.o 728 deps 729 platform 730 731group: ustack 732 ustack.o 733 deps 734 uvector 735 736group: uvector 737 uvector.o 738 deps 739 platform 740 sort # for UVector::sort() 741 742group: uvector32 743 uvectr32.o 744 deps 745 platform 746 747group: uvector64 748 uvectr64.o 749 deps 750 platform 751 752group: ulist 753 ulist.o 754 deps 755 platform 756 757group: sort 758 uarrsort.o 759 deps 760 platform 761 762group: ustr_wcs 763 ustr_wcs.o 764 deps 765 platform 766 767group: bytesinkutil 768 bytesinkutil.o 769 deps 770 bytestream edits 771 772group: bytestream 773 bytestream.o 774 deps 775 platform 776 777group: icuplug 778 icuplug.o 779 deps 780 platform 781 782group: ucol_swp 783 ucol_swp.o 784 deps 785 utrie_swap 786 787group: errorcode # ErrorCode base class 788 errorcode.o 789 deps 790 utypes 791 platform 792 793group: utypes # u_errorName() 794 utypes.o 795 deps 796 ubsan 797 798group: 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 825library: 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 836group: 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 843group: localedata 844 ulocdata.o 845 deps 846 uniset_props resourcebundle 847 uset_props # TODO: change to using C++ UnicodeSet, remove this dependency 848 849group: genderinfo 850 gender.o 851 deps 852 resourcebundle 853 uclean_i18n 854 855group: 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 861group: 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 866group: alphabetic_index 867 alphaindex.o 868 deps 869 collation localedata 870 uclean_i18n 871 872group: 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 889group: collation_builder 890 collationbuilder.o collationdatabuilder.o collationfastlatinbuilder.o 891 collationruleparser.o collationweights.o 892 deps 893 canonical_iterator collation ucharstriebuilder uset_props 894 895group: string_search 896 search.o stsearch.o usearch.o 897 deps 898 breakiterator collation 899 900group: dayperiodrules 901 dayperiodrules.o 902 deps 903 resourcebundle uclean_i18n 904 905group: listformatter 906 listformatter.o ulistformatter.o 907 deps 908 resourcebundle simpleformatter format uclean_i18n 909 910group: 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 917group: 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 926group: 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 946group: 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 954group: 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 996group: sharedbreakiterator 997 sharedbreakiterator.o 998 deps 999 breakiterator 1000 1001group: units 1002 measunit.o currunit.o nounit.o 1003 deps 1004 stringenumeration 1005 1006group: decnumber 1007 decContext.o decNumber.o 1008 deps 1009 double_conversion uclean_i18n 1010 1011group: formattable 1012 fmtable.o 1013 measure.o 1014 deps 1015 decnumber number_representation 1016 1017group: formattable_cnv 1018 fmtable_cnv.o 1019 deps 1020 formattable unistr_cnv conversion 1021 1022group: format 1023 format.o fphdlimp.o fpositer.o ufieldpositer.o 1024 deps 1025 resourcebundle parsepos uvector32 1026 1027group: regex_cnv 1028 uregexc.o 1029 deps 1030 regex unistr_cnv 1031 1032group: 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 1040group: 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 1049group: universal_time_scale 1050 utmscale.o 1051 deps 1052 ubsan 1053 1054group: uclean_i18n 1055 ucln_in.o 1056 deps 1057 platform 1058 1059# ICU io library ------------------------------------------------------------- # 1060 1061library: io 1062 deps 1063 ustdio ustream uclean_io 1064 1065group: 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 1072group: ustream 1073 ustream.o 1074 deps 1075 unistr_cnv 1076 uchar # for u_isWhitespace() 1077 iostream 1078 1079group: uclean_io 1080 ucln_io.o 1081 deps 1082 platform 1083