ஆண்ட்ராய்டுக்கான Soong மாடுலர் அசெம்பிளி சிஸ்டத்தை கூகுள் உருவாக்குகிறது

கூகுள் ஒரு உருவாக்க அமைப்பை உருவாக்குகிறது சூங், ஆண்ட்ராய்டு இயங்குதளத்திற்கான பழைய பில்ட் ஸ்கிரிப்ட்களை மாற்றும் வகையில், மேக் யூட்டிலிட்டியின் பயன்பாட்டின் அடிப்படையில் வடிவமைக்கப்பட்டுள்ளது. எளிமையான அறிவிப்பைப் பயன்படுத்துமாறு சூங் பரிந்துரைக்கிறார் விளக்கங்கள் தொகுதிகளை இணைப்பதற்கான விதிகள், கொடுக்கப்பட்டது ".bp" (புளூபிரிண்ட்ஸ்) நீட்டிப்பு கொண்ட கோப்புகளில். கோப்பு வடிவம் JSON க்கு அருகில் உள்ளது, முடிந்தால், அசெம்பிளி கோப்புகளின் தொடரியல் மற்றும் சொற்பொருளை மீண்டும் செய்கிறது Bazel. இந்த குறியீடு Go இல் எழுதப்பட்டு Apache 2.0 உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது.

Soong build கோப்புகள் நிபந்தனை அறிக்கைகள் மற்றும் கிளை வெளிப்பாடுகளை ஆதரிக்காது, ஆனால் திட்ட அமைப்பு, தொகுதிகள் மற்றும் உருவாக்கும்போது பயன்படுத்தப்படும் சார்புகளை மட்டுமே விவரிக்கிறது. உருவாக்கப்பட வேண்டிய கோப்புகள் முகமூடிகளைப் பயன்படுத்தி விவரிக்கப்பட்டு தொகுப்புகளாக தொகுக்கப்படுகின்றன, அவை ஒவ்வொன்றும் தொடர்புடைய சார்புகளைக் கொண்ட கோப்புகளின் தொகுப்பாகும். மாறிகளை வரையறுக்க முடியும். மாறிகள் மற்றும் பண்புகள் கண்டிப்பாக தட்டச்சு செய்யப்படுகின்றன (முதல் ஒதுக்கீட்டின் போது மாறிகளின் வகை மாறும் வகையில் தேர்ந்தெடுக்கப்படுகிறது, மேலும் பண்புகளுக்கு தொகுதி வகையைப் பொறுத்து நிலையானது). சட்டசபை தர்க்கத்தின் சிக்கலான கூறுகள் கையாளுபவர்களுக்கு நகர்த்தப்படுகின்றன, எழுதப்பட்டது கோ மொழியில்.

சூங் ஒரு பெரிய திட்டத்துடன் பின்னிப்பிணைந்தார் புளூபிரிண்ட், இதில் ஆண்ட்ராய்டுடன் இணைக்கப்படாத மெட்டா-அசெம்பிளி சிஸ்டம் உருவாக்கப்படுகிறது, இது அறிவிப்பு தொகுதி விளக்கங்களைக் கொண்ட கோப்புகளின் அடிப்படையில், அசெம்பிளி ஸ்கிரிப்ட்களை உருவாக்குகிறது நிஞ்ஜா (தயாரிப்பதற்கான மாற்றீடு), கட்டமைக்க இயக்க வேண்டிய கட்டளைகள் மற்றும் சார்புகளை விவரிக்கிறது. பில்ட் லாஜிக்கை வரையறுக்க சிக்கலான விதிகள் அல்லது டொமைன்-குறிப்பிட்ட மொழியைப் பயன்படுத்துவதற்குப் பதிலாக, புளூபிரிண்ட், கோ மொழியில் திட்ட-குறிப்பிட்ட ஹேண்ட்லர்களைப் பயன்படுத்துகிறது (சூங் என்பது ஆண்ட்ராய்டுக்கான ஒத்த ஹேண்ட்லர்களின் தொகுப்பாகும்).

இந்த அணுகுமுறையானது, ஆண்ட்ராய்டு போன்ற பெரிய மற்றும் பன்முகத் திட்டங்களுக்கு, உயர்நிலை நிரலாக்க மொழியில் குறியீட்டில் உள்ள அசெம்பிளி லாஜிக்கின் சிக்கலான கூறுகளைச் செயல்படுத்த அனுமதிக்கிறது, அதே சமயம் எளிமையான அறிவிப்பு தொடரியல் மூலம் அசெம்பிளி அமைப்பு மற்றும் திட்ட அமைப்பு தொடர்பான தொகுதிகளில் மாற்றங்களைச் செய்யும் திறனைப் பராமரிக்கிறது. . எடுத்துக்காட்டாக, சூங்கில், கம்பைலர் கொடிகளின் தேர்வு ஹேண்ட்லரால் செய்யப்படுகிறது llvm.go, மற்றும் வன்பொருள் கட்டமைப்புகளுக்கு குறிப்பிட்ட அமைப்புகளின் பயன்பாடு ஹேண்ட்லரால் மேற்கொள்ளப்படுகிறது கலை.கோ, ஆனால் குறியீடு கோப்புகளை இணைப்பது ".bp" கோப்பில் மேற்கொள்ளப்படுகிறது.

cc_library {
...
srcs: ["generic.cpp"],
வளைவு: {
கை: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}

ஆதாரம்: opennet.ru

கருத்தைச் சேர்