| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| prog:cmake [2025/07/16 14:34] – [add_library] : add_library n'a pas besoin des sources. C'est target_sources qui s'en occupe root | prog:cmake [2025/12/11 10:36] (Version actuelle) – [Compilation] : précision sur les versions à installer de CMake root |
|---|
| ''sudo apt-get install libssl-dev''. | ''sudo apt-get install libssl-dev''. |
| |
| Compilation | * CMake préinstallé |
| | |
| | La compilation nécessite d'avoir un CMake d'installé. |
| |
| <code bash> | <code bash> |
| sudo cmake --install build | sudo cmake --install build |
| </code> | </code> |
| | |
| | Suite des versions à installer : 3.6 > 3.13 > 3.31 > 4... |
| | |
| | * Bootstrap |
| |
| La méthode ''bootstrap'' va télécharger un cmake précompilé, binaire qui peut ne pas être utilisable sur les vieilles distributions. | La méthode ''bootstrap'' va télécharger un cmake précompilé, binaire qui peut ne pas être utilisable sur les vieilles distributions. |
| |
| Il faut effacer le fichier ''CMakeCache.txt'' et le dossier ''CMakeFiles'' dans le dossier de compilation. Cela permet de conserver les binaires / fichiers objets déjà compilés. | Il faut effacer le fichier ''CMakeCache.txt'' et le dossier ''CMakeFiles'' dans le dossier de compilation. Cela permet de conserver les binaires / fichiers objets déjà compilés. |
| | |
| | * Options de debug de CMake |
| | |
| | Ajouter ''%%--warn-unitialized%%'' à la configuration pour vérifier si des variables CMake sont utilisées sans être initialisées. |
| |
| * Différences entre les générateurs | * Différences entre les générateurs |
| ''CMAKE_BUILD_TYPE'' est indispensable lors de la génération des CMakeLists.txt pour les générateurs mono-build. | ''CMAKE_BUILD_TYPE'' est indispensable lors de la génération des CMakeLists.txt pour les générateurs mono-build. |
| |
| ''%%--%%config'' est indispensable lors de la compilation pour les générateurs multi-build. | ''%%--%%config'' est indispensable lors de la compilation pour les générateurs multi-build et l'utilisation de ''CMAKE_BUILD_TYPE'' est proscrit. |
| |
| ====Cross compilation pour Android==== | ====Cross compilation pour Android==== |
| 0x000000000000000f (RUNPATH) Library rpath: [path1:path2:path3] | 0x000000000000000f (RUNPATH) Library rpath: [path1:path2:path3] |
| |
| Si les valeurs sont correctement remplies sous l'attribut ''RUNPATH'', il faut forcer l'utilisation de ''RPATH''. Ajouter au linker l'option ''%%-Wl,--disable-new-dtags%%''. | Si les valeurs sont correctement remplies sous l'attribut ''RUNPATH'', il faut forcer l'utilisation de ''RPATH''. Ajouter au linker l'option ''%%-Wl,--disable-new-dtags%%''. Sous Linux, cette option est globalement nécessaire si on compile avec une ''CMAKE_PREFIX_PATH'' qui contient plusieurs paths (comme l'indique la ligne précédente). |
| |
| <code cmake> | <code cmake> |