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 <pdonnell@ibm.com>
Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
This commit is contained in:
Lucian Petrut 2025-01-09 08:50:18 -05:00 committed by Patrick Donnelly
parent db58a29a53
commit e80d0bf007
No known key found for this signature in database
GPG Key ID: FA47FD0B0367D313
2 changed files with 30 additions and 1 deletions

View File

@ -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.

View File

@ -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"
@ -357,5 +362,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