====== Compilation ICU 65.1 ====== {{tag>cpp dev}} Voilà comment j'ai procéder pour réussir à compiler la library ICU en version 65.1 sous Windows, sans passer par cygwin. ====== ====== ===== Sous Windows 10 ===== - Télécharger les packages **icu4c-65_1-src.zip** et **icu4c-65_1-data.zip** depuis la page: https://github.com/unicode-org/icu/releases/tag/release-65-1 - Extraire **icu4c-65_1-src.zip** pour obtenir un répertoire **icu/** - Extraire **icu4c-65_1-data.zip** pour obtenir un répertoire **data/** - Ecraser le répertoire **icu/source/data/** avec le répertoire précédent. - Ouvrir un command prompt **dans le répertoire icu/** - Appliquer le patch (voir lien ci-dessous) pour ICU: ..\busybox64.exe patch -p1 < ..\icu-65.1-win.patch - Charger l'environment de construction Visual Studio: call "D:\Apps\VisualStudio2017_CE\VC\Auxiliary\Build\vcvarsall.bat" amd64 - Mettre à jour le PATH pour accéder aux binaires et à python pendant la construction: set PATH=W:\Projects\NervSeed\deps\build\icu\bin64;%PATH% set PATH=W:\Projects\NervSeed\tools\windows\python-3.6\bin;%PATH% - Lancer la construction: msbuild source\allinone\allinone.sln /p:Configuration=Release /p:Platform=x64 /p:SkipUWP=true - Executer les tests: source\allinone\icucheck.bat x64 Release Une fois la construction terminée on obtient 3 sous-répertoires **bin64/include/lib64** qui contiennent les binaires/headers/libraries (et qui peuvent être déplacés ailleurs bien sûr). ===== Notes ===== * Avec Visual Studio 2017, sans patch, on obtient des erreurs car la librairy **ucrt.lib** n'est pas trouvée: tout simplement parce que les headers/library patch du Windows SDK sont introuvable dans les fichiers projects. (=> correction du fichier **source/allinone/Build.Windows.ProjectConfiguration.props** {{.:1230:build.windows.projectconfiguration.props}}) * Par ailleurs, ce projet utilise python pour compiler les "data" de ICU, mais les lignes de commande font par défaut référence à **"py"** pour exécuter python alors que la version dont je dispose s'appelle bien **python.exe** (=> corrections des fichiers: **source/data/makedata.mak** {{.:1230:makedata.mak}} et **source/test/testdata/testdata.mak** {{.:1230:testdata.mak}}) * **Important**: il **ne faut pas renommer** le répertoire racine **icu** pour effectuer la construction, sinon vous aurez des erreurs dans les tests finaux (et le projet "testdata" ne semble se construire du tout ?) ===== Ressources ===== * Le patch à appliquer: {{.:1230:icu-65.1-win.patch}} * Une version minimale de python 3.6 (portable): [[http://nervtech.org/shared/python-3.6-win.7z]] ===== References ===== * http://site.icu-project.org/download * readme.html file from the icu4c-65_1-src.zip package