la version du générateur de scripts de construction multiplateforme et open source , servant d'alternative à Autotools et utilisé dans des projets tels que KDE, LLVM/Clang, MySQL, MariaDB, ReactOS et Blender. Le code de CMake est écrit en C++ et distribué sous licence BSD.
CMake est remarquable pour sa fourniture d'un langage de script simple, d'extensions fonctionnelles via des modules, d'un minimum de dépendances (pas de lien avec M4, Perl ou Python), de support pour la mise en cache, d'outils pour la cross-compilation, de génération de fichiers de construction pour une large gamme de systèmes de construction et de compilateurs, présentant les utilitaires ctest et cpack pour la définition des scripts de test et de construction de paquets, ainsi que l'outil cmake-gui pour le paramétrage interactif des options de construction.
Principales :
- Un nouveau générateur de scripts de construction basé sur l'outil Ninja a été ajouté - «Ninja Multi-Config», qui se distingue de l'ancien générateur par sa capacité à traiter plusieurs configurations de construction en même temps.
- Dans le générateur de scripts de construction pour Visual Studio la possibilité de définir des fichiers sources associés à chaque configuration (per-config sources).
- Dans les outils de configuration des paramètres du compilateur (Compile Features), la possibilité de spécifier des méta-paramètres pour CUDA («cuda_std_03», «cuda_std_14», etc.) a été ajoutée.
- Les variables «CMAKE_CUDA_RUNTIME_LIBRARY» et «CUDA_RUNTIME_LIBRARY» ont été ajoutées pour choisir le type de bibliothèques runtime lors de l'utilisation de CUDA.
- Le module «FindCUDAToolkit» a été ajouté pour déterminer les outils CUDA disponibles sur le système sans activer le langage CUDA.
- L'utilitaire cmake a ajouté la commande «—debug-find» pour fournir un diagnostic lisible supplémentaire lors des opérations de recherche. Une variable CMAKE_FIND_DEBUG_MODE a été ajoutée à des fins similaires.
- Dans le module «FindCURL», un support a été ajouté pour rechercher les outils CURL à l'aide des fichiers de configuration cmake générés «CURLConfig.cmake». Pour désactiver ce comportement, une variable CURL_NO_CURL_CMAKE a été prévue.
- Dans le module FindPython, la possibilité de rechercher des composants Python dans des environnements virtuels gérés par «conda» a été ajoutée.
- L'utilitaire ctest a ajouté des options «—no-tests=[error|ignore]» pour définir le comportement en cas d'absence de tests et «—repeat» pour définir les conditions de relance des tests (until-pass, after-timeout).
- Le transfert des propriétés de la cible de construction INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES et INTERFACE_LINK_DEPENDS parmi les dépendances internes des bibliothèques statiquement liées a été garanti.
- Lors de l'utilisation de l'outil MinGW, la recherche des fichiers DLL par la commande find_library est désactivée par défaut (à la place, une tentative d'importation des bibliothèques «.dll.a» est effectuée par défaut).
- La logique de choix de l'utilitaire ninja dans le générateur Ninja ne dépend désormais plus du nom du fichier exécutable - le premier utilitaire ninja-build, ninja ou samu trouvé dans les chemins définis par la variable d'environnement PATH est utilisé.
- L'utilitaire cmake a ajouté la commande «-E rm», qui peut être utilisée pour supprimer des fichiers et des répertoires au lieu des commandes séparées «-E remove» et «-E remove_directory».
Source : opennet.ru
