La fonction suivante va nous dire si les fichiers que l'on va lui dire de chercher, existent ou pas :
Voici comment il faut faire :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
CMAKE_INSTALL_PREFIX/include/MALIB/ et CMAKE_INCLUDE_PATH
find_path(MALIB_INCLUDE_DIR
NAMES malib.h autreFichier.h
PATHS "${MALIB_PREFIX}/include/MALIB/" ${CMAKE_INSTALL_PREFIX}/include/MALIB/
${CMAKE_INCLUDE_PATH}
)
if (MALIB_INCLUDE_DIR)
MESSAGE(STATUS "Found MALIB headers : ${MALIB_INCLUDE_DIR}")
else (MALIB_INCLUDE_DIR)
MESSAGE(FATAL_ERROR "errrrr MALIB headers not found baahhhh bouuuuuu")
endif (MALIB_INCLUDE_DIR)
|
C'est quoi ces nouvelles variables ?
Convention, c'est toujours pareil, convention.
Faisons le point sur ces variables :
- CMAKE_INSTALL_PREFIX : définit un préfixe d'installation, donc peut-être le dossier parent du dossier include où sont les fichiers headers dont il faut tester la présence
- CMAKE_INCLUDE_PATH : une liste de dossier include, il peut y avoir le bon dans le lot
- MALIB_PREFIX : le préfixe d'installation de la lib que l'on cherche (cette variable peut avoir le nom que vous voulez, mais je vous dirai quand même Convention!!!)
- MALIB_INCLUDE_DIR : variable que l'on peut appeler comme on veut (mais au moins avec un nom comme ça on sait que quoi on parle, Convention!!!). Elle contient les nom du dossier include de la lib (celui des 3 qui a fonctionné) si la fonction find_path a effectivement trouvée quelque chose, ou 0 si elle n'a rien trouvé ce qui veut dire que les headers ne sont pas installés, en tout cas pas à l'endroit où on lui a dit de chercher
Ensuite la condition est assez facile à comprendre, si on a trouvé, on affiche le dossier MALIB_INCLUDE_DIR, sinon on dit que l'on à pas trouvé et on dit a CMake qu'il y a une erreur (FATAL_ERROR).
|