La version multiplateforme du générateur de scripts de construction open source CMake 3.21 a été publié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 la 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 :
- Un support complet du langage de programmation HIP (Heterogeneous-Computing Interface for Portability), un dialecte du langage C++, a été ajouté, visant à simplifier la transformation des applications CUDA en code C++ portable.
- Un générateur de scripts de construction pour Visual Studio 17 2022, basé sur la version préliminaire Visual Studio 2022 Preview 1.1, a été ajouté.
- Les générateurs de scripts de construction Makefile et Ninja ont ajouté les propriétés C_LINKER_LAUNCHER et CXX_LINKER_LAUNCHER, permettant de lancer des utilitaires auxiliaires qui exécutent le liaisons, tels que des analyseurs statiques. Le générateur lancera les utilitaires spécifiés en leur transmettant le nom du lien et ses arguments.
- Le support des spécifications C17 et C23 a été ajouté dans les propriétés « C_STANDARD » et « OBJC_STANDARD », ainsi que dans les outils permettant de configurer les options du compilateur (Compile Features).
- Une option « —toolchain » a été ajoutée à l'utilitaire cmake pour définir le chemin vers l'outil.
- La coloration des types de messages affichés dans le terminal a été assurée.
- Le support du compilateur Fujitsu a été ajouté.
- Dans la commande « foreach() », l'isolation des variables de boucle à l'intérieur de la boucle a été assurée.
On peut également noter la sortie du système de construction Meson 0.59, utilisé pour la construction de projets tels que X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME et GTK. Le code de Meson est écrit en Python et distribué sous la licence Apache 2.0. Il prend en charge la cross-compilation et la construction sur Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS et Windows en utilisant GCC, Clang, Visual Studio et d'autres compilateurs. La construction de projets dans divers langages de programmation, y compris C, C++, Fortran, Java et Rust, est possible. Au lieu de l'outil make, l'outil Ninja est utilisé par défaut pour la construction, mais d'autres backends, comme xcode et VisualStudio, peuvent également être utilisés.
Le système intègre un gestionnaire de dépendances multiplateforme, permettant d'utiliser Meson pour compiler des packages pour les distributions. Les règles de compilation sont spécifiées dans un langage orienté domaine simplifié, offrant une bonne lisibilité et étant compréhensibles pour l'utilisateur (conformément à l'intention des auteurs, le développeur doit consacrer le minimum de temps à l'écriture des règles). Un mode de compilation incrémentielle est pris en charge, où seuls les composants directement liés aux modifications apportées depuis la dernière compilation sont recompilés. Meson peut être utilisé pour créer des compilations reproductibles, où l'exécution dans différents environnements génère des fichiers exécutables entièrement identiques.
Principales nouveautés de Meson 0.59 :
- Ajout du support pour le langage Cython (une version améliorée de Python, visant à simplifier l'intégration avec du code C).
- Ajout des mots-clés « unescaped_variables » et « unescaped_uninstalled_variables » pour définir des variables dans pkgconfig sans échappement des espaces par le caractère « \ ».
- Ajout du support pour wrc (Wine Resource Compiler).
- Implémentation de la possibilité de générer des projets pour Visual Studio 2012 et Visual Studio 2013.
- Toutes les commandes liées au traitement des sous-projets lancent désormais chaque sous-projet par défaut en parallèle. Le nombre de processus fonctionnant en parallèle est défini par le paramètre « --num-processes ».
Source : opennet.ru
