Google devlope Soong sistèm asanble modilè pou android

Google ap devlope yon sistèm bati Soong, ki fèt pou ranplase ansyen scripts bati pou platfòm android a, ki baze sou itilizasyon sèvis piblik make la. Soong sijere itilize senp deklaratif deskripsyon règ pou rasanble modil yo, bay nan dosye ki gen ekstansyon ".bp" (plan). Fòma fichye a pre JSON epi, si sa posib, repete sentaks ak semantik dosye asanble yo. Bazel. Kòd la ekri nan Go epi distribye anba lisans Apache 2.0.

Fichye konstriksyon Soong yo pa sipòte deklarasyon kondisyonèl ak ekspresyon branch, men sèlman dekri estrikti pwojè a, modil ak depandans yo itilize lè bati. Dosye yo dwe bati yo dekri lè l sèvi avèk mask ak gwoupe nan pakè, yo chak nan yo se yon koleksyon fichye ak depandans ki asosye yo. Varyab yo ka defini. Varyab ak pwopriyete yo tape estrikteman (ki kalite varyab yo chwazi dinamikman sou premye plasman, epi pou pwopriyete yo estatikman depann sou kalite modil la). Eleman konplèks nan lojik asanble yo deplase bay moun kap okipe yo, ekri nan lang Go.

Soong mare ak yon pi gwo pwojè Plan, nan kad ki yon sistèm meta-asanble ki pa mare ak android yo ap devlope, ki, ki baze sou dosye ki gen deskripsyon deklaratif nan modil, jenere script asanble. Ninja (yon ranplasman pou make), ki dekri kòmandman ki bezwen kouri pou konstwi ak depandans yo. Olye pou yo sèvi ak règ konplèks oswa yon lang espesifik domèn pou defini lojik bati, Blueprint itilize moun kap okipe pwojè espesifik nan lang Go (Soong se esansyèlman yon seri moun k ap okipe menm jan an pou Android).

Apwòch sa a pèmèt pou pwojè gwo ak etewojèn, tankou Android, aplike eleman konplèks nan lojik asanble nan kòd nan yon langaj pwogramasyon wo nivo, pandan y ap kenbe kapasite nan fè chanjman nan modil ki gen rapò ak òganizasyon asanble ak estrikti pwojè lè l sèvi avèk senp sentaks deklarasyon. . Pou egzanp, nan Soong, seleksyon an nan drapo konpilatè se fè pa moun kap okipe yo llvm.go, ak aplikasyon an nan anviwònman espesifik nan achitekti pyès ki nan konpitè te pote soti pa moun kap okipe a atizay.go, men se lyezon nan dosye kòd te pote soti nan ".bp" dosye a.

cc_library {
...
srcs: ["generic.cpp"],
vout: {
bra: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}

Sous: opennet.ru

Add nouvo kòmantè