La version du générateur de scripts de construction multiplateforme open source CMake 3.22 a été présentée, servant d'alternative à Autotools et utilisée dans des projets tels que KDE, LLVM/Clang, MySQL, MariaDB, ReactOS et Blender. Le code de CMake est écrit en C++ et est 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.
Améliorations principales :
- Les outils de configuration des fonctionnalités de compilation (Compile Features) ont été mis à jour pour permettre l'activation et la désactivation des extensions du compilateur sans spécifier le niveau de support standard, et pour exclure l'ajout de drapeaux superflus liés au niveau standard du langage lorsque les options sélectionnées correspondent aux paramètres par défaut du compilateur.
- La commande cmake_host_system_information() a été enrichie de la possibilité de demander l'identifiant du système d'exploitation, stocké dans le fichier /etc/os-release.
- Les variables d'environnement CMAKE_BUILD_TYPE et CMAKE_CONFIGURATION_TYPES ont été ajoutées, permettant de définir la valeur par défaut des variables CMake nommées.
- Une nouvelle variable «CMAKE_REQUIRE_FIND_PACKAGE_» a été ajoutée, modifiant l'appel à la fonction find_package() pour rendre la découverte du package spécifié obligatoire.
- Une variable d'environnement «CMAKE_INSTALL_MODE» a été introduite pour gérer la création de liens symboliques au lieu de la copie de fichiers lors de l'appel à «install()».
- Le drapeau «CMAKE__LINK_WHAT_YOU_USE_FLAG» et la variable «CMAKE_LINK_WHAT_YOU_USE_CHECK» ont été ajoutés pour définir et vérifier les drapeaux de l'éditeur de liens.
- Dans le module FetchContent, les variables «CMAKE_TLS_VERIFY», «CMAKE_TLS_CAINFO», «CMAKE_NETRC» et «CMAKE_NETRC_FILE» sont maintenant passées dans le script de construction des projets externes (auparavant, ces paramètres étaient ignorés).
- Le macro «cmake_dependent_option()» fourni par le module «CMakeDependentOption» prend désormais en charge pleinement la syntaxe des expressions conditionnelles.
- Les modules «FindJasper» et «FindMatlab» fournissent désormais des cibles importables.
- La propriété «VS_SETTINGS» prend maintenant en charge tous les types de fichiers contenant du code source.
- Le générateur «Visual Studio 10 2010» a été déclaré obsolète et sera supprimé dans une prochaine version.
Source : opennet.ru
