Ninja é um pequeno sistema de compilação desenvolvido por Evan Martin, um funcionário do Google. O Ninja tem foco na velocidade e difere de outros sistemas de compilação em dois aspectos principais: ele é projetado para ter seus arquivos de entrada gerados por um sistema de compilação de mais alto-nível e é projetado para executar compilações o mais rápido possível.

Sistema de compilação Essencialmente o Ninja foi criado para substituir o Make, que é lento ao executar compilações incrementais (ou operações vazias, NO-OP). Isso pode desacelerar consideravelmente os desenvolvedores que trabalham em projetos grandes, como o Google Chrome, que compila 40.000 arquivos de entrada em um único executável. Na verdade, o Google Chrome é o usuário principal e a motivação para o Ninja. Também é usado para compilar o Android (via tradução do Makefile por Kati), e é usado pela maioria dos desenvolvedores que trabalham com o LLVM.

Em contraste com o Make, o Ninja não possui recursos como manipulação de strings, já que os arquivos de compilação do Ninja não devem ser escritos à mão. Em vez disso, um "gerador de compilação" deve ser usado para gerar arquivos de compilação do Ninja. Gyp, CMake, Meson e gn são ferramentas de software de gerenciamento de compilação populares que suportam a criação de arquivos de compilação para o Ninja.

Exemplo rule cc command = gcc -c -o $out $in description = CC $out

rule link command = gcc -o $out $in description = LINK $out

build source1.o: cc source1.c build source2.o: cc source2.c build myprogram: link source1.o source2.o

Ligações externas

Categoria:Ferramentas de compilação Categoria:Software livre