]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
win32: add libicu Windows build
authorLucian Petrut <lpetrut@cloudbasesolutions.com>
Thu, 9 Jan 2025 13:50:18 +0000 (08:50 -0500)
committerPatrick Donnelly <pdonnell@ibm.com>
Thu, 27 Feb 2025 18:41:57 +0000 (13:41 -0500)
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>
win32_build.sh
win32_deps_build.sh

index 788f1db2381b536e90213ba23fde51c435a6f170..6ab9564588c2f97a9a12ae52659c047fa035689b 100755 (executable)
@@ -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.
index 4d92b2443eb218292f1417de721335ece0f2515c..653e00db57c6e43610b04d45e39187ff7510da94 100755 (executable)
@@ -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