Google Android жүйесіне арналған Soong модульдік құрастыру жүйесін әзірлеуде

Google құрастыру жүйесін әзірлеуде Жақында, make утилитасын пайдалануға негізделген Android платформасы үшін ескі құрастыру сценарийлерін ауыстыруға арналған. Сунг қарапайым декларативті пайдалануды ұсынады сипаттамалар модульдерді құрастыру ережелері, берілген «.bp» кеңейтімі бар файлдарда (сызбалар). Файл пішімі JSON форматына жақын және мүмкін болса, құрастыру файлдарының синтаксисі мен семантикасын қайталайды Базель. Код Go бағдарламасында жазылған және Apache 2.0 лицензиясы бойынша таратылады.

Көп ұзамай құрастыру файлдары шартты мәлімдемелер мен тармақталған өрнектерді қолдамайды, тек жоба құрылымын, құру кезінде пайдаланылатын модульдер мен тәуелділіктерді сипаттайды. Құрылатын файлдар маскалар арқылы сипатталады және әрқайсысы байланыстырылған тәуелділіктері бар файлдар жиынтығы болып табылатын бумаларға топтастырылады. Айнымалыларды анықтауға болады. Айнымалылар мен сипаттар қатаң түрде теріледі (айнымалылар түрі бірінші тағайындау кезінде динамикалық түрде таңдалады, ал сипаттар үшін модуль түріне байланысты статикалық түрде таңдалады). Құрастыру логикасының күрделі элементтері өңдеушілерге ауыстырылады, жазылған Go тілінде.

Көп ұзамай үлкен жобамен тоғысады Blueprint, оның ішінде Android-ге қосылмаған мета-жинақтау жүйесі әзірленуде, ол декларативті модуль сипаттамалары бар файлдарға негізделген, құрастыру сценарийлерін жасайды Ninja құрастыру үшін іске қосылуы қажет пәрмендерді және тәуелділіктерді сипаттайтын (makine үшін ауыстыру). Құрастыру логикасын анықтау үшін күрделі ережелерді немесе доменге тән тілді пайдаланудың орнына, Blueprint Go тіліндегі жобаға тән өңдегіштерді пайдаланады (Soong негізінен Android үшін ұқсас өңдегіштер жинағы).

Бұл тәсіл қарапайым декларативті синтаксисті пайдалана отырып, құрастыруды ұйымдастыруға және жоба құрылымына қатысты модульдерге өзгертулер енгізу мүмкіндігін сақтай отырып, Android сияқты үлкен және гетерогенді жобаларға жоғары деңгейлі бағдарламалау тілінде кодта құрастыру логикасының күрделі элементтерін енгізуге мүмкіндік береді. . Мысалы, Soong бағдарламасында компилятор жалауларын таңдау өңдеуші арқылы жүзеге асырылады llvm.go, ал аппараттық архитектураларға тән параметрлерді қолдану өңдеуші арқылы жүзеге асырылады art.go, бірақ кодтық файлдарды байланыстыру «.bp» файлында жүзеге асырылады.

cc_library {
...
srcs: ["generic.cpp"],
арка: {
қол: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}

Ақпарат көзі: opennet.ru

пікір қалдыру