మీసన్ బిల్డ్ సిస్టమ్ విడుదల 1.3

మీసన్ 1.3.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.3 యొక్క ప్రధాన ఆవిష్కరణలు:

  • కంపైలర్ చెక్ మెథడ్స్ compiler.compiles(), compiler.links() మరియు compiler.run()కి “wrror: true” ఎంపిక జోడించబడింది, ఇది కంపైలర్ హెచ్చరికలను లోపాలుగా పరిగణిస్తుంది (కోడ్ హెచ్చరికలు లేకుండా నిర్మించబడిందో లేదో తనిఖీ చేయడానికి ఉపయోగించవచ్చు )
  • ప్రిప్రాసెసర్ ద్వారా సింబల్ డెఫినిషన్‌ని తనిఖీ చేయడానికి has_define పద్ధతిని జోడించారు.
  • macro_name పరామితి configure_file() ఫంక్షన్‌కు జోడించబడింది, "#include" ("గార్డ్‌లను చేర్చండి") ద్వారా డబుల్ కనెక్షన్‌లకు స్థూల రక్షణను జోడిస్తుంది, ఇది C భాషలో మాక్రోల శైలిలో రూపొందించబడింది (డైనమిక్‌తో కాన్ఫిగర్ ఫైల్‌ల సృష్టిని సులభతరం చేస్తుంది. స్థూల పేర్లు).
  • configure_file() - JSON ("output_format: json")కి కొత్త అవుట్‌పుట్ ఫార్మాట్ జోడించబడింది.
  • c_std మరియు cpp_std పారామితులకు విలువల జాబితాలను ఉపయోగించగల సామర్థ్యం జోడించబడింది (ఉదాహరణకు, “default_options: 'c_std=gnu11,c11′').
  • ఫైల్‌లను ప్రాసెస్ చేయడానికి CustomTargetని ఉపయోగించే మాడ్యూల్స్‌లో, నింజా యుటిలిటీ ద్వారా సందేశాల అవుట్‌పుట్‌ను అనుకూలీకరించే సామర్థ్యం జోడించబడింది.
  • build_target "jar" నిలిపివేయబడింది మరియు బదులుగా "jar()" కాల్ సిఫార్సు చేయబడింది.
  • జనరేటర్ ఇన్‌పుట్‌ను ప్రాసెస్ చేసే ఎన్విరాన్‌మెంట్ వేరియబుల్‌ను సెట్ చేయడానికి 'env' పరామితి generator.process() పద్ధతికి జోడించబడింది.
  • ఎక్జిక్యూటబుల్స్‌తో అనుబంధించబడిన బిల్డ్ టార్గెట్ పేర్లను పేర్కొన్నప్పుడు, అదే డైరెక్టరీలో అదనపు ఎక్జిక్యూటబుల్‌లను రూపొందించడానికి "ఎక్జిక్యూటబుల్('ఫూ', 'మెయిన్.సి', నేమ్_సఫిక్స్: 'బార్')" వంటి ప్రత్యయాలు అనుమతించబడతాయి.
  • Share_module()కి పంపబడిన ఫంక్షన్‌ల జాబితాను నిర్వచించే డెఫ్ ఫైల్‌ని ఉపయోగించడానికి “vs_module_defs” పరామితిని ఎక్జిక్టుబుల్() ఫంక్షన్‌కు జోడించారు.
  • ఫాల్‌బ్యాక్ సబ్‌ప్రాజెక్ట్ కోసం డిఫాల్ట్ ఎంపికలను సెట్ చేయడానికి find_program() ఫంక్షన్‌కు 'default_options' పరామితి జోడించబడింది.
  • fs.relative_to() పద్ధతి జోడించబడింది, ఇది మొదటి పాత్ ఉనికిలో ఉన్నట్లయితే, రెండవ దానికి సంబంధించి, మొదటి ఆర్గ్యుమెంట్‌కు సాపేక్ష మార్గాన్ని అందిస్తుంది. ఉదాహరణకు, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • install_data(), install_headers() మరియు install_subdir() ఫంక్షన్‌లకు క్రింది_symlinks పరామితి జోడించబడింది; సెట్ చేసినప్పుడు, సింబాలిక్ లింక్‌లు అనుసరించబడతాయి.
  • స్ట్రింగ్‌ను లీడింగ్ సున్నాలతో పెంచడానికి int.to_string() పద్ధతికి “ఫిల్” పరామితి జోడించబడింది. ఉదాహరణకు, n=3 కోసం సందేశం(n.to_string(పూర్తి: 4)) కాల్ చేయడం వలన "004" స్ట్రింగ్ ఉత్పత్తి అవుతుంది.
  • "-fix" ఫ్లాగ్‌తో క్లాంగ్-టిడీ యుటిలిటీని అమలు చేయడాన్ని నిర్దేశించే కొత్త లక్ష్యం, క్లాంగ్-టిడీ-ఫిక్స్ జోడించబడింది.
  • అసెంబ్లీ లక్ష్యం ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) ప్రత్యయం (TARGET_SUFFIX)ని పేర్కొనే సామర్థ్యం కంపైల్ కమాండ్‌కు జోడించబడింది.
  • ప్యాకేజీ కాష్‌కి (సబ్‌ప్రాజెక్ట్‌లు/ప్యాకేజీకాష్) మార్గాన్ని భర్తీ చేయడానికి MESON_PACKAGE_CACHE_DIR ఎన్విరాన్‌మెంట్ వేరియబుల్ జోడించబడింది, ఉదాహరణకు, మీరు అనేక ప్రాజెక్ట్‌లలో భాగస్వామ్య కాష్‌ని ఉపయోగించడానికి అనుమతిస్తుంది.
  • నిరంతర కాష్‌ని క్లియర్ చేయడానికి "meson setup --clearcache" ఆదేశం జోడించబడింది.
  • అన్ని “has_*” కంపైలర్ తనిఖీ పద్ధతులకు “అవసరం” కీవర్డ్‌కు మద్దతు జోడించబడింది, ఉదాహరణకు, “assert(cc.has_function('some_function'))”కి బదులుగా మీరు ఇప్పుడు “cc.has_function('some_function')ని పేర్కొనవచ్చు. , అవసరం: నిజం)”.
  • కొత్త కీవర్డ్, rust_abi, share_library(), static_library(), library(), and share_module() ఫంక్షన్‌లకు జోడించబడింది, ఇది నిలిపివేయబడిన rust_crate_typeకి బదులుగా ఉపయోగించబడుతుంది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి