blob: fda37de90c8b08903a9974fbb084d7db9eaaae1d [file] [log] [blame]
# -*- icu-dependencies -*-
# Copyright (C) 2016 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
# Copyright (C) 2011-2016, International Business Machines
# Corporation and others. All Rights Reserved.
#
# file name: dependencies.txt
#
# created on: 2011may26
# created by: Markus W. Scherer
#
# See http://site.icu-project.org/processes/release/tasks/healthy-code#TOC-Check-library-dependencies
# Standard library symbols used by ICU --------------------------------------- #
system_symbols:
deps
# C
PIC system_misc system_debug malloc_functions ubsan
c_strings c_string_formatting
int_functions floating_point trigonometry
stdlib_qsort
system_locale
stdio_input stdio_output file_io readlink_function dir_io mmap_functions dlfcn
# C++
cplusplus iostream
std_mutex
group: PIC
# Position-Independent Code (-fPIC) requires a Global Offset Table.
_GLOBAL_OFFSET_TABLE_
group: system_misc
abort
group: system_debug
__assert_fail __stack_chk_fail
group: malloc_functions
free malloc realloc
group: std_mutex
std::condition_variable::notify_one()
std::condition_variable::wait(std::unique_lock<std::mutex>&)
std::condition_variable::notify_all()
std::condition_variable::condition_variable()
std::condition_variable::~condition_variable()
std::condition_variable_any::condition_variable_any()
std::condition_variable_any::~condition_variable_any()
group: ubsan
# UBSan=UndefinedBehaviorSanitizer, clang -fsanitize=bounds
__ubsan_handle_out_of_bounds
group: c_strings
isspace isdigit
__ctype_b_loc # for <ctype.h>
# We must not use tolower and toupper because they are system-locale-sensitive (Turkish i).
strlen strchr strrchr strstr strcmp strncmp strcpy strncpy strcat strncat
memchr memcmp memcpy memmove memset
# Additional symbols in an optimized build.
__strcpy_chk __strncpy_chk __strcat_chk __strncat_chk
__rawmemchr __memcpy_chk __memmove_chk __memset_chk
group: c_string_formatting
atoi atol strtod strtod_l strtol strtoul
sprintf snprintf
# Additional symbols in an optimized build.
__sprintf_chk
group: int_functions
div
group: floating_point
abs fabs floor ceil modf fmod log pow round sqrt trunc
group: trigonometry
acos asin atan atan2 cos sin tan
# Additional symbols in an optimized build.
sincos
group: stdlib_qsort
qsort
group: system_locale
getenv
nl_langinfo setlocale newlocale freelocale
gettimeofday localtime_r tzname tzset __timezone
group: stdio_input
fopen fclose fgets fread fseek ftell rewind feof fileno
# Additional symbols in an optimized build.
__fgets_chk __fread_chk fread_unlocked
group: stdio_output
fflush fwrite
stdout
group: file_io
open close stat
# Additional symbols in an optimized build.
__xstat
group: readlink_function
readlink # putil.cpp uprv_tzname() calls this in a hack to get the time zone name
group: dir_io
opendir closedir readdir # for a hack to get the time zone name
group: mmap_functions # for memory-mapped data loading
mmap munmap
group: dlfcn
dlopen dlclose dlsym # called by putil.o only for icuplug.o
group: cplusplus
__dynamic_cast
# The compiler generates references to the global operator delete
# even when no code actually uses it.
# ICU must not _use_ the global operator delete.
"operator delete(void*)"
# ICU also must not use the global operator new.
# "operator new[](unsigned long)"
# _Unwind_Resume is related to exceptions:
# "A call to this routine is inserted as the end of a landing pad that performs cleanup,
# but does not resume normal execution. It causes unwinding to proceed further."
# (Linux Standard Base Specification 1.3)
# Even though ICU does not actually use (nor handle) exceptions.
_Unwind_Resume
# std::terminate() looks similar to _Unwind_Resume:
# "Calls the current terminate handler."
std::terminate()
group: iostream
"std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate)"
"std::basic_ios<char, std::char_traits<char> >::eof() const"
"std::basic_ios<char, std::char_traits<char> >::fail() const"
"std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)"
std::ios_base::Init::Init()
std::ios_base::Init::~Init()
std::istream::get()
std::istream::putback(char)
# Additional symbols in an optimized build.
"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)"
# ICU common library --------------------------------------------------------- #
library: stubdata
stubdata.o # Exports icudt48_dat.
library: common
# All files in the common library are listed in its dependencies.
deps
# Libraries and groups that the common library depends on.
pluralmap
date_interval
breakiterator
uts46 filterednormalizer2 normalizer2 loadednormalizer2 canonical_iterator
normlzr unormcmp unorm
idna2003 stringprep
stringenumeration
unistr_props unistr_case unistr_case_locale unistr_titlecase_brkiter unistr_cnv
cstr
uniset_core uniset_props uniset_closure usetiter uset uset_props
static_unicode_sets
uiter edits
ucasemap ucasemap_titlecase_brkiter script_runs
uprops ubidi_props ucase uscript uscript_props characterproperties
ubidi ushape ubiditransform
resourcebundle service_registration resbund_cnv ures_cnv icudataver ucat
currency
locale_display_names2
conversion converter_selector ucnv_set ucnvdisp
messagepattern simpleformatter
icu_utility icu_utility_with_props
ustr_wcs
unifiedcache
ucharstriebuilder ucharstrieiterator
bytestriebuilder bytestrieiterator
hashtable uhash uvector uvector32 uvector64 ulist
propsvec utrie2 utrie2_builder ucptrie umutablecptrie utrie_swap
sort
uinit utypes errorcode
icuplug
platform
localebuilder localematcher
group: pluralmap
# TODO: Move to i18n library, ticket #11926.
pluralmap.o
deps
platform
group: date_interval # class DateInterval
dtintrv.o
deps
platform
group: breakiterator
# We could try to split off a breakiterator_builder group,
# but we still need uniset_props for code like in the ThaiBreakEngine constructor
# which does
# fThaiWordSet.applyPattern(UNICODE_STRING_SIMPLE("[[:Thai:]&[:LineBreak=SA:]]"), status)
brkiter.o brkeng.o ubrk.o
rbbi.o rbbinode.o rbbiscan.o rbbisetb.o rbbistbl.o rbbitblb.o
rbbidata.o rbbirb.o rbbi_cache.o
dictionarydata.o dictbe.o
# BreakIterator::makeInstance() factory implementation makes for circular dependency
# between BreakIterator base and FilteredBreakIteratorBuilder.
filteredbrk.o
deps
resourcebundle service_registration
schriter utext uniset_core uniset_props
uhash ustack utrie2_builder
ucharstrie bytestrie
ucharstriebuilder # for filteredbrk.o
normlzr # for dictbe.o, should switch to Normalizer2
uvector32 # for dictbe.o
group: unormcmp # unorm_compare()
unormcmp.o
deps
filterednormalizer2
uniset_props # for uniset_getUnicode32Instance()
ucase
group: unorm # old normalization C API
unorm.o
deps
filterednormalizer2
uniset_props # for uniset_getUnicode32Instance()
uiter
group: normlzr # old Normalizer C++ class
normlzr.o
deps
filterednormalizer2
uniset_props # for uniset_getUnicode32Instance()
schriter
group: uts46
uts46.o
deps
normalizer2 loadednormalizer2 punycode
uchar # for u_charType() (via U_GET_GC_MASK(c))
ubidi_props # for u_charDirection() & ubidi_getJoiningType()
bytestream
group: filterednormalizer2
filterednormalizer2.o
deps
normalizer2
group: idna2003
uidna.o
deps
stringprep punycode
group: stringprep
usprep.o
deps
unorm # could change to use filterednormalizer2 directly for Unicode 3.2 normalization
normalizer2
ubidi_props utrie
group: canonical_iterator
caniter.o
deps
normalizer2 usetiter
group: loadednormalizer2
loadednormalizer2impl.o
deps
normalizer2
group: normalizer2
normalizer2.o
normalizer2impl.o
deps
uniset_core
bytestream bytesinkutil # for UTF-8 output
umutablecptrie # for building CanonIterData & FCD
utrie_swap # TODO(ICU-20170): move unorm2_swap() to a separate file
uvector # for building CanonIterData
uhash # for the instance cache
udata
group: punycode
punycode.o
deps
platform
group: static_unicode_sets
static_unicode_sets.o
deps
resourcebundle uniset_props
group: uset_props
uset_props.o
deps
uniset_closure uniset_props uniset_core
group: uset
uset.o
deps
uniset_core
group: uniset_closure
uniset_closure.o
deps
uniset_core unistr_case_locale unistr_titlecase_brkiter
group: uniset_props
uniset_props.o ruleiter.o
deps
uniset_core uprops unistr_case characterproperties
parsepos
resourcebundle
propname unames
group: parsepos
parsepos.o
deps
platform
group: usetiter # UnicodeSetIterator
usetiter.o
deps
uniset_core
group: uniset_core
unifilt.o unifunct.o
uniset.o bmpset.o unisetspan.o
deps
patternprops
icu_utility
uvector
group: icu_utility_with_props
util_props.o
deps
icu_utility uchar ucase
group: icu_utility
util.o
deps
patternprops platform
group: utext
utext.o
deps
ucase
group: stringenumeration
ustrenum.o uenum.o
deps
platform
group: schriter
schriter.o
# The UCharCharacterIterator implements virtual void getText(UnicodeString& result)
# so it depends on UnicodeString, therefore it makes little sense to split
# schriter and uchriter into separate groups.
uchriter.o
deps
chariter
group: chariter
chariter.o
deps
platform
group: uiter
uiter.o
deps
platform
group: unistr_cnv
unistr_cnv.o
deps
conversion
group: cstr
cstr.o
deps
unistr_cnv
group: uscript
uscript.o # uscript_getCode() accepts a locale ID and loads its script code data
deps
propname resourcebundle
group: uscript_props # script metadata properties
uscript_props.o
deps
platform
group: uprops
uprops.o
deps
normalizer2 loadednormalizer2
uchar
ubidi_props
unistr_case ustring_case # only for case folding
ucase
group: characterproperties
characterproperties.o
deps
uprops
uniset_core
group: propname
propname.o
deps
bytestrie
group: unames
unames.o
deps
uchar udata
group: script_runs
usc_impl.o
deps
uchar
group: uchar
uchar.o
deps
utrie2
group: messagepattern # for MessageFormat and tools
messagepattern.o
deps
patternprops platform
group: simpleformatter
simpleformatter.o
deps
platform
group: patternprops
patternprops.o
deps
PIC ubsan
group: ushape
ushape.o
deps
ubidi_props
group: ubidi
ubidi.o ubidiln.o ubidiwrt.o
deps
ubidi_props
uchar # for doWriteReverse() which uses IS_COMBINING(u_charType(c))
group: ubiditransform
ubiditransform.o
deps
ubidi ushape
group: ubidi_props
ubidi_props.o
deps
utrie2
group: unistr_props
unistr_props.o
deps
uchar platform
group: unistr_case_locale
unistr_case_locale.o
deps
unistr_case ustring_case_locale
group: unistr_case
unistr_case.o
deps
ustring_case
group: unistr_titlecase_brkiter
unistr_titlecase_brkiter.o
deps
ustr_titlecase_brkiter
group: ustr_titlecase_brkiter
ustr_titlecase_brkiter.o
deps
breakiterator
ustring_case_locale ucase
group: edits
edits.o
deps
# Edits::Iterator::toString() calls ICU_Utility::appendNumber()
icu_utility
platform
group: ucasemap_titlecase_brkiter
ucasemap_titlecase_brkiter.o
deps
ucasemap breakiterator utext
ustr_titlecase_brkiter # ustrcase_getTitleBreakIterator()
group: ucasemap
ucasemap.o
deps
ustring_case ustring_case_locale
bytestream bytesinkutil # for UTF-8 output
resourcebundle # uloc_getName() etc.
group: ustring_case_locale
ustrcase_locale.o
deps
ustring_case
resourcebundle # for uloc_getDefault()
group: ustring_case
ustrcase.o
deps
ucase uchar edits
group: ucase
ucase.o
deps
utrie2
group: uinit
uinit.o
deps
ucnv_io icuplug
group: converter_selector
ucnvsel.o
deps
conversion propsvec utrie2_builder utrie_swap uset ucnv_set
group: ucnvdisp # ucnv_getDisplayName()
ucnvdisp.o
deps
conversion resourcebundle
group: ucnv_set # ucnv_getUnicodeSet
ucnv_set.o
deps
uset
group: conversion
ustr_cnv.o
ucnv.o ucnv_cnv.o ucnv_bld.o ucnv_cb.o ucnv_err.o
ucnv_ct.o
ucnvmbcs.o ucnv_ext.o
ucnvhz.o ucnvisci.o ucnv_lmb.o ucnv2022.o
ucnvlat1.o ucnv_u7.o ucnv_u8.o ucnv_u16.o ucnv_u32.o
ucnvbocu.o ucnvscsu.o
deps
ucnv_io
group: ucnv_io
ucnv_io.o
deps
sort stringenumeration udata
group: service_registration
serv.o servnotf.o servlkf.o servlk.o servls.o servrbf.o servslkf.o
locutil.o
deps
locale_display_names resourcebundle
hashtable uvector
group: ucat # message-catalog-like API
ucat.o
deps
resourcebundle
group: locale_display_names
locdispnames.o # Locale.getDisplayName()
deps
locresdata
group: locale_display_names2
locdspnm.o # class LocaleDisplayNames
deps
resourcebundle currency simpleformatter unistr_titlecase_brkiter uchar
group: currency
ucurr.o
deps
resourcebundle ulist ustring_case_locale
stdlib_qsort # for ucurr.o (which does not use ICU's uarrsort.o)
static_unicode_sets usetiter
group: icudataver # u_getDataVersion()
icudataver.o
deps
resourcebundle
group: locresdata
# This was intended to collect locale functions that load resource bundle data.
# See the resourcebundle group about what else loads data.
locresdata.o
deps
resourcebundle
group: resbund_cnv # paths are Unicode strings
resbund_cnv.o
deps
conversion resourcebundle ures_cnv
group: ures_cnv # ures_openU, path is a Unicode string
ures_cnv.o
deps
conversion resourcebundle
group: resourcebundle
resource.o resbund.o uresbund.o uresdata.o
locavailable.o
# uloc_tag.c and uloc_keytype.cpp convert between
# old ICU/LDML/CLDR locale IDs and newer BCP 47 IDs.
# They use data from resource bundles for some of the mappings.
# We might want to generate .h files for that data, to #include rather than load,
# to minimize dependencies from this code.
# Then we could separate this higher-level locale ID code from the resource bundle code.
uloc.o uloc_tag.o uloc_keytype.o
# Even basic locid.cpp via Locale constructors and Locale::getDefault()
# depend on canonicalization and data loading.
# We can probably only disentangle basic locale ID handling from resource bundle code
# by hardcoding all of the locale ID data.
locid.o locmap.o wintz.o
# Do we need class LocaleBased? https://unicode-org.atlassian.net/browse/ICU-8608
locbased.o
loclikely.o
deps
udata ucol_swp
sort stringenumeration uhash uvector
uscript_props propname
bytesinkutil
errorcode
group: localebuilder
localebuilder.o
deps
resourcebundle
group: localematcher
localematcher.o
deps
localebuilder localeprioritylist loclikelysubtags locdistance lsr
group: localeprioritylist
localeprioritylist.o
deps
resourcebundle
group: locdistance
locdistance.o
deps
loclikelysubtags
group: loclikelysubtags
loclikelysubtags.o
deps
lsr resourcebundle
group: lsr
lsr.o
deps
platform
group: udata
udata.o ucmndata.o udatamem.o restrace.o
umapfile.o
deps
uhash platform stubdata
file_io mmap_functions
icu_utility
group: unifiedcache
unifiedcache.o
deps
uhash
platform
group: ucharstriebuilder
ucharstriebuilder.o
deps
ucharstrie stringtriebuilder sort
group: ucharstrieiterator
ucharstrieiterator.o
deps
ucharstrie uvector32
group: ucharstrie
ucharstrie.o
deps
platform
group: bytestriebuilder
bytestriebuilder.o
deps
bytestrie stringtriebuilder sort
group: bytestrieiterator
bytestrieiterator.o
deps
bytestrie uvector32
group: bytestrie
bytestrie.o
deps
platform
group: stringtriebuilder
stringtriebuilder.o
deps
uhash
group: propsvec
propsvec.o
deps
sort utrie2_builder
group: utrie_swap
utrie_swap.o
deps
udata
group: umutablecptrie
umutablecptrie.o
deps
ucptrie
group: ucptrie
ucptrie.o
deps
platform
group: utrie2_builder
utrie2_builder.o
deps
platform
utrie2
utrie # for utrie2_fromUTrie()
group: utrie2 # Try to switch users to ucptrie.
utrie2.o
deps
platform
group: utrie # Callers should use ucptrie instead.
utrie.o
deps
platform
group: hashtable # Maps UnicodeString to value.
uhash_us.o
deps
uhash
group: uhash
uhash.o
deps
platform
group: ustack
ustack.o
deps
uvector
group: uvector
uvector.o
deps
platform
sort # for UVector::sort()
group: uvector32
uvectr32.o
deps
platform
group: uvector64
uvectr64.o
deps
platform
group: ulist
ulist.o
deps
platform
group: sort
uarrsort.o
deps
platform
group: ustr_wcs
ustr_wcs.o
deps
platform
group: bytesinkutil
bytesinkutil.o
deps
bytestream edits
group: bytestream
bytestream.o
deps
platform
group: icuplug
icuplug.o
deps
platform
group: ucol_swp
ucol_swp.o
deps
utrie_swap
group: errorcode # ErrorCode base class
errorcode.o
deps
utypes
platform
group: utypes # u_errorName()
utypes.o
deps
ubsan
group: platform
# Files in the "platform" group.
cmemory.o uobject.o
cstring.o cwchar.o uinvchar.o
charstr.o
unistr.o # for CharString::appendInvariantChars(const UnicodeString &s, UErrorCode &errorCode)
appendable.o stringpiece.o ustrtrns.o # for unistr.o
ustring.o # Other platform files really just need u_strlen
ustrfmt.o # uprv_itou
utf_impl.o
putil.o
ucln_cmn.o # for putil.o which calls ucln_common_registerCleanup
udataswp.o # for uinvchar.o; TODO: move uinvchar.o swapper functions to udataswp.o?
umath.o
umutex.o sharedobject.o
utrace.o
deps
# The "platform" group has no ICU dependencies.
PIC system_misc system_debug malloc_functions ubsan
c_strings c_string_formatting
floating_point system_locale
stdio_input readlink_function dir_io
dlfcn # Move related code into icuplug.c?
cplusplus
std_mutex
# ICU i18n library ----------------------------------------------------------- #
library: i18n
deps
region localedata genderinfo charset_detector spoof_detection
alphabetic_index collation collation_builder string_search
dayperiodrules
listformatter
formatting formattable_cnv regex regex_cnv translit
double_conversion number_representation number_output numberformatter
number_skeletons number_usageprefs numberparser
units_extra unitsformatter
universal_time_scale
uclean_i18n
group: region
region.o uregion.o
deps
icu_utility
resourcebundle
uvector uclean_i18n
group: localedata
ulocdata.o
deps
uniset_props resourcebundle
uset_props # TODO: change to using C++ UnicodeSet, remove this dependency
group: genderinfo
gender.o
deps
resourcebundle
uclean_i18n
group: charset_detector
csdetect.o csmatch.o csr2022.o csrecog.o csrmbcs.o csrsbcs.o csrucode.o csrutf8.o inputext.o ucsdet.o
deps
conversion
uclean_i18n
group: spoof_detection
uspoof.o uspoof_build.o uspoof_conf.o uspoof_impl.o scriptset.o
deps
uniset_props regex unorm uscript
group: alphabetic_index
alphaindex.o
deps
collation localedata
uclean_i18n
group: collation
# The collation "runtime" code should not depend on the collation_builder code.
# For example, loading from resource bundles does not fall back to
# building from rules.
collation.o collationcompare.o collationdata.o
collationdatareader.o collationdatawriter.o
collationfastlatin.o collationfcd.o collationiterator.o collationkeys.o
collationroot.o collationrootelements.o collationsets.o
collationsettings.o collationtailoring.o rulebasedcollator.o
uitercollationiterator.o utf16collationiterator.o utf8collationiterator.o
bocsu.o coleitr.o coll.o sortkey.o ucol.o
ucol_res.o ucol_sit.o ucoleitr.o
deps
bytestream normalizer2 resourcebundle service_registration unifiedcache
ucharstrieiterator uiter ulist uset usetiter uvector32 uvector64 utrie2
uclean_i18n propname
group: collation_builder
collationbuilder.o collationdatabuilder.o collationfastlatinbuilder.o
collationruleparser.o collationweights.o
deps
canonical_iterator collation ucharstriebuilder uset_props
group: string_search
search.o stsearch.o usearch.o
deps
breakiterator collation
group: dayperiodrules
dayperiodrules.o
deps
resourcebundle uclean_i18n
group: listformatter
listformatter.o ulistformatter.o
deps
uchar resourcebundle simpleformatter format uclean_i18n formatted_value_sbimpl
group: double_conversion
double-conversion-bignum.o double-conversion-double-to-string.o
double-conversion-bignum-dtoa.o double-conversion-cached-powers.o
double-conversion-string-to-double.o double-conversion-fast-dtoa.o
double-conversion-strtod.o
deps
platform
group: number_representation
number_decimalquantity.o string_segment.o number_utils.o
# TODO(ICU-21058) Move formatted_string_builder to its own unit.
formatted_string_builder.o
deps
decnumber double_conversion
# for trimming whitespace around fields
static_unicode_sets
# for data loading; that could be split off
resourcebundle
int_functions
ucase uniset_core
formatted_value
group: number_output
# PluralRules and FormattedNumber
number_output.o
standardplural.o plurrule.o pluralranges.o
deps
# FormattedNumber internals:
number_representation format formatted_value_sbimpl units
# PluralRules internals:
unifiedcache
group: numberformatter
# ICU 60+ NumberFormatter API
number_affixutils.o
number_compact.o number_currencysymbols.o
number_decimfmtprops.o
number_fluent.o number_formatimpl.o
number_grouping.o number_integerwidth.o number_longnames.o
number_mapper.o number_modifiers.o
number_notation.o number_padding.o
number_patternmodifier.o number_patternstring.o
number_scientific.o
currpinf.o
numrange_fluent.o numrange_impl.o
deps
decnumber double_conversion formattable units unitsformatter
listformatter number_representation number_output
numsys
number_usageprefs
number_rounding
number_symbolswrapper
uclean_i18n common
group: numsys
dcfmtsym.o
numsys.o
deps
currency
resourcebundle
uclean_i18n
group: number_usageprefs
number_multiplier.o
number_usageprefs.o
deps
number_rounding
number_symbolswrapper
unitsformatter
group: number_rounding
number_rounding.o
deps
currency
number_representation
group: number_skeletons
# Number skeleton support; separated from numberformatter
number_skeletons.o number_capi.o number_asformat.o numrange_capi.o
deps
numberformatter
units_extra
group: number_symbolswrapper
number_symbolswrapper.o
deps
platform
numsys
group: numberparser
numparse_affixes.o numparse_compositions.o numparse_currency.o
numparse_decimal.o numparse_impl.o numparse_parsednumber.o
numparse_scientific.o numparse_symbols.o
numparse_validators.o
deps
numberformatter
group: formatting
# TODO: Try to subdivide this ball of wax.
# currencyformat
curramt.o currfmt.o
# pluralrules C API
upluralrules.o
# decimalformat
unumsys.o
decimfmt.o compactdecimalformat.o
numfmt.o unum.o
winnmfmt.o
# scientificnumberformatter - would depend on dcfmtsym, so would be circular.
scientificnumberformatter.o
# rbnf
nfrs.o nfrule.o nfsubs.o rbnf.o
# measureformat
measfmt.o quantityformatter.o
# dateformat
astro.o buddhcal.o calendar.o cecal.o chnsecal.o coptccal.o dangical.o ethpccal.o
gregocal.o gregoimp.o hebrwcal.o indiancal.o islamcal.o japancal.o persncal.o taiwncal.o
erarules.o # mostly for Japanese eras
ucal.o
basictz.o olsontz.o rbtz.o simpletz.o timezone.o tzrule.o tztrans.o
vtzone.o vzone.o wintzimpl.o zonemeta.o zrule.o ztrans.o
tzfmt.o tzgnames.o tznames.o tznames_impl.o
datefmt.o dtfmtsym.o dtitvfmt.o dtitvinf.o dtptngen.o dtrule.o reldtfmt.o reldatefmt.o
smpdtfmt.o smpdtfst.o udateintervalformat.o udatpg.o windtfmt.o
udat.o
tmunit.o tmutamt.o tmutfmt.o
# messageformat
choicfmt.o msgfmt.o plurfmt.o selfmt.o umsg.o
deps
decnumber formattable format units numberformatter number_skeletons numberparser
formatted_value_sbimpl
listformatter
dayperiodrules
collation collation_builder # for rbnf
common
floating_point # sqrt() for astro.o
trigonometry # for astro.o
sharedbreakiterator # for reldatefmt.o
uclean_i18n
region
formatted_value_iterimpl # NOTE (2020-08-27): Not currently used.
group: sharedbreakiterator
sharedbreakiterator.o
deps
breakiterator
group: units_extra
measunit_extra.o
deps
units bytestriebuilder bytestrie resourcebundle uclean_i18n
group: units
measunit.o currunit.o
deps
stringenumeration errorcode
group: unitsformatter
units_data.o units_converter.o units_complexconverter.o units_router.o
deps
resourcebundle units_extra double_conversion number_representation formattable sort
group: decnumber
decContext.o decNumber.o
deps
double_conversion uclean_i18n
group: formattable
fmtable.o
measure.o
deps
decnumber number_representation
group: formattable_cnv
fmtable_cnv.o
deps
formattable unistr_cnv conversion
group: formatted_value
formattedvalue.o
deps
platform
group: formatted_value_iterimpl
formattedval_iterimpl.o
deps
formatted_value format uvector32
group: formatted_value_sbimpl
formattedval_sbimpl.o
deps
number_representation
group: format
format.o fphdlimp.o fpositer.o ufieldpositer.o
deps
resourcebundle parsepos uvector32
group: regex_cnv
uregexc.o
deps
regex unistr_cnv
group: regex
regexcmp.o regexst.o regextxt.o regeximp.o rematch.o repattrn.o uregex.o
deps
uniset_closure utext uvector32 uvector64 ustack
breakiterator
uinit # TODO: Really needed?
uclean_i18n
group: translit
anytrans.o brktrans.o casetrn.o cpdtrans.o name2uni.o uni2name.o nortrans.o remtrans.o titletrn.o tolowtrn.o toupptrn.o
esctrn.o unesctrn.o nultrans.o
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
deps
common
formatting # for Transliterator::getDisplayName()
uclean_i18n
group: universal_time_scale
utmscale.o
deps
ubsan
group: uclean_i18n
ucln_in.o
deps
platform
# ICU io library ------------------------------------------------------------- #
library: io
deps
ustdio ustream uclean_io
group: ustdio
locbund.o sprintf.o sscanf.o ufile.o ufmt_cmn.o uprintf.o uprntf_p.o uscanf.o uscanf_p.o ustdio.o
deps
formatting conversion translit
uclean_io
stdio_output
group: ustream
ustream.o
deps
unistr_cnv
uchar # for u_isWhitespace()
iostream
group: uclean_io
ucln_io.o
deps
platform