Objektif kle nan devlopman Meson se bay gwo vitès nan pwosesis asanble a konbine avèk konvenyans ak fasilite nan itilize. Olye pou yo fè sèvis piblik la, konstriksyon default la sèvi ak bwat zouti a
Konpile kwa ak bati sou Linux, macOS ak Windows lè l sèvi avèk GCC, Clang, Visual Studio ak lòt konpilateur yo sipòte. Li posib pou konstwi pwojè nan divès langaj pwogramasyon, tankou C, C++, Fortran, Java ak Rust. Mòd konstriksyon enkreman sipòte, kote sèlman konpozan ki gen rapò dirèkteman ak chanjman ki fèt depi dènye bati a yo rebati. Meson ka itilize pou jenere batiman repete, nan ki kouri bati a nan diferan anviwònman rezilta nan jenerasyon an nan dosye ègzèkutabl konplètman idantik.
Prensipal la
- Te ajoute sipò pou konstriksyon transparan nan pwojè ki deja egziste ki sèvi ak script build CMake. Meson kapab kounye a bati dirèkteman sou-pwojè senp (tankou bibliyotèk sèl) lè l sèvi avèk modil la CMake, menm jan ak sou-pwojè estanda (ki gen ladan sou-pwojè CMake yo ka mete nan anyè a sou-pwojè);
- Pou tout konpilatè yo itilize, tès preliminè enkli nan asanble a ak ekzekisyon dosye tès senp (chèk sanite), pa limite a tès drapo itilizatè yo espesifye pou kwa-konpilateur (apati kounye a, konpilateur natif natal nan platfòm aktyèl la yo tcheke tou) .
- Te ajoute kapasite nan defini opsyon liy kòmand yo itilize pandan kwa-konpilasyon, ak obligatwa lè yo espesifye yon prefiks platfòm anvan opsyon an. Anvan sa, opsyon liy kòmand yo te kouvri sèlman bati natif natal epi yo pa t 'kapab espesifye pou kwa-konpilasyon. Opsyon liy kòmand yo aplike kounye a kèlkeswa si w ap bati natif natal oswa kwa-konpile, asire ke natif natal ak kwa-bati pwodui rezilta ki idantik;
- Te ajoute kapasite pou presize "--cross-file" drapo a plis pase yon fwa sou liy lòd la pou lis plizyè kwa-fichye;
- Te ajoute sipò pou du ICL (Intel C/C++ Compiler) pou platfòm Windows (ICL.EXE ak ifort);
- Te ajoute sipò inisyal zouti pou CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
- Yo te ajoute metòd "get_variable" nan objè "dependency" la, ki pèmèt ou jwenn valè yon varyab san yo pa pran an konsiderasyon kalite depandans aktyèl la (pa egzanp, dep.get_variable(pkg-config : 'var-). non', cmake : 'COP_VAR_NAME));
- Te ajoute yon nouvo agiman opsyon asanble sib, "link_language", pou presize klèman lang yo itilize lè w ap rele linker la. Pa egzanp, yon pwogram prensipal Fortran ta ka rele kòd C/C++, ki ta otomatikman chwazi C/C++ lè yo ta dwe itilize Fortran linker la;
- Manyen drapo preprosesè CPPFLAGS yo te chanje. Lè nou konsidere ke Meson te deja estoke CPPFLAGS ak drapo konpilasyon espesifik lang (CFLAGS, CXXFLAGS) separeman, kounye a yo trete yo inséparabl epi drapo yo ki nan lis CPPFLAGS yo itilize kòm yon lòt sous drapo konpilasyon pou lang ki sipòte yo;
- Pwodiksyon custom_target ak custom_target[i] kapab kounye a itilize kòm agiman nan operasyon yo link_with ak link_whole;
- Jeneratè kounye a gen kapasite pou presize depandans adisyonèl lè l sèvi avèk opsyon "depann" (pa egzanp, generator(program_runner, output: ['@)[imèl pwoteje]'], depann de: exe));
- Te ajoute yon opsyon estatik nan find_library pou pèmèt rechèch la gen ladan sèlman bibliyotèk ki lye estatik;
- Pou python.find_installation, yo te ajoute kapasite pou detèmine prezans yon modil Python bay pou yon vèsyon espesifik Python;
- Te ajoute nouvo modil unstable-kconfig pou analize kconfig fichye yo;
- Te ajoute yon nouvo lòd "subprojects foreach", ki pran yon kòmandman ak agiman epi kouri li nan tout anyè subproject;
Sous: opennet.ru