Kutolewa kwa mfumo wa Meson 0.51

iliyochapishwa kuunda kutolewa kwa mfumo Meson 0.51, ambayo hutumika kujenga miradi kama vile Seva ya X.Org, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME na GTK+. Nambari ya Meson imeandikwa kwa Python na hutolewa leseni chini ya Apache 2.0.

Lengo kuu la maendeleo ya Meson ni kutoa kasi ya juu ya mchakato wa mkutano pamoja na urahisi na urahisi wa matumizi. Badala ya kutengeneza matumizi, muundo chaguomsingi hutumia zana ya zana Ninja, lakini pia inawezekana kutumia viambajengo vingine, kama vile xcode na VisualStudio. Mfumo una kidhibiti cha utegemezi cha majukwaa mengi ambacho hukuruhusu kutumia Meson kuunda vifurushi vya usambazaji. Sheria za mkusanyiko zimebainishwa katika lugha iliyorahisishwa mahususi ya kikoa, zinaweza kusomeka na kueleweka kwa mtumiaji (kama ilivyokusudiwa na waandishi, msanidi programu anapaswa kutumia muda mdogo kuandika sheria).

Kukusanya na kujenga kwenye Linux, macOS na Windows kwa kutumia GCC, Clang, Visual Studio na wakusanyaji wengine kunasaidiwa. Inawezekana kujenga miradi katika lugha mbalimbali za programu, ikiwa ni pamoja na C, C ++, Fortran, Java na Rust. Hali ya ongezeko la ujenzi inatumika, ambapo vipengele pekee vinavyohusiana moja kwa moja na mabadiliko yaliyofanywa tangu muundo wa mwisho hujengwa upya. Meson inaweza kutumika kutengeneza miundo inayoweza kurudiwa, ambayo kuendesha jengo katika mazingira tofauti husababisha kizazi cha faili zinazoweza kutekelezwa zinazofanana kabisa.

kuu ubunifu Meson 0.51:

  • Usaidizi ulioongezwa kwa ujenzi wa uwazi wa miradi iliyopo inayotumia hati za ujenzi za CMake. Meson sasa anaweza kuunda miradi midogo moja kwa moja (kama vile maktaba moja) kwa kutumia moduli ya CMake, sawa na miradi midogo ya kawaida (pamoja na miradi midogo ya CMake inaweza kuwekwa kwenye saraka ya miradi midogo);
  • Kwa vikusanyaji vyote vilivyotumika, majaribio ya awali yanajumuishwa kupitia ukusanyaji na utekelezaji wa faili rahisi za majaribio (kuangalia hali ya kiafya), sio tu kupima bendera zilizobainishwa na mtumiaji kwa wakusanyaji mtambuka (kuanzia sasa na kuendelea, wakusanyaji wa mfumo wa sasa pia huangaliwa) .
  • Imeongeza uwezo wa kufafanua chaguo za mstari wa amri zinazotumiwa wakati wa ujumuishaji mtambuka, kwa kuunganisha kwa kubainisha kiambishi awali cha jukwaa kabla ya chaguo. Hapo awali, chaguo za mstari wa amri zilifunika tu miundo asili na hazikuweza kubainishwa kwa ujumuishaji mtambuka. Chaguzi za mstari wa amri sasa zinatumika bila kujali kama unajenga asili au mtambuka, kuhakikisha kwamba miundo asilia na mtambuka hutoa matokeo yanayofanana;
  • Imeongeza uwezo wa kubainisha alama ya "--cross-file" zaidi ya mara moja kwenye mstari wa amri ili kuorodhesha faili-tofauti nyingi;
  • Usaidizi ulioongezwa kwa mkusanyaji wa ICL (Intel C/C++ Compiler) kwa jukwaa la Windows (ICL.EXE na ifort);
  • Imeongeza usaidizi wa awali wa zana ya CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Mbinu ya β€œget_variable” imeongezwa kwa kitu cha β€œtegemezi”, ambacho hukuruhusu kupata thamani ya kigezo bila kuzingatia aina ya utegemezi wa sasa (kwa mfano, dep.get_variable(pkg-config : 'var-) jina', cmake : 'COP_VAR_NAME));
  • Imeongeza hoja mpya ya chaguo za mkusanyiko lengwa, "link_language", ili kubainisha kwa uwazi lugha inayotumika wakati wa kuita kiunganishi. Kwa mfano, programu kuu ya Fortran inaweza kupiga nambari ya C/C++, ambayo ingechagua kiotomatiki C/C++ wakati kiunganishi cha Fortran kinafaa kutumika;
  • Ushughulikiaji wa bendera za preprocessor za CPFLAGS umebadilishwa. Ingawa hapo awali Meson alihifadhi CPFLAGS na bendera za mkusanyo wa lugha mahususi (CFLAGS, CXXFLAGS) kando, sasa zinachakatwa kwa njia isiyoweza kutenganishwa na bendera zilizoorodheshwa katika CPFLAGS hutumiwa kama chanzo kingine cha mkusanyiko wa bendera za lugha zinazoziunga mkono;
  • Matokeo ya custom_target na custom_target[i] sasa yanaweza kutumika kama hoja katika link_with na link_whole shughuli;
  • Jenereta sasa zina uwezo wa kubainisha vitegemezi vya ziada kwa kutumia chaguo la "inategemea" (kwa mfano, jenereta(program_runner, pato: ['@[barua pepe inalindwa]'], inategemea: exe));
  • Imeongeza chaguo tuli la find_library ili kuruhusu utafutaji kujumuisha maktaba zilizounganishwa tu;
  • Kwa python.find_installation, uwezo wa kuamua kuwepo kwa moduli iliyotolewa ya Python kwa toleo maalum la Python imeongezwa;
  • Imeongeza moduli mpya isiyo imara-kconfig ya kuchanganua faili za kconfig;
  • Imeongeza amri mpya "subprojects foreach", ambayo huchukua amri yenye hoja na kuiendesha katika saraka zote za mradi mdogo;

Chanzo: opennet.ru

Kuongeza maoni