Google Android కోసం Soong మాడ్యులర్ అసెంబ్లీ సిస్టమ్‌ను అభివృద్ధి చేస్తుంది

Google బిల్డ్ సిస్టమ్‌ను అభివృద్ధి చేస్తోంది త్వరలో, మేక్ యుటిలిటీ వినియోగం ఆధారంగా Android ప్లాట్‌ఫారమ్ కోసం పాత బిల్డ్ స్క్రిప్ట్‌లను భర్తీ చేయడానికి రూపొందించబడింది. సూంగ్ సాధారణ ప్రకటనను ఉపయోగించమని సూచించాడు వివరణలు మాడ్యూళ్లను సమీకరించడానికి నియమాలు, ఇచ్చిన “.bp” (బ్లూప్రింట్లు) పొడిగింపు ఉన్న ఫైల్‌లలో. ఫైల్ ఫార్మాట్ JSONకి దగ్గరగా ఉంది మరియు వీలైతే, అసెంబ్లీ ఫైల్‌ల సింటాక్స్ మరియు సెమాంటిక్స్‌ను పునరావృతం చేస్తుంది Bazel. కోడ్ గోలో వ్రాయబడింది మరియు Apache 2.0 లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది.

Soong బిల్డ్ ఫైల్‌లు షరతులతో కూడిన స్టేట్‌మెంట్‌లు మరియు బ్రాంచ్ ఎక్స్‌ప్రెషన్‌లకు మద్దతు ఇవ్వవు, అయితే ప్రాజెక్ట్ నిర్మాణం, మాడ్యూల్స్ మరియు నిర్మాణ సమయంలో ఉపయోగించే డిపెండెన్సీలను మాత్రమే వివరిస్తాయి. నిర్మించాల్సిన ఫైల్‌లు మాస్క్‌లను ఉపయోగించి వివరించబడ్డాయి మరియు ప్యాకేజీలుగా సమూహం చేయబడతాయి, వీటిలో ప్రతి ఒక్కటి అనుబంధిత డిపెండెన్సీలతో కూడిన ఫైల్‌ల సేకరణ. వేరియబుల్స్‌ని నిర్వచించడం సాధ్యమే. వేరియబుల్స్ మరియు ప్రాపర్టీలు ఖచ్చితంగా టైప్ చేయబడతాయి (మొదటి అసైన్‌మెంట్‌పై వేరియబుల్స్ రకం డైనమిక్‌గా ఎంపిక చేయబడుతుంది మరియు మాడ్యూల్ రకాన్ని బట్టి స్థిరంగా లక్షణాల కోసం). అసెంబ్లీ లాజిక్ యొక్క సంక్లిష్ట అంశాలు హ్యాండ్లర్‌లకు తరలించబడతాయి, వ్రాయబడింది గో భాషలో.

త్వరలో ఒక పెద్ద ప్రాజెక్ట్‌తో ముడిపడి ఉంది బ్లూప్రింట్, ఆండ్రాయిడ్‌తో అనుసంధానించబడని మెటా-అసెంబ్లీ సిస్టమ్ అభివృద్ధి చేయబడుతోంది, ఇది డిక్లరేటివ్ మాడ్యూల్ వివరణలతో కూడిన ఫైల్‌ల ఆధారంగా, అసెంబ్లీ స్క్రిప్ట్‌లను రూపొందిస్తుంది నింజా (మేక్ కోసం ప్రత్యామ్నాయం), నిర్మించడానికి అమలు చేయవలసిన ఆదేశాలను మరియు డిపెండెన్సీలను వివరిస్తుంది. బిల్డ్ లాజిక్‌ని నిర్వచించడానికి సంక్లిష్ట నియమాలు లేదా డొమైన్-నిర్దిష్ట భాషను ఉపయోగించే బదులు, బ్లూప్రింట్ గో భాషలో ప్రాజెక్ట్-నిర్దిష్ట హ్యాండ్లర్‌లను ఉపయోగిస్తుంది (సూంగ్ అనేది ఆండ్రాయిడ్ కోసం సారూప్య హ్యాండ్లర్ల సమితి).

ఈ విధానం ఆండ్రాయిడ్ వంటి పెద్ద మరియు భిన్నమైన ప్రాజెక్ట్‌లను, అధిక-స్థాయి ప్రోగ్రామింగ్ లాంగ్వేజ్‌లో కోడ్‌లో అసెంబ్లీ లాజిక్ యొక్క సంక్లిష్ట అంశాలను అమలు చేయడానికి అనుమతిస్తుంది, అదే సమయంలో సాధారణ డిక్లరేటివ్ సింటాక్స్‌ని ఉపయోగించి అసెంబ్లీ ఆర్గనైజేషన్ మరియు ప్రాజెక్ట్ స్ట్రక్చర్‌కు సంబంధించిన మాడ్యూల్స్‌లో మార్పులు చేయగల సామర్థ్యాన్ని కొనసాగిస్తుంది. . ఉదాహరణకు, సూంగ్‌లో, కంపైలర్ ఫ్లాగ్‌ల ఎంపిక హ్యాండ్లర్ ద్వారా జరుగుతుంది llvm.go, మరియు హార్డ్‌వేర్ ఆర్కిటెక్చర్‌లకు నిర్దిష్ట సెట్టింగ్‌ల అప్లికేషన్ హ్యాండ్లర్ ద్వారా నిర్వహించబడుతుంది art.go, కానీ కోడ్ ఫైల్‌ల లింకింగ్ “.bp” ఫైల్‌లో నిర్వహించబడుతుంది.

cc_లైబ్రరీ {
...
srcs: ["generic.cpp"],
వంపు: {
చేయి: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}

మూలం: opennet.ru

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