diff --git a/3party/icu/CMakeLists.txt b/3party/icu/CMakeLists.txt index 5ea982f43f..9d433a753c 100644 --- a/3party/icu/CMakeLists.txt +++ b/3party/icu/CMakeLists.txt @@ -14,6 +14,7 @@ set(SRC icu/icu4c/source/common/cmemory.cpp icu/icu4c/source/common/cstring.cpp icu/icu4c/source/common/edits.cpp + icu/icu4c/source/common/emojiprops.cpp icu/icu4c/source/common/loadednormalizer2impl.cpp icu/icu4c/source/common/localebuilder.cpp icu/icu4c/source/common/locid.cpp @@ -38,6 +39,8 @@ set(SRC icu/icu4c/source/common/ubidiwrt.cpp icu/icu4c/source/common/ucase.cpp icu/icu4c/source/common/uchar.cpp + icu/icu4c/source/common/ucharstrie.cpp + icu/icu4c/source/common/ucharstrieiterator.cpp icu/icu4c/source/common/ucln_cmn.cpp icu/icu4c/source/common/ucmndata.cpp icu/icu4c/source/common/ucptrie.cpp @@ -85,6 +88,7 @@ set(SRC icu/icu4c/source/common/utrie2.cpp icu/icu4c/source/common/utrie_swap.cpp icu/icu4c/source/common/uvector.cpp + icu/icu4c/source/common/uvectr32.cpp icu/icu4c/source/i18n/anytrans.cpp icu/icu4c/source/i18n/casetrn.cpp icu/icu4c/source/i18n/cpdtrans.cpp diff --git a/3party/icu/README.md b/3party/icu/README.md index 045c0f8ad4..24a7828e50 100644 --- a/3party/icu/README.md +++ b/3party/icu/README.md @@ -9,8 +9,32 @@ To use icu code, define UCONFIG_USE_LOCAL and add 3 include search paths: Only necessary sources are included for bidi and transliteration. Please add other sources if you need more functionality. -## Example how to build filtered data file +# How to build and update icudtXXl.dat file + +After updating ICU submodule, please also update the data/icudtXXl.dat file (XX is an ICU version). + +```bash +mkdir build && cd build +ICU_DATA_FILTER_FILE=../icu_filter.json ../icu/icu4c/source/./configure --disable-shared --enable-static --disable-renaming --disable-extras --disable-icuio --disable-tests --disable-samples --with-data-packaging=archive +make -j$(nproc) +cp data/out/icudt??l.dat ../../../data/ +``` + +Don't forget to delete an old .dat file in the $(OMIM_ROOT)/data and update all references in the code: ``` -ICU_DATA_FILTER_FILE=$(PWD)/icu_filter.json $(PWD)/icu/icu4c/source/./configure --disable-shared --enable-static --disable-renaming --disable-extras --disable-icuio --disable-tests --disable-samples --with-data-packaging=archive +indexer/transliteration_loader.cpp +16: char const kICUDataFile[] = "icudt69l.dat"; + +android/script/replace_links.bat +42:cp -r ../data/icudt69l.dat assets/ + +iphone/Maps/Maps.xcodeproj/project.pbxproj +453: BB7626B61E85599C0031D71C /* icudt69l.dat in Resources */ = {isa = PBXBuildFile; fileRef = BB7626B41E8559980031D71C /* icudt69l.dat */; }; +1316: BB7626B41E8559980031D71C /* icudt69l.dat */ = {isa = PBXFileReference; lastKnownFileType = file; name = icudt69l.dat; path = ../../data/icudt69l.dat; sourceTree = ""; }; +3557: BB7626B41E8559980031D71C /* icudt69l.dat */, +3841: BB7626B61E85599C0031D71C /* icudt69l.dat in Resources */, + +qt/CMakeLists.txt +132: icudt69l.dat ``` diff --git a/3party/icu/icu b/3party/icu/icu index a91cd6736e..904cf62457 160000 --- a/3party/icu/icu +++ b/3party/icu/icu @@ -1 +1 @@ -Subproject commit a91cd6736e5586bd88e62f9b7893ae4550297f14 +Subproject commit 904cf62457de2440e8526deb75c95a3f7296f517 diff --git a/android/script/replace_links.bat b/android/script/replace_links.bat index f146b18cc8..a51ecfcc66 100644 --- a/android/script/replace_links.bat +++ b/android/script/replace_links.bat @@ -39,7 +39,7 @@ cp -r ../data/resources-6plus_clear/ assets/ cp -r ../data/sound-strings/ assets/ cp -r ../data/countries-strings/ assets/ -cp -r ../data/icudt69l.dat assets/ +cp -r ../data/icudt70l.dat assets/ rm -rf flavors/mwm-ttf-assets diff --git a/data/icudt69l.dat b/data/icudt70l.dat similarity index 83% rename from data/icudt69l.dat rename to data/icudt70l.dat index 6deaaf1cdd..a424ec9673 100644 Binary files a/data/icudt69l.dat and b/data/icudt70l.dat differ diff --git a/indexer/transliteration_loader.cpp b/indexer/transliteration_loader.cpp index c241db90e1..5eaec80f87 100644 --- a/indexer/transliteration_loader.cpp +++ b/indexer/transliteration_loader.cpp @@ -13,7 +13,7 @@ void InitTransliterationInstanceWithDefaultDirs() { #if defined(OMIM_OS_ANDROID) - char const kICUDataFile[] = "icudt69l.dat"; + char const kICUDataFile[] = "icudt70l.dat"; if (!GetPlatform().IsFileExistsByFullPath(GetPlatform().WritableDir() + kICUDataFile)) { try diff --git a/iphone/Maps/Maps.xcodeproj/project.pbxproj b/iphone/Maps/Maps.xcodeproj/project.pbxproj index 100aa92e57..e00f3e5f81 100644 --- a/iphone/Maps/Maps.xcodeproj/project.pbxproj +++ b/iphone/Maps/Maps.xcodeproj/project.pbxproj @@ -450,7 +450,7 @@ B33D21B820E130D000BAD749 /* BookmarksTabViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B33D21B720E130D000BAD749 /* BookmarksTabViewController.swift */; }; B3E3B4FD20D463B700DA8C13 /* BMCCategoriesHeader.xib in Resources */ = {isa = PBXBuildFile; fileRef = B3E3B4FC20D463B700DA8C13 /* BMCCategoriesHeader.xib */; }; BB25B1A71FB32767007276FA /* transit_colors.txt in Resources */ = {isa = PBXBuildFile; fileRef = BB25B1A51FB32767007276FA /* transit_colors.txt */; }; - BB7626B61E85599C0031D71C /* icudt69l.dat in Resources */ = {isa = PBXBuildFile; fileRef = BB7626B41E8559980031D71C /* icudt69l.dat */; }; + BB7626B61E85599C0031D71C /* icudt70l.dat in Resources */ = {isa = PBXBuildFile; fileRef = BB7626B41E8559980031D71C /* icudt70l.dat */; }; BB8123D62130427E00ADE512 /* MetalContextFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = BB8123D52130427E00ADE512 /* MetalContextFactory.mm */; }; CD4A1F132305872700F2A6B6 /* PromoBookingPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD4A1F122305872700F2A6B6 /* PromoBookingPresentationController.swift */; }; CD6E8677226774C700D1EDF7 /* CPConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD6E8676226774C700D1EDF7 /* CPConstants.swift */; }; @@ -1313,7 +1313,7 @@ B33D21B720E130D000BAD749 /* BookmarksTabViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarksTabViewController.swift; sourceTree = ""; }; B3E3B4FC20D463B700DA8C13 /* BMCCategoriesHeader.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BMCCategoriesHeader.xib; sourceTree = ""; }; BB25B1A51FB32767007276FA /* transit_colors.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = transit_colors.txt; path = ../../data/transit_colors.txt; sourceTree = ""; }; - BB7626B41E8559980031D71C /* icudt69l.dat */ = {isa = PBXFileReference; lastKnownFileType = file; name = icudt69l.dat; path = ../../data/icudt69l.dat; sourceTree = ""; }; + BB7626B41E8559980031D71C /* icudt70l.dat */ = {isa = PBXFileReference; lastKnownFileType = file; name = icudt70l.dat; path = ../../data/icudt70l.dat; sourceTree = ""; }; BB8123D42130427E00ADE512 /* MetalContextFactory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MetalContextFactory.h; sourceTree = ""; }; BB8123D52130427E00ADE512 /* MetalContextFactory.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MetalContextFactory.mm; sourceTree = ""; }; CD4A1F122305872700F2A6B6 /* PromoBookingPresentationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PromoBookingPresentationController.swift; sourceTree = ""; }; @@ -3554,7 +3554,7 @@ 978D4A30199A11E600D72CA7 /* faq.html */, EEFE7C1212F8C9E1006AF8C3 /* fonts_blacklist.txt */, EEFE7C1312F8C9E1006AF8C3 /* fonts_whitelist.txt */, - BB7626B41E8559980031D71C /* icudt69l.dat */, + BB7626B41E8559980031D71C /* icudt70l.dat */, F623DA6A1C9C2731006A3436 /* opening_hours_how_to_edit.html */, FA85F632145DDDC20090E1A0 /* packed_polygons.bin */, 451950391B7A3E070085DA05 /* patterns.txt */, @@ -3838,7 +3838,7 @@ F6E2FF001E097BA00083EBEC /* SearchCategoryCell.xib in Resources */, F6E2FF331E097BA00083EBEC /* MWMSearchCommonCell.xib in Resources */, F6E2FF061E097BA00083EBEC /* SearchHistoryClearCell.xib in Resources */, - BB7626B61E85599C0031D71C /* icudt69l.dat in Resources */, + BB7626B61E85599C0031D71C /* icudt70l.dat in Resources */, 34AB665C1FC5AA330078E451 /* TransportTransitIntermediatePoint.xib in Resources */, F6E2FF151E097BA00083EBEC /* SearchHistoryQueryCell.xib in Resources */, F6E2FEE81E097BA00083EBEC /* MWMSearchNoResults.xib in Resources */, diff --git a/qt/CMakeLists.txt b/qt/CMakeLists.txt index 3d2976c047..0fa43501e3 100644 --- a/qt/CMakeLists.txt +++ b/qt/CMakeLists.txt @@ -129,7 +129,7 @@ copy_resources( unicode_blocks.txt World.mwm WorldCoasts.mwm - icudt69l.dat + icudt70l.dat 00_NotoNaskhArabic-Regular.ttf 00_NotoSansThai-Regular.ttf diff --git a/xcode/icu/icu.xcodeproj/project.pbxproj b/xcode/icu/icu.xcodeproj/project.pbxproj index 1455314513..396df102d3 100644 --- a/xcode/icu/icu.xcodeproj/project.pbxproj +++ b/xcode/icu/icu.xcodeproj/project.pbxproj @@ -374,6 +374,12 @@ FA526333266AEA4D00B5EBFD /* uinvchar.h in Headers */ = {isa = PBXBuildFile; fileRef = FA525FA0266AEA4C00B5EBFD /* uinvchar.h */; }; FA526334266AEA4D00B5EBFD /* locmap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA525FA1266AEA4C00B5EBFD /* locmap.cpp */; }; FA526337266AEA4D00B5EBFD /* utrace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA525FA4266AEA4C00B5EBFD /* utrace.cpp */; }; + FACE0515276CA365006A197F /* emojiprops.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FACE0513276CA364006A197F /* emojiprops.cpp */; }; + FACE0516276CA365006A197F /* emojiprops.h in Headers */ = {isa = PBXBuildFile; fileRef = FACE0514276CA365006A197F /* emojiprops.h */; }; + FACE051B276CA5DE006A197F /* ucharstrieiterator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FACE0517276CA5DD006A197F /* ucharstrieiterator.cpp */; }; + FACE051C276CA5DE006A197F /* uvectr32.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FACE0518276CA5DE006A197F /* uvectr32.cpp */; }; + FACE051D276CA5DE006A197F /* ucharstrie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FACE0519276CA5DE006A197F /* ucharstrie.cpp */; }; + FACE051E276CA5DE006A197F /* uvectr32.h in Headers */ = {isa = PBXBuildFile; fileRef = FACE051A276CA5DE006A197F /* uvectr32.h */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -747,6 +753,12 @@ FA525FA0266AEA4C00B5EBFD /* uinvchar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uinvchar.h; sourceTree = ""; }; FA525FA1266AEA4C00B5EBFD /* locmap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = locmap.cpp; sourceTree = ""; }; FA525FA4266AEA4C00B5EBFD /* utrace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = utrace.cpp; sourceTree = ""; }; + FACE0513276CA364006A197F /* emojiprops.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = emojiprops.cpp; sourceTree = ""; }; + FACE0514276CA365006A197F /* emojiprops.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = emojiprops.h; sourceTree = ""; }; + FACE0517276CA5DD006A197F /* ucharstrieiterator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ucharstrieiterator.cpp; sourceTree = ""; }; + FACE0518276CA5DE006A197F /* uvectr32.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = uvectr32.cpp; sourceTree = ""; }; + FACE0519276CA5DE006A197F /* ucharstrie.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ucharstrie.cpp; sourceTree = ""; }; + FACE051A276CA5DE006A197F /* uvectr32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uvectr32.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -961,6 +973,8 @@ FA525E2A266AEA4B00B5EBFD /* cstring.cpp */, FA525F02266AEA4B00B5EBFD /* cstring.h */, FA525F2E266AEA4B00B5EBFD /* edits.cpp */, + FACE0513276CA364006A197F /* emojiprops.cpp */, + FACE0514276CA365006A197F /* emojiprops.h */, FA525F37266AEA4B00B5EBFD /* loadednormalizer2impl.cpp */, FA525EF5266AEA4B00B5EBFD /* localebuilder.cpp */, FA525E3A266AEA4B00B5EBFD /* locid.cpp */, @@ -999,6 +1013,8 @@ FA525EB4266AEA4B00B5EBFD /* ucase.cpp */, FA525F69266AEA4B00B5EBFD /* ucase.h */, FA525F68266AEA4B00B5EBFD /* uchar.cpp */, + FACE0519276CA5DE006A197F /* ucharstrie.cpp */, + FACE0517276CA5DD006A197F /* ucharstrieiterator.cpp */, FA525F26266AEA4B00B5EBFD /* ucln_cmn.cpp */, FA525F9F266AEA4C00B5EBFD /* ucln_cmn.h */, FA525F1E266AEA4B00B5EBFD /* ucln_imp.h */, @@ -1076,6 +1092,8 @@ FA525E4B266AEA4B00B5EBFD /* utrie2.h */, FA525EB3266AEA4B00B5EBFD /* uvector.cpp */, FA525E19266AEA4B00B5EBFD /* uvector.h */, + FACE0518276CA5DE006A197F /* uvectr32.cpp */, + FACE051A276CA5DE006A197F /* uvectr32.h */, ); name = common; path = ../../3party/icu/icu/icu4c/source/common; @@ -1220,6 +1238,7 @@ FA526075266AEA4C00B5EBFD /* quant.h in Headers */, FA526216266AEA4D00B5EBFD /* uobject.h in Headers */, FA5261F7266AEA4D00B5EBFD /* edits.h in Headers */, + FACE051E276CA5DE006A197F /* uvectr32.h in Headers */, FA52621B266AEA4D00B5EBFD /* caniter.h in Headers */, FA52603F266AEA4C00B5EBFD /* upluralrules.h in Headers */, FA526183266AEA4D00B5EBFD /* rbt_set.h in Headers */, @@ -1392,6 +1411,7 @@ FA526057266AEA4C00B5EBFD /* stsearch.h in Headers */, FA526230266AEA4D00B5EBFD /* uchar.h in Headers */, FA526235266AEA4D00B5EBFD /* ucnv_cb.h in Headers */, + FACE0516276CA365006A197F /* emojiprops.h in Headers */, FA5261B3266AEA4D00B5EBFD /* locmap.h in Headers */, FA526258266AEA4D00B5EBFD /* utracimp.h in Headers */, FA526247266AEA4D00B5EBFD /* utf8.h in Headers */, @@ -1511,6 +1531,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + FACE0515276CA365006A197F /* emojiprops.cpp in Sources */, FA5262FB266AEA4D00B5EBFD /* ubidi_props.cpp in Sources */, FA5260EA266AEA4C00B5EBFD /* titletrn.cpp in Sources */, FA525FAA266AEA4C00B5EBFD /* nultrans.cpp in Sources */, @@ -1545,6 +1566,7 @@ FA5261C5266AEA4D00B5EBFD /* util.cpp in Sources */, FA5262CD266AEA4D00B5EBFD /* loadednormalizer2impl.cpp in Sources */, FA52628C266AEA4D00B5EBFD /* localebuilder.cpp in Sources */, + FACE051D276CA5DE006A197F /* ucharstrie.cpp in Sources */, FA5262AB266AEA4D00B5EBFD /* unifilt.cpp in Sources */, FA5261DA266AEA4D00B5EBFD /* loclikely.cpp in Sources */, FA5260FE266AEA4C00B5EBFD /* rbt_pars.cpp in Sources */, @@ -1579,6 +1601,7 @@ FA5262D6266AEA4D00B5EBFD /* udataswp.cpp in Sources */, FA526296266AEA4D00B5EBFD /* cmemory.cpp in Sources */, FA5261BE266AEA4D00B5EBFD /* ubiditransform.cpp in Sources */, + FACE051C276CA5DE006A197F /* uvectr32.cpp in Sources */, FA526319266AEA4D00B5EBFD /* util_props.cpp in Sources */, FA525FBB266AEA4C00B5EBFD /* transreg.cpp in Sources */, FA5260C2266AEA4C00B5EBFD /* funcrepl.cpp in Sources */, @@ -1617,6 +1640,7 @@ FA5262C4266AEA4D00B5EBFD /* edits.cpp in Sources */, FA5261D8266AEA4D00B5EBFD /* unames.cpp in Sources */, FA5262ED266AEA4D00B5EBFD /* appendable.cpp in Sources */, + FACE051B276CA5DE006A197F /* ucharstrieiterator.cpp in Sources */, FA5262AC266AEA4D00B5EBFD /* utrie_swap.cpp in Sources */, FA526334266AEA4D00B5EBFD /* locmap.cpp in Sources */, FA526080266AEA4C00B5EBFD /* translit.cpp in Sources */,