J'essaie de compiler une bibliothèque libpng. Le problème, c’est que j’ai besoin d’une version spécifique de cette bibliothèque - 1.2.37 - car le projet dans lequel je l’utilise est écrit avec cette version ..__J'ai trouvé le code source de cette version ici (Projet GnuWin32).
Mais la structure du dossier ressemble à ceci:
libpng-1.2.37-src/
contrib/
projects/
scripts/
CMakeLists.txt
png.h
pngread.c
pngwrite.c
...
Voir, le CMakeLists.txt est un niveau plus profond que les fichiers source.
J'ai essayé:
Que dois-je faire pour que cela fonctionne? Je ne sais pas pourquoi le fichier CMakeLists.txt serait inclus s'il ne pouvait pas être utilisé.
Le fichier INSTALL
dit explicitement:
If you want to use "cmake" (see www.cmake.org), copy CMakeLists.txt
from the "scripts" directory to this directory and type
cmake . [-DPNG_MMX=YES] -DCMAKE_INSTALL_PREFIX=/path
make
make install
Et comme note de côté, avant cela, il est dit que la manière classique de l’installer est:
On Unix/Linux and similar systems, you can simply type
./configure [--prefix=/path]
make check
make install
On dirait que vous avez bien fait avec 3), cependant vous avez oublié de nettoyer le répertoire de compilation avant de réessayer.
Si c'est la bibliothèque que vous utilisez dans votre projet, vous pouvez la construire automatiquement via une technique appelée 'superbuild' (utilisez ExternalProject_Add). En spécifiant SOURCE_SUBDIR comme décrit ici dans le sous-répertoire avec CMakeLists.txt, vous pouvez faire quelque chose comme cela
ExternalProject_Add(libpng
GIT_REPOSITORY url-to-your-repository.git
GIT_TAG v1.2.37
SOURCE_SUBDIR "scripts"