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