Sortie des systèmes de build CMake 3.21 et Meson 0.59

La version présentée est la version du générateur de scripts de construction ouvert multiplateforme CMake 3.21, qui agit comme une alternative à Autotools et est utilisé dans des projets tels que KDE, LLVM/Clang, MySQL, MariaDB, ReactOS et Blender. Le code CMake est écrit en C++ et distribué sous licence BSD.

CMake se distingue par la fourniture d'un langage de script simple, d'un moyen d'étendre les fonctionnalités via des modules, d'un nombre minimal de dépendances (pas de liaison avec M4, Perl ou Python), de la prise en charge de la mise en cache, de la présence d'outils de compilation croisée, de la prise en charge de la génération de builds. fichiers pour un large éventail de systèmes de construction et de compilateurs, la présence des utilitaires ctest et cpack pour définir des scripts de test et des packages de construction, l'utilitaire cmake-gui pour définir de manière interactive les paramètres de construction.

Principales améliorations :

  • Ajout de la prise en charge complète du langage de programmation HIP (Heterogeneous-Computing Interface for Portability), un dialecte du langage C++ visant à faciliter la conversion des applications CUDA en code C++ portable.
  • Ajout du générateur de script de build pour Visual Studio 17 2022, basé sur Visual Studio 2022 Preview 1.1.
  • Les générateurs de scripts de build Makefile et Ninja ont ajouté les propriétés C_LINKER_LAUNCHER et CXX_LINKER_LAUNCHER, qui peuvent être utilisées pour lancer des utilitaires auxiliaires qui lancent l'éditeur de liens, tels que des analyseurs statiques. Le générateur exécutera les utilitaires spécifiés, en leur transmettant le nom de l'éditeur de liens et ses arguments.
  • Dans les propriétés « C_STANDARD » et « OBJC_STANDARD », ainsi que dans les outils de paramétrage du compilateur (Compile Features), la prise en charge des spécifications C17 et C23 a été ajoutée.
  • L'option « -toolchain » a été ajoutée à l'utilitaire cmake > pour déterminer le chemin d'accès à la boîte à outils.
  • Les types de messages affichés sur le terminal sont mis en évidence.
  • Ajout de la prise en charge du compilateur Fujitsu.
  • La commande "foreach()" garantit que les variables de boucle sont isolées dans une boucle.

De plus, on peut noter la sortie du système de build Meson 0.59, qui est utilisé pour construire des projets tels que X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME et GTK. Le code de Meson est écrit en Python et est sous licence Apache 2.0. Prend en charge la compilation croisée et la construction sur Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS et Windows à l'aide de GCC, Clang, Visual Studio et d'autres compilateurs. Il est possible de créer des projets dans divers langages de programmation, notamment C, C++, Fortran, Java et Rust. Au lieu de l'utilitaire make, la boîte à outils Ninja est utilisée par défaut lors de la construction, mais d'autres backends tels que xcode et VisualStudio peuvent également être utilisés.

Le système dispose d'un gestionnaire de dépendances multiplateforme intégré qui vous permet d'utiliser Meson pour créer des packages pour les distributions. Les règles d'assemblage sont spécifiées dans un langage simplifié spécifique au domaine, sont hautement lisibles et compréhensibles pour l'utilisateur (comme prévu par les auteurs, le développeur doit consacrer un minimum de temps à écrire des règles). Le mode de construction incrémentielle est pris en charge, dans lequel seuls les composants directement liés aux modifications apportées depuis la dernière version sont reconstruits. Meson peut être utilisé pour générer des builds répétables, dans lesquels l'exécution de la build dans différents environnements entraîne la génération de fichiers exécutables complètement identiques.

Principales innovations de Meson 0.59 :

  • Ajout de la prise en charge du langage Cython (une version avancée de Python visant à simplifier l'intégration avec le code C).
  • Ajout des mots-clés "unescaped_variables" et "unescaped_uninstalled_variables" pour définir les variables dans pkgconfig sans échapper aux espaces avec le caractère "\".
  • Ajout du support pour wrc (Wine Resource Compiler).
  • La possibilité de générer des projets pour Visual Studio 2012 et Visual Studio 2013 a été implémentée.
  • Toutes les commandes liées aux sous-projets exécutent désormais chaque sous-projet en parallèle par défaut. Le nombre de processus parallèles est déterminé par le paramètre « --num-processes ».

Source: opennet.ru

Ajouter un commentaire