Je suis tombé sur un post qui m'a bien dépanné sur StackOverflow, mais malheureusement plus suffisant pour compiler la dernière version de libzip (0.11.1). Voici donc un petit guide step-by-step pour compiler libzippp sous windows !

Etape 1 - les outils

Tout d'abord, vous devez disposer de Microsoft Visual Studio 2012 Express Edition pour le Desktop et de l'utilitaire CMake. Ce dernier doit être installé et mis dans le PATH (ce qui est demandé lors de l'installation).

Etape 2 - les sources

Télécharger le zip complet de libzippp. Vous pouvez également opter pour la version git clone en utilisant par exemple MySysGit. Vous aurez également besoin de libzip (0.11.1) et de zlib (1.2.8). Attention, il faudra créer l'architecture correcte afin de pouvoir compiler, alors rendez-vous à l'étape 3.

Etape 3 - architecture

Commencez par extraire libzippp à l'emplacement désiré. Ensuite créez un dossier lib et placez les librairies zlib et libzip dans ce dossier pour les extraire. Au final, vous devriez avoir les dossiers suivants:

libzippp/
libzippp/src
libzippp/tests
libzippp/patch
libzippp/lib/libzip-0.11.1/
libzippp/lib/zlib-1.2.8/

Etape 4 - Compilation de la zlib

Ouvrez une console VS2012 (via le menu démarrer) et rendez-vous dans le dossier libzippp. Les commandes suivantes vont compiler la zlib:

cd "path/to/libzippp"
cd "lib/zlib-1.2.8"
mkdir build
cd "build"
cmake .. -G"Visual Studio 11" -DCMAKE_INSTALL_PREFIX="install"
msbuild /P:Configuration=Debug INSTALL.vcxproj
msbuild /P:Configuration=Release INSTALL.vcxproj

A ce stade, la zlib est compilée et vous devriez disposer des DLL et des LIB dans les dossiers Debug et Release.

Etape 5 - Compilation de libzip

Il y a deux astuces à cette étape. La première est de savoir que la version 0.11.1 ne compile pas sous windows ! Heureusement cela se règle assez facilement par un patch. Pour simplifier la chose, vous pouvez utiliser le zip qui contient les fichiers modifiés joint à ce billet :)

La deuxième est qu'il faut indiquer à cmake l'emplacement de la zlib pour pouvoir compiler libzip. Voici les commandes à exécuter, toujours dans une console VS2012:

cd "path/to/libzippp"
cd "lib/libzip-0.11.1"
mkdir build
cd "build"
cmake .. -G"Visual Studio 11" -DCMAKE_PREFIX_PATH="../zlib-1.2.8/build/install"
msbuild /P:Configuration=Debug ALL_BUILD.vcxproj
msbuild /P:Configuration=Release ALL_BUILD.vcxproj

Etape 6 - Compilation de libzippp

Si toutes les étapes précédentes se sont passées correctement, ce n'est qu'une formalité.

cd "path/to/libzippp"
mkdir build
cd "build"
cmake .. -G"Visual Studio 11" -DCMAKE_PREFIX_PATH="lib/zlib-1.2.8/build/install"
msbuild /P:Configuration=Debug ALL_BUILD.vcxproj
msbuild /P:Configuration=Release ALL_BUILD.vcxproj

Etape 7 - Exécuter les tests

Cela juste pour s'assurer que tout fonctionne correctement et également pour prévenir un petit détail: il faut copier les DLL zlib.dll (qui se trouve dans zlib-1.2.8/build/install/bin) ainsi que zip.dll (qui se trouve dans libzip-0.11.1/build/lib/Release). Finalement vous n'avez plus qu'a faire:

cd "path/to/libzippp"
cd "build/Release"
libzippp_test.exe

Et voila !