Naghimo ang Google og modular assembly system nga Soong para sa Android

Ang Google nagpalambo sa usa ka sistema sa pagtukod Soong, gidesinyo sa pag-ilis sa daan nga mga script sa pagtukod alang sa Android nga plataporma, base sa paggamit sa make utility. Gisugyot ni Soong ang paggamit sa yano nga deklaratibo mga paghubit Mga lagda alang sa pag-assemble sa mga module, gihatag sa mga file nga adunay extension nga ".bp" (mga blueprint). Ang format sa file duol sa JSON ug, kung mahimo, gisubli ang syntax ug semantics sa mga file sa asembliya Bazel. Ang code gisulat sa Go ug giapod-apod ubos sa Apache 2.0 nga lisensya.

Ang Soong build files dili mosuporta sa conditional statements ug branching expressions, apan naghulagway lang sa project structure, modules ug dependencies nga gigamit sa pagtukod. Ang mga file nga pagatukuron gihulagway gamit ang mga maskara ug gi-grupo sa mga pakete, nga ang matag usa usa ka koleksyon sa mga file nga adunay kauban nga mga dependency. Posible nga mahibal-an ang mga variable. Ang mga variable ug mga kabtangan hugot nga gi-type (ang matang sa mga variable gipili nga dinamiko sa unang assignment, ug alang sa mga kabtangan nga statically depende sa matang sa module). Ang mga komplikadong elemento sa lohika sa asembliya gibalhin sa mga tigdumala, gisulat sa pinulongang Go.

Si Soong nakiglambigit sa usa ka mas dako nga proyekto Plano, diin ang usa ka sistema sa meta-assembly nga wala nahigot sa Android gipalambo, nga, base sa mga file nga adunay mga deskriptibo nga module nga paghubit, nagpatunghag mga script sa asembliya Ninja (usa ka kapuli sa paghimo), nga naghulagway sa mga sugo nga kinahanglan nga ipadagan sa pagtukod ug ang mga dependency. Imbis nga mogamit og komplikado nga mga lagda o usa ka pinulongan nga espesipiko sa domain aron ipasabut ang lohika sa pagtukod, ang Blueprint naggamit sa mga tagdumala nga espesipiko sa proyekto sa Go language (Ang Soong usa ka hugpong sa parehas nga mga tigdumala alang sa Android).

Kini nga pamaagi nagtugot sa dagko ug heterogeneous nga mga proyekto, sama sa Android, sa pagpatuman sa mga komplikadong elemento sa assembly logic sa code sa usa ka high-level nga programming language, samtang nagmintinar sa abilidad sa paghimo sa mga kausaban sa mga module nga may kalabutan sa assembly organization ug project structure gamit ang simple nga declarative syntax. . Pananglitan, sa Soong, ang pagpili sa mga flag sa compiler gihimo sa handler llvm.go, ug ang paggamit sa mga setting nga espesipiko sa mga arkitektura sa hardware gihimo sa tigdumala arte.adto, apan ang pag-link sa mga file sa code gihimo sa ".bp" nga file.

cc_library {
...
srcs: ["generic.cpp"],
arko: {
bukton: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}

Source: opennet.ru

Idugang sa usa ka comment