మీసన్ 1.1.0 బిల్డ్ సిస్టమ్ విడుదల ప్రచురించబడింది, ఇది X.Org సర్వర్, మీసా, Lighttpd, systemd, GStreamer, Wayland, GNOME మరియు GTK వంటి ప్రాజెక్ట్లను రూపొందించడానికి ఉపయోగించబడుతుంది. మీసన్ కోడ్ పైథాన్లో వ్రాయబడింది మరియు Apache 2.0 లైసెన్స్ క్రింద లైసెన్స్ పొందింది.
మీసన్ యొక్క ముఖ్య అభివృద్ధి లక్ష్యం సౌలభ్యం మరియు వాడుకలో సౌలభ్యంతో కలిపి అధిక వేగ అసెంబ్లీ ప్రక్రియను అందించడం. తయారీకి బదులుగా, బిల్డ్ డిఫాల్ట్గా నింజా టూల్కిట్ను ఉపయోగిస్తుంది, అయితే xcode మరియు VisualStudio వంటి ఇతర బ్యాకెండ్లను కూడా ఉపయోగించవచ్చు. సిస్టమ్ అంతర్నిర్మిత బహుళ-ప్లాట్ఫారమ్ డిపెండెన్సీ హ్యాండ్లర్ను కలిగి ఉంది, ఇది పంపిణీల కోసం ప్యాకేజీలను రూపొందించడానికి మీసన్ని ఉపయోగించడానికి మిమ్మల్ని అనుమతిస్తుంది. అసెంబ్లీ నియమాలు సరళీకృత డొమైన్-నిర్దిష్ట భాషలో సెట్ చేయబడ్డాయి, అవి బాగా చదవగలిగేవి మరియు వినియోగదారుకు అర్థమయ్యేలా ఉంటాయి (రచయితల ఆలోచన ప్రకారం, డెవలపర్ నిబంధనలను వ్రాయడానికి కనీస సమయాన్ని వెచ్చించాలి).
GCC, క్లాంగ్, విజువల్ స్టూడియో మరియు ఇతర కంపైలర్లను ఉపయోగించి Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS మరియు Windowsలో క్రాస్-కంపైలింగ్ మరియు బిల్డింగ్కు మద్దతు ఉంది. C, C++, Fortran, Java మరియు Rustతో సహా వివిధ ప్రోగ్రామింగ్ భాషలలో ప్రాజెక్ట్లను నిర్మించడం సాధ్యమవుతుంది. ఇంక్రిమెంటల్ బిల్డ్ మోడ్కు మద్దతు ఉంది, దీనిలో చివరి బిల్డ్ నుండి చేసిన మార్పులకు నేరుగా సంబంధించిన భాగాలు మాత్రమే పునర్నిర్మించబడతాయి. పునరావృతమయ్యే బిల్డ్లను రూపొందించడానికి మీసన్ని ఉపయోగించవచ్చు, ఇక్కడ బిల్డ్ను వేర్వేరు వాతావరణాలలో అమలు చేయడం వలన పూర్తిగా ఒకేలా ఎక్జిక్యూటబుల్లు వస్తాయి.
మీసన్ 1.1 యొక్క ప్రధాన ఆవిష్కరణలు:
- లింక్_హూని ఉపయోగించాల్సిన అవసరం లేని అంతర్గత డిపెండెన్సీల రూపంలో ఎక్జిక్యూటబుల్స్కు నేరుగా ఆబ్జెక్ట్లను జోడించడానికి declare_dependency()కి కొత్త "objects:" ఆర్గ్యుమెంట్ జోడించబడింది.
- "meson devenv -dump" కమాండ్ ఇప్పుడు ఒక ఫైల్ను ప్రామాణిక అవుట్పుట్కు ప్రింట్ చేయడానికి బదులుగా ఎన్విరాన్మెంట్ వేరియబుల్స్ను వ్రాయడానికి పేర్కొనే ఎంపికను కలిగి ఉంది.
- డిపెండెన్సీ() ఫంక్షన్కు పారామితులను పంపడానికి తయారీలో షరతులను సృష్టించడం సులభతరం చేయడానికి FeatureOption.enable_if మరియు FeatureOption.disable_if పద్ధతులు జోడించబడ్డాయి. opt = get_option('feature').disable_if(foo కాదు, error_message : 'foo కూడా ఎనేబుల్ చేయనప్పుడు ఫీచర్ ఎనేబుల్ చేయలేము') dep = డిపెండెన్సీ('foo', అవసరం : opt)
- ఉత్పత్తి చేయబడిన ఆబ్జెక్ట్లను ఆర్గ్యుమెంట్లుగా "ఆబ్జెక్ట్లు:"కి పంపడం అనుమతించబడుతుంది.
- ప్రాజెక్ట్ ఫంక్షన్ ఇప్పుడు ప్రాజెక్ట్ లైసెన్స్ల గురించి సమాచారంతో ఫైల్లను ఇన్స్టాల్ చేయడానికి మద్దతు ఇస్తుంది.
- "సుడో మీసన్ ఇన్స్టాల్"ను అమలు చేయడం వలన లక్ష్య ప్లాట్ఫారమ్ల కోసం పునర్నిర్మాణ సమయంలో అధికారాలు రీసెట్ చేయబడతాయని నిర్ధారిస్తుంది.
- "మీసన్ ఇన్స్టాల్" ఆదేశం రూట్ హక్కులను పొందడం కోసం ప్రత్యేక హ్యాండ్లర్ను పేర్కొనే సామర్థ్యాన్ని అందిస్తుంది (ఉదాహరణకు, మీరు పోల్కిట్, సుడో, ఓపెన్డోయాస్ లేదా $MESON_ROOT_CMDని ఎంచుకోవచ్చు). నాన్-ఇంటరాక్టివ్ మోడ్లో "మీసన్ ఇన్స్టాల్"ని అమలు చేయడం వలన అధికారాలను పెంచడానికి ప్రయత్నించదు.
- meson_options.txtకి బదులుగా meson.options ఫైల్ నుండి ఎంపికలను చదవడానికి మద్దతు జోడించబడింది.
- stderrకి ఆత్మపరిశీలన పురోగతి గురించి సమాచారం మళ్లింపు అందించబడింది.
- ఇన్స్టాలేషన్ నియమాలు మాత్రమే మరియు బిల్డ్ రూల్స్ లేని ప్రాజెక్ట్లను సృష్టించడానికి కొత్త "ఏదీ లేదు" బ్యాకెండ్ (--బ్యాక్ఎండ్=ఏదీ లేదు) జోడించబడింది.
- pybind11-config స్క్రిప్ట్ని ఉపయోగించకుండా pkg-config మరియు cmakeతో డిపెండెన్సీ ('pybind11') పని చేయడానికి కొత్త డిపెండెన్సీ pybind11 జోడించబడింది.
- ఖాళీ బిల్డిర్తో "--రీకాన్ఫిగర్" మరియు "--వైప్" ఎంపికలు అనుమతించబడతాయి (మీసన్ సెటప్ --రీకాన్ఫిగర్ బిల్డిర్ మరియు మీసన్ సెటప్ --వైప్ బిల్డిర్ ).
- "మీసన్ ఇన్స్టాల్ --డ్రై-రన్" కాల్ చేస్తున్నప్పుడు మీ స్వంత ఇన్స్టాలేషన్ స్క్రిప్ట్లను అమలు చేయడానికి meson.add_install_script()కి dry_run కీవర్డ్కు మద్దతు జోడించబడింది.
మూలం: opennet.ru