From: Lucian Petrut Date: Thu, 9 Jan 2025 13:50:18 +0000 (-0500) Subject: win32: add libicu Windows build X-Git-Tag: v19.2.3~288^2~34 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=be450472ccd7c7968b1d709a775871a79a5d39d1;p=ceph.git win32: add libicu Windows build cephfs introduces a new dependency: libicu. We need to update the Windows build scripts to build and link against libicu. Signed-off-by: Patrick Donnelly Signed-off-by: Lucian Petrut (cherry picked from commit e80d0bf0079fc61630852f3047eebfcf1ae428f5) --- diff --git a/win32_build.sh b/win32_build.sh index 788f1db2381b5..6ab9564588c2f 100755 --- a/win32_build.sh +++ b/win32_build.sh @@ -114,8 +114,10 @@ wnbdSrcDir="${depsSrcDir}/wnbd" wnbdLibDir="${depsToolsetDir}/wnbd/lib" dokanSrcDir="${depsSrcDir}/dokany" dokanLibDir="${depsToolsetDir}/dokany/lib" +libicuSrcDir="${depsSrcDir}/icu" +libicuLibDir="${depsToolsetDir}/libicu" -depsDirs="$lz4Dir;$sslDir;$boostDir;$zlibDir;$backtraceDir;$snappyDir" +depsDirs="$lz4Dir;$sslDir;$boostDir;$zlibDir;$backtraceDir;$snappyDir;$libicuLibDir" depsDirs+=";$winLibDir" # Cmake recommends using CMAKE_PREFIX_PATH instead of link_directories. diff --git a/win32_deps_build.sh b/win32_deps_build.sh index d68a452beb19a..97d01bd7491f9 100755 --- a/win32_deps_build.sh +++ b/win32_deps_build.sh @@ -41,6 +41,11 @@ dokanTag="v2.0.5.1000" dokanSrcDir="${depsSrcDir}/dokany" dokanLibDir="${depsToolsetDir}/dokany/lib" +libicuUrl="https://github.com/unicode-org/icu" +libicuTag="release-76-1" +libicuSrcDir="${depsSrcDir}/icu" +libicuLibDir="${depsToolsetDir}/libicu" + mingwLlvmUrl="https://github.com/mstorsjo/llvm-mingw/releases/download/20230320/llvm-mingw-20230320-ucrt-ubuntu-18.04-x86_64.tar.xz" mingwLlvmSha256Sum="bc367753dea829d219be32e2e64e2d15d03158ce8e700ae5210ca3d78e6a07ea" mingwLlvmDir="${DEPS_DIR}/mingw-llvm" @@ -378,5 +383,27 @@ $MINGW_DLLTOOL -d $dokanSrcDir/dokan/dokan.def \ # sys/public.h without the "sys" prefix. cp $dokanSrcDir/sys/public.h $dokanSrcDir/dokan +echo "Building libicu." +cd $depsSrcDir +if [[ ! -d $libicuSrcDir ]]; then + git clone --branch $libicuTag --depth 1 $libicuUrl + cd $libicuSrcDir +fi +mkdir -p $libicuSrcDir/build-windows +mkdir -p $libicuSrcDir/build-linux + +cd $libicuSrcDir/build-linux +../icu4c/source/configure +_make + +cd $libicuSrcDir/build-windows +../icu4c/source/configure \ + --enable-static \ + --host=${MINGW_BASE} \ + --with-cross-build=$PWD/../build-linux \ + --prefix=$libicuLibDir +_make +_make install + echo "Finished building Ceph dependencies." touch $depsToolsetDir/completed