Ukukhishwa kwesistimu yokwakha ye-Meson 0.51

eshicilelwe ukwakha ukukhishwa kwesistimu I-Meson 0.51, esetshenziselwa ukwakha amaphrojekthi afana ne-X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME kanye ne-GTK+. Ikhodi ye-Meson ibhalwe nge-Python futhi kuhlinzekiwe ilayisensi ngaphansi kwe-Apache 2.0.

Umgomo oyinhloko wokuthuthukiswa kwe-Meson ukuhlinzeka ngesivinini esiphezulu senqubo yokuhlanganisa kuhlanganiswe nokunethezeka nokusebenziseka kalula. Esikhundleni se-make utility, isakhiwo esizenzakalelayo sisebenzisa ikhithi yamathuluzi Ninja, kodwa futhi kungenzeka ukusebenzisa ezinye izingemuva, njenge-xcode ne-VisualStudio. Uhlelo lunesibambi sokuncika sezingxenyekazi eziningi esakhelwe ngaphakathi esikuvumela ukuthi usebenzise i-Meson ukuze wakhe amaphakheji okusabalalisa. Imithetho yomhlangano icaciswe ngolimi olwenziwe lula oluqondene nesizinda, ifundeka kakhulu futhi iqondakala kumsebenzisi (njengoba kuhloswe ababhali, umthuthukisi kufanele asebenzise ubuncane besikhathi ebhala imithetho).

Ukuhlanganisa nokwakha ku-Linux, i-macOS ne-Windows usebenzisa i-GCC, i-Clang, i-Visual Studio nezinye izihlanganisi kuyasekelwa. Kungenzeka ukwakha amaphrojekthi ngezilimi ezihlukahlukene zokuhlela, okuhlanganisa i-C, C++, Fortran, Java neRust. Imodi yokwakha ekhuphukayo iyasekelwa, lapho kuphela izingxenye ezihlobene ngokuqondile nezinguquko ezenziwe kusukela ekwakhiweni kokugcina zakhiwa kabusha. I-Meson ingasetshenziselwa ukukhiqiza izakhiwo eziphindaphindwayo, lapho ukusebenzisa isakhiwo ezindaweni ezihlukene kubangela ukukhiqizwa kwamafayela asebenzisekayo afane ngokuphelele.

main emisha I-Meson 0.51:

  • Ukwesekwa okwengeziwe kokwakhiwa okusobala kwamaphrojekthi akhona asebenzisa izikripthi zokwakha ze-CMake. I-Meson manje ingakha ngokuqondile amaphrojekthi angaphansi alula (njengemitapo yolwazi eyodwa) esebenzisa imojula ye-CMake, efana namaphrojekthi angaphansi avamile (okuhlanganisa amaphrojekthi angaphansi kwe-CMake angafakwa kuhla lwemibhalo lwamaphrojekthi amancane);
  • Kubo bonke abahlanganisi abasetshenzisiwe, ukuhlola kwasekuqaleni kufakiwe ngokuhlanganisa kanye nokwenziwa kwamafayela okuhlola alula (ukuhlola ukuhlanzeka kwengqondo), okungakhawulelwe ekuhloleni amafulegi ashiwo umsebenzisi wabahlanganisi abahlukahlukene (kusukela manje kuqhubeke, abahlanganisi bomdabu endaweni yamanje bayahlolwa) .
  • Kwengezwe ikhono lokuchaza izinketho zomugqa womyalo ezisetshenziswa ngesikhathi sokuhlanganiswa okuphambene, nokubophezela ngokucacisa isiqalo senkundla ngaphambi kwenketho. Ngaphambilini, izinketho zomugqa womyalo zazimboza kuphela izakhiwo zomdabu futhi azikwazanga ukucaciswa ekuhlanganisweni okuphambene. Izinketho zomugqa womyalo manje ziyasebenza kungakhathaliseki ukuthi wakha ngokomdabu noma ngokuhlanganisa ndawonye, ​​uqinisekisa ukuthi izakhiwo zomdabu kanye neziphambano zikhiqiza imiphumela efanayo;
  • Kwengezwe ikhono lokucacisa ifulegi elithi “--cross-file” izikhathi ezingaphezu kwesisodwa emugqeni womyalo ukuze kufakwe uhlu lwamafayela ahlukene;
  • Ukwesekwa okwengeziwe kwe-ICL compiler (Intel C/C++ Compiler) yesikhulumi se-Windows (ICL.EXE ne-ifort);
  • Kwengezwe usekelo lwekhithi yamathuluzi yokuqala ye-CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Indlela ethi “get_variable” yengezwe entweni “yokuncika,” ekuvumela ukuthi uthole inani lokuhlukahluka ngaphandle kokucabangela uhlobo lokuncika kwamanje (ngokwesibonelo, dep.get_variable(pkg-config : 'var- igama', cmake : 'COP_VAR_NAME));
  • Kwengezwe i-agumenti entsha yezinketho zokuhlanganisa okuqondiwe, "link_language", ukuze icacise ngokusobala ulimi olusetshenziswa lapho kubizwa isixhumi. Isibonelo, uhlelo oluyinhloko lwe-Fortran lungabiza ikhodi ye-C/C++, engakhetha ngokuzenzakalelayo i-C/C++ lapho kufanele kusetshenziswe isixhumi se-Fortran;
  • Ukuphathwa kwamafulegi we-CPPFLAGS preprocessor kushintshiwe. Nakuba i-Meson ike yagcina ama-CPPFLAGS namafulegi okuhlanganisa ulimi oluthile (CFLAGS, CXXFLAGS) ngokuhlukana, manje asecutshungulwa ngokungenakuhlukaniswa futhi amafulegi asohlwini lwe-CPPFLAGS asetshenziswa njengomunye umthombo wokuhlanganiswa kwamafulegi wezilimi eziwasekelayo;
  • Okukhiphayo kwe-custom_target kanye ne-custom_target[i] manje kungasetshenziswa njengezimpikiswano ku-link_with kanye nokusebenza kwe-link_whole;
  • Amajeneretha manje anamandla okucacisa okuncika okwengeziwe kusetshenziswa inketho ethi “depends” (ngokwesibonelo, ijeneretha(program_runner, okukhiphayo: ['@[i-imeyili ivikelwe]'], kuncike: exe));
  • Kwengezwe inketho emile ku-find_library ukuvumela ukusesha ukuthi kufake kuphela imitapo yolwazi exhunywe ngokwezibalo;
  • Nge-python.find_installation, ikhono lokunquma ubukhona bemojula yePython enikeziwe yenguqulo ethile yePython lengeziwe;
  • Kwengezwe imojuli entsha engazinzile-kconfig yokudlulisa amafayela e-kconfig;
  • Kwengezwe umyalo omusha othi “amaphrojekthi angaphansi kwangaphambi komunye”, othatha umyalo onezimpikiswano futhi uwusebenzise kuzo zonke izinkomba zephrojekthi engaphansi;

Source: opennet.ru

Engeza amazwana