Bazel jibni l-proġett billi jmexxi l-kompilaturi u t-testijiet meħtieġa. Is-sistema tal-bini hija ddisinjata mill-art biex tibni bl-aħjar mod proġetti Google, inklużi proġetti kbar ħafna u proġetti li fihom kodiċi f'diversi lingwi ta' programmar, jeħtieġu ttestjar estensiv, u huma mibnija għal pjattaformi multipli. Jappoġġja kodiċi tal-bini u tal-ittestjar f'Java, C++, Objective-C, Python, Rust, Go u ħafna lingwi oħra, kif ukoll il-bini ta' applikazzjonijiet mobbli għal Android u iOS. L-użu ta 'fajls ta' assemblaġġ singoli għal pjattaformi u arkitetturi differenti huwa appoġġjat; pereżempju, fajl ta 'assemblaġġ wieħed mingħajr bidliet jista' jintuża kemm għal sistema ta 'server kif ukoll għal apparat mobbli.
Fost il-karatteristiċi distintivi ta' Bazel hemm il-veloċità għolja, l-affidabbiltà u r-ripetibbiltà tal-proċess tal-assemblaġġ. Biex tikseb veloċità għolja tal-bini, Bazel juża b'mod attiv tekniki ta 'caching u parallelizzazzjoni għall-proċess tal-bini. Il-fajls BUILD għandhom jiddefinixxu bis-sħiħ id-dipendenzi kollha, li fuq il-bażi tagħhom jittieħdu deċiżjonijiet biex jerġgħu jinbnew il-komponenti wara li jsiru l-bidliet (fajls mibdula biss jinbnew mill-ġdid) u jipparallelizzaw il-proċess tal-assemblaġġ. L-għodda tiżgura wkoll assemblaġġ ripetibbli, i.e. ir-riżultat tal-bini ta 'proġett fuq il-magna tal-iżviluppatur se jkun kompletament identiku għall-bini fuq sistemi ta' partijiet terzi, bħal servers ta 'integrazzjoni kontinwa.
B'differenza Make u Ninja, Bazel juża approċċ ta 'livell ogħla għall-bini ta' regoli ta 'assemblaġġ, li fih, minflok jiddefinixxi l-irbit tal-kmandi mal-fajls li qed jinbnew, jintużaw blokki lesti aktar astratti, bħal "bini ta' fajl eżekutibbli f' C++”, “bini ta’ librerija f’C++” jew “tmexxija ta’ test għal C++”, kif ukoll identifikazzjoni ta’ pjattaformi ta’ mira u ta’ bini. Fil-fajl tat-test BUILD, il-komponenti tal-proġett huma deskritti bħala mazz ta 'libreriji, fajls eżekutibbli u testijiet, mingħajr dettalji fil-livell ta' fajls individwali u kmandi tas-sejħa tal-kompilatur. Funzjonalità addizzjonali hija implimentata permezz tal-mekkaniżmu għall-konnessjoni tal-estensjonijiet.
Sors: opennet.ru