ጎግል ለ አንድሮይድ Soong ሞጁል የመሰብሰቢያ ስርዓትን ዘረጋ

ጉግል የግንባታ ስርዓት እየገነባ ነው። በቅርቡ, ለ አንድሮይድ መድረክ የድሮ የግንባታ ስክሪፕቶችን ለመተካት የተነደፈ, በ make utility አጠቃቀም ላይ በመመስረት. Soong ቀላል ገላጭ መጠቀምን ይጠቁማል መግለጫዎች ሞጁሎችን የመገጣጠም ህጎች ፣ ተሰጥቷል በፋይሎች ውስጥ በቅጥያው ".bp" (blueprints) ውስጥ. የፋይል ቅርጸቱ ለJSON ቅርብ ነው እና ከተቻለ የመሰብሰቢያ ፋይሎችን አገባብ እና ትርጓሜ ይደግማል ባዝል. ኮዱ በGo ውስጥ ተጽፎ በApache 2.0 ፈቃድ ስር ተሰራጭቷል።

በቅርቡ የግንባታ ፋይሎች ሁኔታዊ መግለጫዎችን እና የቅርንጫፍ መግለጫዎችን አይደግፉም፣ ነገር ግን በሚገነቡበት ጊዜ ጥቅም ላይ የሚውሉትን የፕሮጀክት አወቃቀሮችን፣ ሞጁሎችን እና ጥገኞችን ብቻ ይግለጹ። የሚገነቡት ፋይሎች ጭምብሎችን በመጠቀም ይገለፃሉ እና ወደ ፓኬጆች ይመደባሉ ፣ እያንዳንዱም ተያያዥ ጥገኛዎች ያላቸው የፋይሎች ስብስብ ነው። ተለዋዋጮች ሊገለጹ ይችላሉ. ተለዋዋጮች እና ንብረቶች በጥብቅ የተተየቡ ናቸው (የተለዋዋጮች አይነት በመጀመሪያ ስራ ላይ በተለዋዋጭነት ተመርጧል እና ለንብረቶች በስታቲስቲክስ እንደ ሞጁሉ ዓይነት)። የመሰብሰቢያ ሎጂክ ውስብስብ አካላት ወደ ተቆጣጣሪዎች ይንቀሳቀሳሉ ፣ ተፃፈ በ Go ቋንቋ።

በቅርቡ ከትልቅ ፕሮጀክት ጋር ይገናኛል። የብሉቱዝከ አንድሮይድ ጋር ያልተገናኘ የሜታ-መሰብሰቢያ ስርዓት እየተገነባ ነው፣ ይህም ገላጭ ሞጁል መግለጫዎች ባላቸው ፋይሎች ላይ በመመስረት የመሰብሰቢያ ስክሪፕቶችን ያመነጫል። ኒንጃ (ለመሰራት ምትክ) ፣ ለመገንባት መሮጥ የሚያስፈልጋቸውን ትዕዛዞች እና ጥገኞችን በመግለጽ። የግንባታ ሎጂክን ለመግለጽ ውስብስብ ደንቦችን ወይም ጎራ-ተኮር ቋንቋን ከመጠቀም ይልቅ ብሉፕሪንት በGo ቋንቋ ፕሮጄክት-ተኮር ተቆጣጣሪዎችን ይጠቀማል (Soong በመሠረቱ የአንድሮይድ ተመሳሳይ ተቆጣጣሪዎች ስብስብ ነው)።

ይህ አቀራረብ ቀላል ገላጭ አገባብ በመጠቀም ከስብሰባ አደረጃጀት እና ከፕሮጀክት መዋቅር ጋር በተያያዙ ሞጁሎች ላይ ለውጦችን የማድረግ ችሎታን ጠብቆ እንደ አንድሮይድ ያሉ ትላልቅ እና የተለያዩ ፕሮጄክቶችን በከፍተኛ ደረጃ የፕሮግራሚንግ ቋንቋ በኮድ ውስጥ የመሰብሰቢያ አመክንዮ ውስብስብ አካላትን ተግባራዊ ለማድረግ ያስችላል። . ለምሳሌ, በ Soong ውስጥ, የማጠናከሪያ ባንዲራዎች ምርጫ በተቆጣጣሪው ይከናወናል lvm.go, እና ለሃርድዌር አርክቴክቸር ልዩ ቅንጅቶችን መተግበር በተቆጣጣሪው ይከናወናል art.go, ነገር ግን ፋይሎችን ከኮድ ጋር ማገናኘት በ ".bp" ፋይል ውስጥ ይከናወናል.

ሲሲ_ላይብረሪ {
...
srcs: ["generic.cpp"]፣
ቅስት: {
ክንድ: {
srcs: ["arm.cpp"]፣
},
x86: {
srcs: ["x86.cpp"]፣
},
},
}

ምንጭ: opennet.ru

አስተያየት ያክሉ