Meson build system release 0.51

publicat versió del sistema de compilació Mesó 0.51, que s'utilitza per crear projectes com ara X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME i GTK+. El codi Meson està escrit en Python i subministrat amb llicència d'Apache 2.0.

L'objectiu clau del desenvolupament de Meson és proporcionar una alta velocitat del procés de muntatge combinat amb comoditat i facilitat d'ús. En lloc de la utilitat make, la compilació predeterminada utilitza el conjunt d'eines ninja, però també és possible utilitzar altres backends, com ara xcode i VisualStudio. El sistema té un gestor de dependències multiplataforma integrat que us permet utilitzar Meson per crear paquets per a distribucions. Les regles de muntatge s'especifiquen en un llenguatge simplificat específic del domini, són molt llegibles i comprensibles per a l'usuari (tal com pretenen els autors, el desenvolupador hauria de dedicar un mínim de temps a escriure regles).

S'admet la compilació creuada i la creació a Linux, macOS i Windows mitjançant GCC, Clang, Visual Studio i altres compiladors. És possible construir projectes en diversos llenguatges de programació, inclosos C, C++, Fortran, Java i Rust. S'admet el mode de compilació incremental, en el qual només es reconstrueixen els components directament relacionats amb els canvis fets des de l'última compilació. Meson es pot utilitzar per generar compilacions repetibles, en què l'execució de la compilació en diferents entorns dóna lloc a la generació de fitxers executables completament idèntics.

El principal innovacions Mesó 0.51:

  • S'ha afegit suport per a la creació transparent de projectes existents que utilitzen scripts de compilació CMake. Meson ara pot construir directament subprojectes simples (com ara biblioteques individuals) utilitzant el mòdul CMake, similar als subprojectes estàndard (inclosos els subprojectes CMake es poden col·locar al directori de subprojectes);
  • Per a tots els compiladors utilitzats, les proves preliminars s'inclouen mitjançant el muntatge i l'execució de fitxers de prova senzills (comprovació de cordura), sense limitar-se a provar els indicadors especificats per l'usuari per a compiladors creuats (a partir d'ara, també es revisen els compiladors natius de la plataforma actual). .
  • S'ha afegit la possibilitat de definir opcions de línia d'ordres utilitzades durant la compilació creuada, amb vinculació especificant un prefix de plataforma abans de l'opció. Anteriorment, les opcions de línia d'ordres només cobrien les compilacions natives i no es podien especificar per a la compilació creuada. Les opcions de línia d'ordres ara s'apliquen independentment de si esteu creant de forma nativa o de compilació creuada, assegurant-vos que les compilacions natives i creuades produeixin resultats idèntics;
  • S'ha afegit la possibilitat d'especificar el senyalador "--cross-file" més d'una vegada a la línia d'ordres per llistar diversos fitxers creuats;
  • S'ha afegit suport per al compilador ICL (Compilador Intel C/C++) per a la plataforma Windows (ICL.EXE i ifort);
  • S'ha afegit el suport del kit d'eines inicial per a la CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • S'ha afegit el mètode "get_variable" a l'objecte "dependència", que permet obtenir el valor d'una variable sense tenir en compte el tipus de dependència actual (per exemple, dep.get_variable(pkg-config : 'var- nom', cmake: 'COP_VAR_NAME));
  • S'ha afegit un nou argument d'opcions de muntatge de destinació, "link_language", per especificar explícitament l'idioma utilitzat quan es crida l'enllaçador. Per exemple, un programa principal de Fortran podria cridar codi C/C++, que seleccionaria automàticament C/C++ quan s'hauria d'utilitzar l'enllaç Fortran;
  • S'ha canviat el maneig dels senyals de preprocessador CPPFLAGS. Mentre que Meson anteriorment emmagatzemava els CPPFLAGS i els indicadors de compilació específics de l'idioma (CFLAGS, CXXFLAGS) per separat, ara es processen de manera inseparable i els indicadors enumerats a CPPFLAGS s'utilitzen com una altra font de senyals de compilació per als idiomes que els admeten;
  • La sortida de custom_target i custom_target[i] ara es pot utilitzar com a arguments a les operacions link_with i link_whole;
  • Els generadors ara tenen la capacitat d'especificar dependències addicionals mitjançant l'opció "depends" (per exemple, generator(program_runner, output: ['@[protegit per correu electrònic]'], depèn de: exe));
  • S'ha afegit una opció estàtica a find_library per permetre que la cerca inclogui només biblioteques enllaçades estàticament;
  • Per a python.find_installation, s'ha afegit la possibilitat de determinar la presència d'un mòdul Python determinat per a una versió específica de Python;
  • S'ha afegit un nou mòdul unstable-kconfig per analitzar fitxers kconfig;
  • S'ha afegit una nova ordre "subprojects foreach", que pren una ordre amb arguments i l'executa a tots els directoris del subprojecte;

Font: opennet.ru

Afegeix comentari