Version 0.51 du système de construction Meson

Publié construire la version du système tableau 0.51, qui est utilisé pour créer des projets tels que X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME et GTK+. Le code Meson est écrit en Python et fourni sous licence Apache 2.0.

L'objectif principal du développement de Meson est de fournir une vitesse élevée du processus d'assemblage combinée à une commodité et une facilité d'utilisation. Au lieu de l'utilitaire make, la version par défaut utilise la boîte à outils Ninja, mais il est également possible d'utiliser d'autres backends, tels que xcode et VisualStudio. 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).

La compilation croisée et la création sur Linux, macOS et Windows à l'aide de GCC, Clang, Visual Studio et d'autres compilateurs sont prises en charge. Il est possible de créer des projets dans différents langages de programmation, notamment C, C++, Fortran, Java et Rust. 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.

principal les innovations Méson 0.51 :

  • Ajout de la prise en charge de la construction transparente de projets existants qui utilisent des scripts de construction CMake. Meson peut désormais créer directement des sous-projets simples (tels que des bibliothèques uniques) à l'aide du module CMake, similaire aux sous-projets standard (y compris les sous-projets CMake peuvent être placés dans le répertoire des sous-projets) ;
  • Pour tous les compilateurs utilisés, des tests préliminaires sont inclus via l'assemblage et l'exécution de fichiers de test simples (contrôle d'intégrité), sans se limiter au test des indicateurs spécifiés par l'utilisateur pour les compilateurs croisés (à partir de maintenant, les compilateurs natifs de la plateforme actuelle sont également vérifiés) .
  • Ajout de la possibilité de définir les options de ligne de commande utilisées lors de la compilation croisée, avec liaison en spécifiant un préfixe de plate-forme avant l'option. Auparavant, les options de ligne de commande couvraient uniquement les versions natives et ne pouvaient pas être spécifiées pour la compilation croisée. Les options de ligne de commande s'appliquent désormais, que vous construisiez en mode natif ou en compilation croisée, garantissant que les versions natives et croisées produisent des résultats identiques ;
  • Ajout de la possibilité de spécifier l'indicateur « --cross-file » plus d'une fois sur la ligne de commande pour répertorier plusieurs fichiers croisés ;
  • Ajout de la prise en charge du compilateur ICL (Intel C/C++ Compiler) pour la plateforme Windows (ICL.EXE et ifort) ;
  • Ajout de la prise en charge initiale du kit d'outils pour CPU Xtensa (xt-xcc, xt-xc++, xt-nm) ;
  • La méthode « get_variable » a été ajoutée à l'objet « dependency », qui permet d'obtenir la valeur d'une variable sans tenir compte du type de dépendance actuelle (par exemple, dep.get_variable(pkg-config : 'var- nom', cmake : 'COP_VAR_NAME));
  • Ajout d'un nouvel argument d'options d'assemblage cible, "link_langage", pour spécifier explicitement le langage utilisé lors de l'appel de l'éditeur de liens. Par exemple, un programme Fortran principal pourrait appeler du code C/C++, qui sélectionnerait automatiquement C/C++ lorsque l'éditeur de liens Fortran doit être utilisé ;
  • La gestion des indicateurs du préprocesseur CPPFLAGS a été modifiée. Alors que Meson stockait auparavant séparément les CPPFLAGS et les indicateurs de compilation spécifiques à la langue (CFLAGS, CXXFLAGS), ils sont désormais traités de manière indissociable et les indicateurs répertoriés dans CPPFLAGS sont utilisés comme une autre source d'indicateurs de compilation pour les langages qui les prennent en charge ;
  • La sortie de custom_target et custom_target[i] peut désormais être utilisée comme arguments dans les opérations link_with et link_whole ;
  • Les générateurs ont désormais la possibilité de spécifier des dépendances supplémentaires à l'aide de l'option « depends » (par exemple, generator(program_runner, output: ['@[email protected]'], dépend : exe));
  • Ajout d'une option statique à find_library pour permettre à la recherche d'inclure uniquement les bibliothèques liées statiquement ;
  • Pour python.find_installation, la possibilité de déterminer la présence d'un module Python donné pour une version spécifique de Python a été ajoutée ;
  • Ajout d'un nouveau module unstable-kconfig pour analyser les fichiers kconfig ;
  • Ajout d'une nouvelle commande « subprojects foreach », qui prend une commande avec des arguments et l'exécute dans tous les répertoires de sous-projets ;

Source: opennet.ru

Ajouter un commentaire