| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| prog:cmake [2024/12/12 11:33] – [Compilation] : ajout des options de compilation 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> |
| </code> | </code> |
| |
| La méthode de ''bootstrap'' n'est nécessaire que si on ne possède pas un cmake précompilé. | 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. |
| |
| [[https://www.scivision.dev/cmake-dev-build-tips/|Build CMake from dev sources]] {{ :prog:cmake:build_cmake_from_dev_sources_09_01_2023_15_51_22_.html |Archive du 01/03/2021 le 09/01/2023}} | [[https://www.scivision.dev/cmake-dev-build-tips/|Build CMake from dev sources]] {{ :prog:cmake:build_cmake_from_dev_sources_09_01_2023_15_51_22_.html |Archive du 01/03/2021 le 09/01/2023}} |
| |
| 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==== |
| |
| <code cmake> | <code cmake> |
| add_library(Librairie sources.cpp sources.hpp CMakeLists.txt) | add_library(Librairie) |
| add_library(NameSpace::Librairie ALIAS Librairie) | add_library(NameSpace::Librairie ALIAS Librairie) |
| set(Librairie_SRC ${CMAKE_CURRENT_SOURCE_DIR}/sources.cpp | set(Librairie_SRC ${CMAKE_CURRENT_SOURCE_DIR}/sources.cpp |
| </code> | </code> |
| |
| Ce problème peut se produire en lançant la commande `python -m ensurepip` car elle lance la sous-commande `pip install` et cette commande peut générer l'erreur : | Ce problème peut se produire en lançant la commande ''python -m ensurepip'' car elle lance la sous-commande ''pip install'' et cette commande peut générer l'erreur : |
| |
| <code> | <code> |
| 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> |