Outils pour utilisateurs

Outils du site


prog:cmake

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
prog:cmake [2024/08/30 15:13] – Ajout des commandes externes aux targets rootprog:cmake [2025/12/11 10:36] (Version actuelle) – [Compilation] : précision sur les versions à installer de CMake root
Ligne 7: Ligne 7:
 ''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>
 git clone https://gitlab.kitware.com/cmake/cmake git clone https://gitlab.kitware.com/cmake/cmake
 cd cmake cd cmake
-cmake -B build+cmake -B build -DCMAKE_USE_OPENSSL:BOOL=ON -DBUILD_TESTING:BOOL=OFF -DCMAKE_BUILD_TYPE=Release
 cmake --build build --parallel 16 cmake --build build --parallel 16
 sudo cmake --install build sudo cmake --install build
 </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}}
Ligne 47: Ligne 53:
  
 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
Ligne 56: Ligne 66:
 ''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====
Ligne 85: Ligne 95:
  
 <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
Ligne 329: Ligne 339:
 </code> </code>
  
-Ce problème peut se produire en lançant la commande `python -m ensurepipcar elle lance la sous-commande `pip installet 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>
Ligne 530: Ligne 540:
    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>
prog/cmake.1725023630.txt.gz · Dernière modification : de root