Bazel é uma ferramenta de software livre para automação de construção e teste de software desenvolvido pelo Google .
Ou seja, o Bazel é alternativa para o Make(do projeto GNU) ou Ant e Maven, ambos para compilar programas em Java, desenvolvidas pela empresa: Apache .
Bazel foi escrito com a linguagem de programação Starlark , um dialeto de Python .
Bazel constrói quase todos os produtos do Google: Google Search, GMail, Google Docs, …
Bazel foi desenvolvido para funcionar de forma padronizada nos produtos da Google .
Geralmente empresas tendem a criar próprias soluções por motivos de padronização e também serve para evitar a “propaganda gratuita de produtos de outras empresas”, ainda mais o Google que uma das suas principais fontes de receita é justamente a: publicidade .
Mas, você pode migrar seus projetos, caso deseje!
Existem diversas maneiras de você instalar. Você pode usar o gerenciador de pacotes do seu sistema operacional, exemplos abaixo:
E entre outros, para uma lista mais completa veja aqui .
Você também pode usar o npm independente do sistema operacional:
O exemplo mais básico de todos, nesse caso para C++, seria um projeto com 3 arquivos:
main.cpp
BUILD
que teria as macros para serem processadasWORKSPACE
, serve para indicar a raíz do projeto .Em resumo:
O conteúdo exemplo para main.cpp
, um Hello, World! básico:
Conteúdo de BUILD
:
E o conteúdo de WORKSPACE
vazio, para criar basta usar o comando:
Agora para compilar rode:
Ele terá uma saída similar à abaixo:
Para rodar use o parâmetro run
seguido do alvo indicado em BUILD
, nesse caso, usamos o nome de binário hello-world
:
Saída similar:
Antes de imprimir é descrito os testes e análises efetuadas. Se quiser rodar somente o binário, rode:
Após build
ele cria alguns diretórios dentro do seu projeto, exemplo baseado acima:
Use o comando
tree
(se tiver instalado) para mais detalhes .
O exemplo que mostramos é uma forma “informal” de criar um projeto para ser compilado com Bazel . A forma correta mesma pode ser encontrada no repositório do Bazel, exemplo:
Entre no diretório stage1
que possui o exemplo mais básico e depois analise e teste os demais, exemplo para o stage1
:
Note a sintaxe informando que o arquivo
BUILD
está dentro do diretório📁⠀main
Para mais informações acesse a página oficial: https://bazel.build/ .