Puštanje u promet montažnog sustava Meson 0.51

Objavljeno izdanje sustava za izgradnju Mezon 0.51, koji se koristi za izgradnju projekata kao što su X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME i GTK+. Meson kod je napisan u Pythonu i isporučuje se licenciran pod Apache 2.0.

Ključni cilj razvoja Mesona je osigurati veliku brzinu procesa montaže u kombinaciji s praktičnošću i jednostavnošću korištenja. Umjesto uslužnog programa make, zadana verzija koristi set alata Ninja, ali moguće je koristiti i druge pozadine, kao što su xcode i VisualStudio. Sustav ima ugrađeni rukovatelj ovisnosti za više platformi koji vam omogućuje korištenje Mesona za izradu paketa za distribucije. Pravila sklapanja navedena su u pojednostavljenom jeziku specifičnom za domenu, vrlo su čitljiva i razumljiva korisniku (prema namjeri autora, programer bi trebao potrošiti minimalno vremena na pisanje pravila).

Podržano je unakrsno prevođenje i izgradnja na Linuxu, macOS-u i Windowsu pomoću GCC-a, Clang-a, Visual Studio-a i drugih kompilatora. Moguće je izraditi projekte u različitim programskim jezicima, uključujući C, C++, Fortran, Java i Rust. Podržan je inkrementalni način izrade, u kojem se ponovno grade samo komponente koje su izravno povezane s promjenama učinjenima od posljednje izgradnje. Meson se može koristiti za generiranje ponovljivih nadogradnji, u kojima izvođenje nadogradnje u različitim okruženjima rezultira stvaranjem potpuno identičnih izvršnih datoteka.

Glavni inovacije Mezon 0.51:

  • Dodana podrška za transparentnu izgradnju postojećih projekata koji koriste CMake skripte za izgradnju. Meson sada može izravno graditi jednostavne potprojekte (kao što su pojedinačne biblioteke) koristeći CMake modul, slično standardnim potprojektima (uključujući CMake potprojekte koji se mogu smjestiti u direktorij podprojekata);
  • Za sve korištene kompajlere uključeno je preliminarno testiranje kroz sastavljanje i izvođenje jednostavnih testnih datoteka (provjera ispravnosti), ne ograničavajući se na testiranje korisničkih zastavica za unakrsne prevoditelje (od sada se provjeravaju i prevoditelji izvorni za trenutnu platformu) .
  • Dodana je mogućnost definiranja opcija naredbenog retka koje se koriste tijekom unakrsne kompilacije, uz povezivanje navođenjem prefiksa platforme prije opcije. Prethodno su opcije naredbenog retka pokrivale samo izvorne nadogradnje i nisu se mogle navesti za unakrsnu kompilaciju. Opcije naredbenog retka sada se primjenjuju bez obzira na to gradite li nativno ili unakrsno kompiliranje, osiguravajući da izvorna i unakrsna izgradnja proizvode identične rezultate;
  • Dodana je mogućnost navođenja oznake “--cross-file” više od jednom u naredbenom retku za popis višestrukih datoteka;
  • Dodana podrška za ICL kompajler (Intel C/C++ Compiler) za Windows platformu (ICL.EXE i ifort);
  • Dodana početna podrška alata za CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Metoda “get_variable” dodana je objektu “dependency” koja vam omogućuje da dobijete vrijednost varijable bez uzimanja u obzir vrste trenutne ovisnosti (na primjer, dep.get_variable(pkg-config : 'var- ime', cmake : 'COP_VAR_NAME));
  • Dodan je novi argument opcija ciljanog sklopa, "link_language", za eksplicitno određivanje jezika koji se koristi prilikom pozivanja povezivača. Na primjer, glavni Fortran program mogao bi pozvati C/C++ kod, koji bi automatski odabrao C/C++ kada bi se trebao koristiti Fortran povezivač;
  • Rukovanje zastavicama pretprocesora CPPFLAGS je promijenjeno. Dok je Meson prethodno odvojeno pohranjivao CPPFLAGS i oznake kompilacije specifične za jezik (CFLAGS, CXXFLAGS), sada se obrađuju neodvojivo, a oznake navedene u CPPFLAGS koriste se kao još jedan izvor oznaka kompilacije za jezike koji ih podržavaju;
  • Izlaz custom_target i custom_target[i] sada se može koristiti kao argument u operacijama link_with i link_whole;
  • Generatori sada imaju mogućnost specificiranja dodatnih ovisnosti pomoću opcije "ovisi" (na primjer, generator(program_runner, output: [‘@)[e-pošta zaštićena]'], ovisi: exe));
  • Dodana statička opcija za find_library kako bi se omogućilo pretraživanje da uključi samo statički povezane biblioteke;
  • Za python.find_installation, dodana je mogućnost utvrđivanja prisutnosti određenog Python modula za određenu verziju Pythona;
  • Dodan novi modul unstable-kconfig za analiziranje kconfig datoteka;
  • Dodana je nova naredba “subprojects foreach”, koja preuzima naredbu s argumentima i pokreće je u svim direktorijima potprojekta;

Izvor: opennet.ru

Dodajte komentar