1set(LIB_ICU_COMMON icuuc) 2set(LIB_ICU_DATA icudata) 3set(LIB_ICU_I18N icui18n) 4 5if(ENABLE_GITEE_EULER) 6 set(GIT_REPOSITORY "https://gitee.com/src-openeuler/icu.git") 7 set(GIT_TAG "openEuler-22.03-LTS") 8 set(SHA256 "612513798f36d229f7467cc8f0aef4dfb16c7012e1f4d8dbeee813922c4dfe9f") 9 set(ICU4C_SRC "${TOP_DIR}/build/mindspore/_deps/icu4c-src/icu4c") 10 set(ICU4C_TAR_SRC "${TOP_DIR}/build/mindspore/_deps/icu4c-src") 11 __download_pkg_with_git(icu4c ${GIT_REPOSITORY} ${GIT_TAG} ${SHA256}) 12 execute_process(COMMAND mkdir ${ICU4C_SRC}) 13 execute_process(COMMAND tar -xf ${ICU4C_TAR_SRC}/icu4c-69_1-src.tgz --strip-components 1 -C ${ICU4C_SRC}) 14else() 15if(ENABLE_GITEE) 16 set(REQ_URL "https://gitee.com/mirrors/icu/repository/archive/release-69-1.tar.gz") 17 set(SHA256 "cb085ebf0152045a84c84011348bb7e09e38248c02b5a85f69a7d85866774b82") 18else() 19 set(REQ_URL "https://github.com/unicode-org/icu/archive/release-69-1.tar.gz") 20 set(SHA256 "39ce83dd5d15c7539dde261733e106a391923f82caf1ce52ecaebb72d93b4579") 21endif() 22endif() 23 24if(CMAKE_SYSTEM_NAME MATCHES "Windows") 25 message("icu4c thirdparty do not support windows currently.") 26else() 27 set(JSON_FILE "{ \n\ 28 \"strategy\": \"additive\",\n\ 29 \"featureFilters\": {\n\ 30 \"normalization\": \"include\"\n\ 31 }\n\ 32}\ 33 ") 34 file(WRITE ${CMAKE_BINARY_DIR}/icu4c_filter.json ${JSON_FILE}) 35 if(CMAKE_SYSTEM_NAME MATCHES "Darwin") 36 mindspore_add_pkg(icu4c 37 VER 69.1 38 LIBS ${LIB_ICU_COMMON} ${LIB_ICU_DATA} ${LIB_ICU_I18N} 39 URL ${REQ_URL} 40 SHA256 ${SHA256} 41 PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/icu4c/icu4c.patch01 42 CONFIGURE_COMMAND ./icu4c/source/runConfigureICU MacOSX --disable-tests 43 --disable-samples --disable-icuio --disable-extras 44 ICU_DATA_FILTER_FILE=${CMAKE_BINARY_DIR}/icu4c_filter.json 45 ) 46 else() 47 mindspore_add_pkg(icu4c 48 VER 69.1 49 LIBS ${LIB_ICU_COMMON} ${LIB_ICU_DATA} ${LIB_ICU_I18N} 50 URL ${REQ_URL} 51 SHA256 ${SHA256} 52 PATCHES ${TOP_DIR}/third_party/patch/icu4c/icu4c.patch01 53 CONFIGURE_COMMAND ./icu4c/source/runConfigureICU Linux --enable-rpath --disable-tests --disable-samples 54 --disable-icuio --disable-extras 55 ICU_DATA_FILTER_FILE=${CMAKE_BINARY_DIR}/icu4c_filter.json 56 ) 57 endif() 58 include_directories(${icu4c_INC}) 59 if(CMAKE_SYSTEM_NAME MATCHES "Darwin") 60 include(${CMAKE_SOURCE_DIR}/cmake/change_rpath.cmake) 61 changerpath($<TARGET_FILE:icu4c::${LIB_ICU_COMMON}> ${LIB_ICU_COMMON} "libicuuc;libicudata") 62 changerpath($<TARGET_FILE:icu4c::${LIB_ICU_DATA}> ${LIB_ICU_DATA} "libicudata") 63 changerpath($<TARGET_FILE:icu4c::${LIB_ICU_I18N}> ${LIB_ICU_I18N} "libicuuc;libicudata;libicui18n") 64 endif() 65 add_library(mindspore::icuuc ALIAS icu4c::${LIB_ICU_COMMON}) 66 add_library(mindspore::icudata ALIAS icu4c::${LIB_ICU_DATA}) 67 add_library(mindspore::icui18n ALIAS icu4c::${LIB_ICU_I18N}) 68 add_definitions(-D ENABLE_ICU4C) 69endif() 70